*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}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;background-color:#f5f6fa}#root{height:100%}.error-message{border-radius:12px;padding:16px;margin:12px 0;border:1px solid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;animation:slideIn .3s ease-out;box-shadow:0 2px 8px #0000001a}.error-message.error{background:linear-gradient(135deg,#ffeaea,#ffe0e0);border-color:#ff6b6b;color:#d63031}.error-message.success{background:linear-gradient(135deg,#eafaf1,#d4f4dd);border-color:#00b894;color:#00a085}.error-message.warning{background:linear-gradient(135deg,#fff8e1,#fff3c4);border-color:#fdcb6e;color:#e17055}.error-message.info{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-color:#74b9ff;color:#0984e3}.error-content{width:100%}.error-header{display:flex;align-items:flex-start;gap:12px}.error-icon{font-size:20px;flex-shrink:0;margin-top:2px}.error-text{flex:1;min-width:0}.error-title{margin:0 0 4px;font-size:16px;font-weight:600;line-height:1.3}.error-description{margin:0;font-size:14px;line-height:1.4;opacity:.9}.error-close{background:none;border:none;font-size:18px;cursor:pointer;padding:4px;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;opacity:1;color:#2c3e50!important;font-weight:700}.error-close:hover{opacity:1;background:#d630311a;color:#b71c1c!important;transform:scale(1.1)}.error-technical{margin-top:12px;border-top:1px solid rgba(0,0,0,.1);padding-top:12px}.error-technical summary{cursor:pointer;font-size:12px;font-weight:500;opacity:.8;margin-bottom:8px;-webkit-user-select:none;user-select:none}.error-technical summary:hover{opacity:1}.technical-error{display:block;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:6px;padding:8px 12px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:11px;line-height:1.4;color:#000000b3;word-break:break-all;white-space:pre-wrap}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.error-message{padding:14px;margin:10px 0;border-radius:8px}.error-header{gap:10px}.error-icon{font-size:18px}.error-title{font-size:15px}.error-description{font-size:13px}.error-close{width:24px;height:24px;font-size:16px}.technical-error{font-size:10px;padding:6px 8px}}.notification-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:400px;pointer-events:none}.notification-wrapper{pointer-events:auto;animation:slideInRight .3s ease-out}.global-notification{margin:0;box-shadow:0 4px 12px #00000026;border-radius:8px;max-width:100%}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.notification-wrapper.removing{animation:slideOutRight .3s ease-in forwards}@media (max-width: 768px){.notification-container{top:10px;right:10px;left:10px;max-width:none}.global-notification{font-size:14px}}@media (prefers-color-scheme: dark){.global-notification{background-color:#2c3e50;color:#ecf0f1}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a}.loading-spinner{border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.loading-spinner.small{width:24px;height:24px;border-width:3px;margin-bottom:12px}.loading-spinner.medium{width:40px;height:40px;border-width:4px;margin-bottom:20px}.loading-spinner.large{width:60px;height:60px;border-width:6px;margin-bottom:24px}.loading-container p{color:#7f8c8d;font-size:16px;margin:0;text-align:center}.loading-container.compact{padding:20px;background:transparent;box-shadow:none}.loading-container.compact .loading-spinner{margin-bottom:12px}.loading-container.compact p{font-size:14px}@media (max-width: 768px){.loading-container{padding:40px 15px}.loading-container p{font-size:14px}.loading-spinner.small{width:20px;height:20px;border-width:2px}.loading-spinner.medium{width:32px;height:32px;border-width:3px}.loading-spinner.large{width:48px;height:48px;border-width:4px}}:root{--home-primary: #f29715;--home-primary-light: #ffb347;--home-secondary: #1e3c72;--home-secondary-light: #2a5298;--home-text: #ffffff;--home-text-muted: rgba(255, 255, 255, .8);--home-bg-gradient: linear-gradient(135deg, var(--home-secondary) 0%, var(--home-secondary-light) 100%);--home-glass-bg: rgba(255, 255, 255, .1);--home-border: rgba(255, 255, 255, .2)}.home-page{min-height:100vh;background:var(--home-bg-gradient);color:var(--home-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;scroll-behavior:smooth}.home-header{background:var(--home-glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--home-border);position:sticky;top:0;z-index:100}.home-header-content{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.home-logo-section{display:flex;align-items:center;gap:.75rem}.home-logo-section-text{display:flex;flex-direction:column}.home-logo-icon{font-size:4rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.home-logo-title{font-size:2rem;font-weight:700;margin:0;background:linear-gradient(45deg,#fff,#e3f2fd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-tagline{font-size:.9rem;color:var(--home-text-muted);margin:0}.home-auth-link{color:var(--home-text);text-decoration:none;padding:.5rem 1rem;border:1px solid var(--home-border);border-radius:8px;transition:all .3s ease}.home-auth-link:hover{background:var(--home-glass-bg);transform:translateY(-2px)}.home-hero{padding:4rem 2rem;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}.home-hero-title{font-size:3.5rem;font-weight:800;line-height:1.1;margin:0 0 1.5rem}.home-hero-highlight{background:linear-gradient(45deg,var(--home-primary),var(--home-primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-hero-subtitle{font-size:1.2rem;color:var(--home-text-muted);margin-bottom:2rem;line-height:1.6}.home-hero-actions{display:flex;gap:1rem;flex-wrap:wrap}.home-cta-button{padding:1rem 2rem;border-radius:12px;text-decoration:none;font-weight:600;transition:all .3s ease;border:none;cursor:pointer;font-size:1rem}.home-cta-primary{background:var(--home-primary);color:#fff}.home-cta-primary:hover{background:var(--home-primary-light);transform:translateY(-2px);box-shadow:0 8px 25px #f297154d}.home-cta-secondary{background:transparent;color:var(--home-text);border:2px solid var(--home-border)}.home-cta-secondary:hover{background:var(--home-glass-bg);transform:translateY(-2px)}.home-cta-large{padding:1.25rem 2.5rem;font-size:1.1rem}.home-hero-visual{display:flex;justify-content:center;align-items:center}.home-preview-card{background:var(--home-glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--home-border);border-radius:16px;padding:1.5rem;max-width:300px;box-shadow:0 8px 32px #0000001a}.home-card-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.home-avatar-group{display:flex;gap:-.5rem}.home-avatar{width:32px;height:32px;border-radius:50%;background:var(--home-primary);display:flex;align-items:center;justify-content:center;font-size:1rem;border:2px solid white;margin-left:-.5rem}.home-avatar:first-child{margin-left:0}.home-family-name{font-weight:600;color:var(--home-text)}.home-card-content{display:flex;flex-direction:column;gap:.75rem}.home-memory-item{display:flex;align-items:center;gap:.5rem;color:var(--home-text-muted);font-size:.9rem}.home-section-title,.section-title{color:var(--home-primary);font-size:2.5rem;font-weight:700;text-align:center;margin-bottom:1rem}.home-section-subtitle,.section-subtitle{text-align:center;color:var(--home-text-muted);font-size:1.1rem;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}.home-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.home-feature-card{background:var(--home-glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--home-border);border-radius:16px;padding:2rem;text-align:center;transition:all .3s ease}.home-feature-card:hover{transform:translateY(-5px);box-shadow:0 12px 40px #00000026}.home-feature-icon{font-size:3rem;margin-bottom:1rem;display:block}.home-feature-title{font-size:1.3rem;font-weight:600;margin-bottom:1rem;color:var(--home-text)}.home-feature-description{color:var(--home-text-muted);line-height:1.6}.home-audience{padding:4rem 2rem;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}.home-audience-list{display:flex;flex-direction:column;gap:1.5rem}.home-audience-item{display:flex;align-items:flex-start;gap:1rem}.home-audience-icon{min-width:90px;text-align:center;font-size:2rem;flex-shrink:0}.home-audience-content h4{font-size:1.2rem;font-weight:600;margin:0 0 .5rem;color:var(--home-text)}.home-audience-content p{color:var(--home-text-muted);margin:0;line-height:1.5}.home-family-tree{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;justify-items:center}.home-family-member{font-size:3rem;padding:1rem;background:var(--home-glass-bg);border-radius:50%;border:1px solid var(--home-border)}.home-cta-section{padding:4rem 2rem;text-align:center;background:var(--home-glass-bg);margin:2rem;border-radius:20px;border:1px solid var(--home-border)}.home-cta-title{font-size:2.5rem;font-weight:700;margin-bottom:1rem;color:var(--home-text)}.home-cta-subtitle{font-size:1.1rem;color:var(--home-text-muted);margin-bottom:2rem;max-width:500px;margin-left:auto;margin-right:auto}.home-cta-actions{display:flex;justify-content:center;gap:1rem}.home-footer{padding:3rem 2rem 2rem;max-width:1200px;margin:0 auto;border-top:1px solid var(--home-border)}.home-logo-footer-icon{font-size:2rem;margin-bottom:1rem}.home-footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-bottom:2rem}.home-footer-section h4{font-size:1.5rem;font-weight:600;margin-bottom:.2rem;color:var(--home-text)}.home-footer-section p{color:var(--home-text-muted);margin:0}.home-footer-section ul{list-style:none;padding:0;margin:0}.home-footer-section li{color:var(--home-text-muted);margin-bottom:.5rem}.home-footer-bottom{text-align:center;padding-top:2rem;border-top:1px solid var(--home-border);color:var(--home-text-muted)}@media (max-width: 768px){.home-logo-section{gap:.5rem}.home-logo-icon{font-size:2.5rem}.home-logo-title{font-size:1.5rem}.home-tagline{font-size:.8rem}.home-hero{grid-template-columns:1fr;text-align:center;gap:2rem}.home-hero-title{font-size:2.5rem}.home-audience{grid-template-columns:1fr;text-align:center}.home-features-grid{grid-template-columns:1fr}.home-hero-actions{justify-content:center}.home-cta-actions{flex-direction:column;align-items:center}}@media (max-width: 560px){.home-logo-section{gap:.25rem}.home-logo-icon{font-size:1.8rem}.home-logo-title{font-size:1.1rem}.home-tagline{font-size:.7rem}.home-header-content{padding:.75rem 1rem}}@media (max-width: 480px){.home-header-content{flex-direction:column;text-align:center;gap:1rem;padding:1rem}.home-logo-section{gap:.2rem;flex-direction:column;align-items:center}.home-logo-icon{font-size:2.5rem}.home-logo-title{font-size:1.8rem}.home-tagline{font-size:.9rem}.home-auth-link{padding:.75rem 1.5rem;font-size:.9rem}.home-family-tree{width:100%}.home-family-member{font-size:2rem}}.smooth-scroll-link{color:var(--home-text-muted);text-decoration:none;transition:color .3s ease}.smooth-scroll-link:hover{color:var(--home-primary)}.private-groups-section{padding:4rem 2rem;max-width:1200px;margin:2rem auto;background:var(--home-glass-bg);border-radius:20px;border:1px solid var(--home-border);display:flex;justify-content:center;align-items:center}.private-groups-section .section-title{color:var(--home-primary)!important;font-size:2.5rem!important;font-weight:700!important;text-align:center;margin-bottom:1rem}.private-groups-section .section-subtitle{text-align:center;color:var(--home-text-muted);font-size:1.1rem;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}.private-groups-content{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;text-align:center;justify-items:center}.private-benefits{display:flex;flex-direction:column;gap:1.5rem;margin-top:2rem;text-align:left}.benefit-item{display:flex;align-items:flex-start;gap:1rem}.benefit-icon{font-size:2rem;flex-shrink:0}.benefit-item h4{font-size:1.2rem;font-weight:600;margin:0 0 .5rem;color:var(--home-text)}.benefit-item p{color:var(--home-text-muted);margin:0;line-height:1.5}.network-preview{display:flex;justify-content:center;align-items:center}.network-card{background:var(--home-glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--home-border);border-radius:16px;padding:2rem;max-width:400px;box-shadow:0 8px 32px #0000001a}.network-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.network-icon{font-size:2rem}.network-name{font-weight:600;color:var(--home-text);flex:1}.network-status{background:var(--home-primary);color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600}.network-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.stat{text-align:center}.stat-number{display:block;font-size:1.5rem;font-weight:700;color:var(--home-primary)}.stat-label{font-size:.8rem;color:var(--home-text-muted)}@media (max-width: 1024px){.private-groups-section{margin:1rem auto;padding:2rem 1rem}.private-groups-content{grid-template-columns:1fr;text-align:center;gap:2rem;justify-items:center}.network-card{max-width:100%}}@media (max-width: 768px){.private-groups-section{margin:1rem auto;padding:2rem 1rem}.private-groups-content{grid-template-columns:1fr;text-align:center;gap:2rem;justify-items:center}.network-card{max-width:100%}}@media (max-width: 480px){.private-groups-section{margin:.5rem auto;padding:1.5rem .5rem}.private-groups-section .section-title{font-size:2rem!important}.private-groups-section .section-subtitle{font-size:1rem;margin-bottom:2rem}}.photo-gallery-section{padding:4rem 2rem;max-width:1200px;margin:2rem auto;background:var(--home-glass-bg);border-radius:20px;border:1px solid var(--home-border);display:flex;justify-content:center;align-items:center}.photo-gallery-section .section-title{color:var(--home-primary)!important;font-size:2.5rem!important;font-weight:700!important;text-align:center;margin-bottom:1rem}.photo-gallery-section .section-subtitle{text-align:center;color:var(--home-text-muted);font-size:1.1rem;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}.photo-gallery-content{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;text-align:center;justify-items:center}.photo-grid-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:300px;margin:0 auto}.photo-item{aspect-ratio:1;border:2px solid var(--home-primary);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;transition:all .3s ease;box-shadow:0 4px 15px #0003;position:relative;overflow:hidden;min-height:80px;z-index:1}.photo-item:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#0000001a;z-index:1}.photo-item.beach{background:linear-gradient(135deg,#74b9ff,#0984e3)}.photo-item.birthday{background:linear-gradient(135deg,#fd79a8,#e84393)}.photo-item.graduation{background:linear-gradient(135deg,#a29bfe,#6c5ce7)}.photo-item.christmas{background:linear-gradient(135deg,#00b894,#00a085)}.photo-item.baby{background:linear-gradient(135deg,#fdcb6e,#e17055)}.photo-item.camera{background:linear-gradient(135deg,#636e72,#2d3436)}.photo-item.large{grid-column:span 2;grid-row:span 2;font-size:4rem;min-height:160px}.photo-item:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000004d;z-index:10}.photo-features{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.photo-feature{display:flex;align-items:center;gap:.75rem;color:var(--home-text-muted)}.photo-feature-icon{font-size:1.2rem}@media (max-width: 1024px){.photo-gallery-section{margin:1rem auto;padding:2rem 1rem}.photo-gallery-content{grid-template-columns:1fr;text-align:center;gap:2rem;justify-items:center}.photo-grid-preview{max-width:300px;margin:0 auto}.photo-gallery-text,.photo-features{text-align:center}.photo-feature{justify-content:center}}@media (max-width: 768px){.photo-gallery-section{margin:1rem auto;padding:2rem 1rem}.photo-gallery-content{grid-template-columns:1fr;text-align:center;gap:2rem;justify-items:center}.photo-grid-preview{max-width:280px;margin:0 auto}.photo-gallery-text,.photo-features{text-align:center}.photo-feature{justify-content:center}}@media (max-width: 480px){.photo-gallery-section{margin:.5rem auto;padding:1.5rem .5rem}.photo-gallery-section .section-title{font-size:2rem!important}.photo-gallery-section .section-subtitle{font-size:1rem;margin-bottom:2rem}.photo-grid-preview{max-width:240px;gap:.5rem}.photo-item{min-height:60px;font-size:2rem}.photo-item.large{min-height:120px;font-size:3rem}}.family-wall-section{padding:4rem 2rem;max-width:1200px;margin:2rem auto;background:var(--home-glass-bg);border-radius:20px;border:1px solid var(--home-border);display:flex;justify-content:center;align-items:center}.family-wall-section .section-title{color:var(--home-primary)!important;font-size:2.5rem!important;font-weight:700!important;text-align:center;margin-bottom:1rem}.family-wall-section .section-subtitle{text-align:center;color:var(--home-text-muted);font-size:1.1rem;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}.family-wall-content{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;text-align:center;justify-items:center}.wall-benefits{display:flex;flex-direction:column;gap:1.5rem;margin-top:2rem;text-align:left}.wall-benefit{display:flex;align-items:flex-start;gap:1rem}.wall-benefit-icon{display:flex;align-items:center;justify-content:center;min-width:3rem;font-size:2rem;flex-shrink:0}.wall-benefit h4{font-size:1.2rem;font-weight:600;margin:0 0 .5rem;color:var(--home-text)}.wall-benefit p{color:var(--home-text-muted);margin:0;line-height:1.5}.wall-preview{display:flex;flex-direction:column;gap:1rem;max-width:350px}.wall-post{background:var(--home-glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--home-border);border-radius:12px;padding:1.5rem}.wall-post-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.wall-avatar{width:40px;height:40px;border-radius:50%;background:var(--home-primary);display:flex;align-items:center;justify-content:center;font-size:1.2rem}.wall-name{font-weight:600;color:var(--home-text)}.wall-time{font-size:.8rem;color:var(--home-text-muted)}.wall-content p{text-align:left;color:var(--home-text);margin:0 0 1rem;line-height:1.5}.wall-reactions{display:flex;gap:1rem}.wall-reactions span{font-size:.9rem;color:var(--home-text-muted)}@media (max-width: 1024px){.family-wall-section{margin:1rem auto;padding:2rem 1rem}.family-wall-content{grid-template-columns:1fr;text-align:center;gap:2rem;justify-items:center}.wall-preview{max-width:100%}}@media (max-width: 768px){.family-wall-section{margin:1rem auto;padding:2rem 1rem}.family-wall-content{grid-template-columns:1fr;text-align:center;gap:2rem;justify-items:center}.wall-preview{max-width:100%}}@media (max-width: 480px){.family-wall-section{margin:.5rem auto;padding:1.5rem .5rem}.family-wall-section .section-title{font-size:2rem!important}.family-wall-section .section-subtitle{font-size:1rem;margin-bottom:2rem}}.events-section{padding:4rem 2rem;max-width:1200px;margin:2rem auto;background:var(--home-glass-bg);border-radius:20px;border:1px solid var(--home-border);display:flex;justify-content:center;align-items:center}.events-section .section-title{color:var(--home-primary)!important;font-size:2.5rem!important;font-weight:700!important;text-align:center;margin-bottom:1rem}.events-section .section-subtitle{text-align:center;color:var(--home-text-muted);font-size:1.1rem;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}.events-content{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;text-align:center;justify-items:center}.calendar-preview{background:#fff;border-radius:16px;padding:1.5rem;max-width:500px;margin:0 auto;box-shadow:0 8px 32px #0003;border:2px solid var(--home-primary)}.calendar-header{text-align:center;font-weight:700;color:#333;font-size:1.1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #eee}.events-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.5rem;width:100%;box-sizing:border-box}.weekday{text-align:center;font-weight:600;color:#666;font-size:.8rem;padding:.5rem 0;background:#f8f9fa;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;box-sizing:border-box;min-width:0}.events-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:1rem}.events-calendar-day{aspect-ratio:1;display:flex;align-items:flex-end;justify-content:flex-start;font-size:.8rem;color:#333;border-radius:8px;transition:all .3s ease;font-weight:600;background:#f8f9fa;border:1px solid #e9ecef;min-height:40px;max-height:80px;padding:4px 6px;position:relative}.events-calendar-day:hover{background:#e9ecef;transform:scale(1.05)}.events-calendar-day.other-month{color:#999;background:#f8f9fa;font-weight:400}.events-calendar-day.event{background:var(--home-primary);color:#fff;font-weight:700;border:2px solid var(--home-primary);box-shadow:0 2px 8px #f297154d;position:relative}.events-calendar-day.event:after{content:"🎂";position:absolute;bottom:2px;right:2px;font-size:.6rem}.events-calendar-day.event:hover{background:#e67e22;transform:scale(1.1)}.events-features{display:flex;flex-direction:column;gap:1.5rem;margin-top:2rem}.events-feature{display:flex;align-items:flex-start;gap:1rem;text-align:left}.events-feature-icon{font-size:1.5rem;flex-shrink:0;width:2rem;text-align:center}.events-feature h4{font-size:1.2rem;font-weight:600;margin:0 0 .5rem;color:var(--home-text)}.events-feature p{color:var(--home-text-muted);margin:0;line-height:1.5}@media (max-width: 1024px){.events-section{margin:1rem auto;padding:2rem 1rem}.events-content{grid-template-columns:1fr;text-align:center;gap:2rem;justify-items:center}.calendar-preview{max-width:550px}.events-calendar-weekdays{gap:.5rem;box-sizing:border-box}.weekday{font-size:.9rem;padding:.75rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;box-sizing:border-box;min-width:0}.events-text,.events-features{text-align:center}.events-feature{justify-content:center}}@media (max-width: 768px){.events-section{margin:1rem auto;padding:2rem 1rem}.events-content{grid-template-columns:1fr;text-align:center;gap:2rem;justify-items:center}.events-calendar-weekdays{gap:.4rem;width:100%;box-sizing:border-box}.weekday{font-size:.8rem;padding:.5rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;box-sizing:border-box;min-width:0}.events-text,.events-features{text-align:center}.events-feature{justify-content:center}}@media (max-width: 480px){.events-section{margin:.5rem auto;padding:1.5rem .5rem}.events-section .section-title{font-size:2rem!important}.events-section .section-subtitle{font-size:1rem;margin-bottom:2rem}.calendar-preview{max-width:300px;padding:1rem}.events-calendar-weekdays{gap:.3rem;width:100%;box-sizing:border-box}.weekday{font-size:.7rem;padding:.4rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;box-sizing:border-box;min-width:0}.events-calendar-day{min-height:30px;font-size:.7rem}}.email-verification-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.email-verification-modal{background:#fff;border-radius:16px;max-width:450px;width:100%;box-shadow:0 20px 40px #00000026;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.verification-header{text-align:center;padding:30px 30px 20px;border-bottom:1px solid #f0f0f0}.verification-icon{font-size:3rem;margin-bottom:15px}.verification-header h2{margin:0 0 10px;color:#2c3e50;font-size:1.5rem;font-weight:600}.verification-header p{margin:0 0 15px;color:#7f8c8d;font-size:1rem}.email-display{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:12px 16px;font-weight:600;color:#495057;font-family:Courier New,monospace}.verification-form{padding:30px}.input-group{margin-bottom:20px}.input-group label{display:block;margin-bottom:8px;color:#495057;font-weight:500;font-size:.9rem}.verification-input{width:100%;padding:16px 20px;border:2px solid #e9ecef;border-radius:12px;font-size:1.2rem;text-align:center;font-family:Courier New,monospace;letter-spacing:2px;transition:all .3s ease;box-sizing:border-box}.verification-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.verification-input.error{border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c1a}.verification-input:disabled{background:#f8f9fa;cursor:not-allowed}.error-message,.success-message{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:.9rem;font-weight:500}.error-message{background:#fee;border:1px solid #fcc;color:#c33}.success-message{background:#efe;border:1px solid #cfc;color:#3c3}.verification-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.verify-btn,.resend-btn,.close-btn{padding:14px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.verify-btn{background:#3498db;color:#fff}.verify-btn:hover:not(:disabled){background:#2980b9}.verify-btn:disabled{background:#bdc3c7;cursor:not-allowed}.resend-btn{background:transparent;color:#7f8c8d;border:1px solid #dee2e6}.resend-btn:hover:not(:disabled){background:#f8f9fa;border-color:#adb5bd}.resend-btn:disabled{color:#adb5bd;cursor:not-allowed}.close-btn{background:transparent;color:#6c757d;border:1px solid #dee2e6;margin-top:10px}.close-btn:hover{background:#f8f9fa;border-color:#adb5bd}.verification-footer{text-align:center}.verification-info{background:#f8f9fa;padding:20px 30px;border-top:1px solid #f0f0f0;text-align:center}.verification-info p{margin:5px 0;color:#6c757d;font-size:.85rem}@media (max-width: 480px){.email-verification-overlay{padding:10px}.email-verification-modal{border-radius:12px}.verification-header,.verification-form{padding:20px}.verification-icon{font-size:2.5rem}.verification-header h2{font-size:1.3rem}.verification-input{font-size:1.1rem;padding:14px 16px}.verification-actions{gap:10px}.verify-btn,.resend-btn,.close-btn{padding:12px 20px;font-size:.9rem}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;padding:40px;width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:30px}.login-header h1{color:#2c3e50;font-size:2.5rem;margin:0 0 10px;font-weight:700}.login-header p{color:#7f8c8d;font-size:1.1rem;margin:0}.login-form{margin-bottom:20px}.error-message{background:#e74c3c;color:#fff;padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px}.form-group-login{margin-bottom:20px}.form-group-login label{display:block;margin-bottom:8px;color:#2c3e50;font-weight:500}.form-group-login input{width:100%;padding:12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box}.form-group-login input:focus{outline:none;border-color:#667eea}.password-input-container{position:relative;display:flex;align-items:center}.password-input{width:100%;padding:12px 50px 12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box}.password-toggle-btn{position:absolute!important;right:12px!important;background:none!important;border:none!important;cursor:pointer;font-size:18px;padding:4px;border-radius:4px;transition:background-color .2s ease;display:flex!important;align-items:center;justify-content:center;width:32px;height:32px}.password-toggle-btn:hover{background-color:#f8f9fa}.login-btn{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:14px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease}.login-btn:hover:not(:disabled){transform:translateY(-2px)}.login-btn:disabled{background:#95a5a6;cursor:not-allowed;transform:none}.login-footer{text-align:center}.forgot-password-link{margin-bottom:15px}.forgot-password-text{color:#667eea;text-decoration:none;font-size:14px;font-weight:500;transition:color .3s ease}.forgot-password-text:hover{color:#5a6fd8;text-decoration:underline}.toggle-btn{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;text-decoration:underline;display:block;margin:0 auto;text-align:center}.toggle-btn:hover{color:#764ba2}@media (max-width: 480px){.login-card{padding:30px 20px}.login-header h1{font-size:2rem}}.photo-gallery-upload-container{width:100%;max-width:600px;margin:0 auto}.upload-area{border:2px dashed #ddd;border-radius:12px;padding:40px 20px;text-align:center;transition:all .3s ease;background:#fafafa;margin-bottom:20px}.upload-area:hover{border-color:#3498db;background:#f8f9fa}.upload-area.drag-over{border-color:#27ae60;background:#e8f5e8;transform:scale(1.02)}.upload-area.uploading{border-color:#3498db;background:#f8f9fa}.upload-content{display:flex;flex-direction:column;align-items:center;gap:15px}.upload-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px}.upload-loading .loading-container{background:transparent;box-shadow:none;padding:20px}.upload-content h3{margin:0;color:#2c3e50;font-size:1.5rem;font-weight:600}.upload-content p{margin:0;color:#7f8c8d;font-size:1rem}.file-input{display:none}.select-btn{background:#3498db;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px}.select-btn:hover{background:#2980b9;transform:translateY(-2px)}.upload-info{background:#ecf0f1;padding:15px;border-radius:8px;text-align:center}.upload-info p{margin:5px 0;color:#7f8c8d;font-size:.9rem}.success-message{background-color:#e8f5e8;border:1px solid #27ae60;color:#155724}@media (max-width: 768px){.upload-area{padding:30px 15px}.upload-icon{font-size:36px}.upload-content h3{font-size:1.3rem}.select-btn{padding:10px 20px;font-size:.9rem}.message{font-size:.85rem;padding:10px 12px}}.broken-image-placeholder{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background:#f8f9fa;border-radius:12px;border:2px dashed #dee2e6}.broken-image-card{text-align:center;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;max-width:280px;width:100%}.broken-icon{font-size:2.5rem;margin-bottom:10px;opacity:.7}.broken-image-card h4{font-size:1rem;margin:0 0 8px;font-weight:600}.broken-image-card p{color:#6c757d;font-size:.85rem;margin:0 0 15px;line-height:1.4}.broken-image-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.broken-image-card button{padding:6px 12px;border:none;border-radius:6px;font-size:.8rem;cursor:pointer;transition:all .2s ease;min-width:80px}.retry-btn{background:#007bff;color:#fff}.retry-btn:hover{background:#0056b3}.delete-broken-btn{background:#dc3545;color:#fff}.delete-broken-btn:hover{background:#c82333}.remove-only-btn{background:#dc3545;color:#fff}.remove-only-btn:hover{background:#c82333}.deleted-image{border-left:4px solid #dc3545}.deleted-image h4{color:#dc3545}.connection-image{border-left:4px solid #f39c12}.connection-image h4{color:#f39c12}.default-image{border-left:4px solid #6c757d}.default-image h4{color:#6c757d}@media (max-width: 768px){.broken-image-placeholder{height:150px}.broken-image-card{padding:15px;max-width:200px}.broken-icon{font-size:2rem}.broken-image-card h4{font-size:.9rem}.broken-image-card p{font-size:.8rem}.broken-image-card button{padding:5px 10px;font-size:.75rem}}.photo-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:1000;overflow:hidden}body.modal-open{position:fixed!important;width:100%!important;overflow:hidden!important}body.modal-open input,body.modal-open textarea{position:relative!important;z-index:10001!important;pointer-events:auto!important}.modal-content{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none;padding:60px 20px}.close-btn{position:fixed;top:20px;right:20px;background:#ffffffe6;border:none;border-radius:50%;width:40px;height:40px;font-size:24px;cursor:pointer;z-index:1001;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-btn:hover{background:#fff;transform:scale(1.1)}.zoom-controls{position:fixed;top:20px;left:20px;display:flex;gap:8px;z-index:1001}.zoom-btn{background:#ffffffe6;border:none;border-radius:50%;width:35px;height:35px;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.zoom-btn:hover{background:#fff;transform:scale(1.1)}.reset-btn{font-size:14px}.image-container{display:flex;justify-content:center;align-items:center;transform-origin:center;max-width:100%;max-height:100%;position:relative}.modal-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 4px 20px #00000080;transition:opacity .3s ease}.image-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:15px;color:#fff;z-index:10}.loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.3);border-top:3px solid white;border-radius:50%;animation:spin 1s linear infinite}.image-loading p{margin:0;font-size:14px;font-weight:500}.zoom-info{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#ffffffe6;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:600;color:#333;z-index:1001}@media (max-width: 768px){.modal-content{padding:50px 15px}.close-btn{top:15px;right:15px;width:35px;height:35px;font-size:20px}.zoom-controls{top:15px;left:15px}.zoom-btn{width:30px;height:30px;font-size:16px}.reset-btn{font-size:12px}.zoom-info{bottom:15px;padding:6px 12px;font-size:12px}}@media (max-width: 480px){.modal-content{padding:40px 10px}.close-btn{top:10px;right:10px;width:30px;height:30px;font-size:18px}.zoom-controls{top:10px;left:10px}.zoom-btn{width:28px;height:28px;font-size:14px}.reset-btn{font-size:11px}.zoom-info{bottom:10px;padding:4px 10px;font-size:11px}}.photo-edit-mode{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center}.edit-name-container{display:flex;flex-direction:column;gap:2px;width:100%}.edit-name-container+.photo-date{display:none}.edit-name-input{border:1px solid #3498db;border-radius:4px;padding:4px 8px;font-size:13px;font-weight:500;color:#333;background:#fff;outline:none;transition:all .3s ease;width:100%;box-shadow:0 0 0 1px #3498db33;height:28px}.edit-name-input:focus{border-color:#2980b9;box-shadow:0 0 0 1px #3498db4d;transform:translateY(-1px)}.photo-title{color:#333;font-size:14px;font-weight:600;margin:0 0 2px;line-height:1.1;cursor:pointer;transition:color .2s ease;flex-shrink:0}.photo-title:hover{color:#3498db}@media (prefers-color-scheme: dark){.edit-name-input{background:#4a5568;color:#e2e8f0;border:1px solid #718096}.edit-name-input:focus{background:#2d3748;border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.photo-title{color:#e2e8f0}.photo-title:hover{color:#63b3ed}.photo-date{color:#a0aec0}}.photo-date{color:#666;font-size:11px;margin:0;line-height:1.1;flex-shrink:0}@media (max-width: 768px){.photo-title{font-size:13px}.photo-date{font-size:10px}}@media (max-width: 480px){.photo-title{font-size:12px}.photo-date{font-size:9px}}.photo-item{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0000001a;transition:all .3s ease;display:flex;flex-direction:column;align-items:stretch}.photo-item:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}@media (prefers-color-scheme: dark){.photo-item{background:#2d3748e6;box-shadow:0 4px 12px #0000004d}.photo-item:hover{box-shadow:0 8px 25px #0006}.photo-info h4{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8)}.photo-info p{color:#e0e0e0;text-shadow:0 1px 2px rgba(0,0,0,.8)}}.photo-container{position:relative;width:100%;height:auto;overflow:hidden;cursor:pointer}.photo-image{width:100%;height:auto;min-height:400px;object-fit:cover;transition:transform .3s ease}@media (max-width: 768px){.photo-image{min-height:200px}}.photo-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:transparent;opacity:0;transition:opacity .3s ease;pointer-events:none}.view-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem;color:#fff;opacity:.9;background:#0000004d;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:pointer;z-index:999}.view-icon:hover{opacity:1;transform:translate(-50%,-50%) scale(1.1);background:#00000080}.photo-item:hover .photo-overlay{opacity:1}.photo-item:hover .photo-image{transform:scale(1.05)}.delete-btn{position:absolute;top:10px;left:10px;background:#e74c3c;color:#fff;border:none;border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;z-index:150;transition:all .3s ease}.delete-btn:hover{background:#c0392b;transform:scale(1.1)}.delete-btn.save-mode{background:#27ae60}.delete-btn.save-mode:hover{background:#229954!important;transform:scale(1.1)}.delete-btn:disabled{opacity:.6;cursor:not-allowed}.photo-item .edit-btn{position:absolute;top:10px;right:10px;background:#3498db;color:#fff;border:none;border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;z-index:150;transition:all .3s ease}.photo-item .edit-btn:hover{background:#2980b9;color:#fff}.photo-item .edit-btn.active{background:#e74c3c}.photo-item .edit-btn.active:hover{background:#c0392b;color:#fff}.photo-info{padding:12px;display:flex;flex-direction:column;justify-content:center}.photo-info h4{color:#fff;font-size:.85rem;font-weight:600;margin:0 0 2px;line-height:1.1;text-shadow:0 1px 2px rgba(0,0,0,.8)}.photo-info p{color:#e0e0e0;font-size:.7rem;margin:0;line-height:1.1;text-shadow:0 1px 2px rgba(0,0,0,.8)}.photo-error{padding:20px;text-align:center;color:#e74c3c}.photo-error button{background:#3498db;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;margin-top:10px}.photo-error button:hover{background:#2980b9}@media (max-width: 768px){.delete-btn{width:30px!important;height:30px}}.photo-gallery{padding:20px;min-height:400px}.upload-area{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px dashed #dee2e6;border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;margin-bottom:30px;position:relative;overflow:hidden}.upload-area:hover{border-color:#3498db;background:linear-gradient(135deg,#e3f2fd,#bbdefb);transform:translateY(-2px)}.upload-area.drag-over{border-color:#3498db;background:linear-gradient(135deg,#e3f2fd,#bbdefb);transform:scale(1.02)}.upload-area.uploading{pointer-events:none;opacity:.7}.upload-content{position:relative;z-index:2}.upload-icon{font-size:3rem;margin-bottom:15px}.upload-area h3{color:#2c3e50;font-size:1.5rem;margin:0 0 10px;font-weight:600}.upload-area p{color:#7f8c8d;font-size:1rem;margin:0 0 20px}.upload-btn{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.upload-btn:hover{background:linear-gradient(135deg,#2980b9,#21618c);transform:translateY(-2px)}.upload-loading{display:flex;flex-direction:column;align-items:center;gap:20px}.spinner{width:50px;height:50px;position:relative}.spinner:before,.spinner:after{content:"";position:absolute;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}.spinner:before{width:100%;height:100%;background:linear-gradient(45deg,#3498db,#2980b9);animation-delay:0s}.spinner:after{width:80%;height:80%;top:10%;left:10%;background:linear-gradient(45deg,#2980b9,#3498db);animation-delay:.3s}@keyframes pulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}}.upload-loading p{color:#3498db;font-weight:600;margin:0;font-size:1.1rem}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin-top:20px}.empty-gallery{grid-column:1 / -1;display:flex;justify-content:center;align-items:center;padding:60px 20px;background:#f8f9fa;border-radius:12px;border:2px dashed #dee2e6}@media (prefers-color-scheme: dark){.photo-gallery{background:transparent}.empty-gallery{background:#2d3748;border-color:#4a5568}.empty-gallery-card{background:#4a5568;border-color:#718096;color:#e2e8f0}.empty-gallery-card h3{color:#e2e8f0}.empty-gallery-card p{color:#a0aec0}.tip-item{background:#2d3748;color:#e2e8f0}.tip-item:hover{background:#4a5568}}.empty-gallery-card{background:#fff;border-radius:16px;padding:40px 30px;text-align:center;box-shadow:0 4px 20px #00000014;border:1px solid #e9ecef;max-width:400px;width:100%;transition:transform .3s ease,box-shadow .3s ease}.empty-gallery-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001f}.empty-icon{font-size:4rem;margin-bottom:20px;opacity:.8;display:block}.empty-gallery-card h3{color:#2c3e50;font-size:1.5rem;margin:0 0 15px;font-weight:600}.empty-gallery-card p{color:#6c757d;font-size:1rem;margin:0 0 25px;line-height:1.5}.empty-gallery-tips{display:flex;flex-direction:column;gap:12px;margin-top:20px}.tip-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#f8f9fa;border-radius:8px;font-size:.9rem;color:#495057;transition:background-color .2s ease}.tip-item:hover{background:#e9ecef}.empty-gallery-card .tip-icon{font-size:2rem;flex-shrink:0}@media (max-width: 768px){.photo-gallery{padding:15px}.upload-area{padding:30px 15px}.upload-icon{font-size:2.5rem}.upload-area h3{font-size:1.3rem}.empty-gallery{padding:40px 15px}.empty-gallery-card{padding:30px 20px}.empty-icon{font-size:3rem}.empty-gallery-card h3{font-size:1.3rem}.empty-gallery-card p{font-size:.9rem}.tip-item{font-size:.85rem;padding:6px 10px}}@media (max-width: 480px){.upload-area{padding:20px 10px}.upload-icon{font-size:2rem}.upload-area h3{font-size:1.2rem}.upload-area p{font-size:.9rem}}.avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;position:relative}.avatar-small{width:32px;height:32px;font-size:12px}.avatar-medium{width:48px;height:48px;font-size:16px}.avatar-large{width:80px;height:80px;font-size:24px}.avatar-xl{width:120px;height:120px;font-size:36px}.avatar-xxl{width:250px;height:250px;font-size:60px}.avatar-image{width:100%;height:100%;object-fit:cover;display:block}.avatar-emoji{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:inherit;background:transparent}.avatar-initials{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3);letter-spacing:.5px}.avatar-image+.avatar-initials{display:none;position:absolute;top:0;left:0}.avatar:hover .avatar-initials{transform:scale(1.05);transition:transform .2s ease}.avatar-profile{border:4px solid white;box-shadow:0 4px 12px #00000026}.avatar-post{border:2px solid #ecf0f1}.recipient-row{display:flex;align-items:center;padding:12px;cursor:pointer;transition:all .2s ease;border-bottom:1px solid #f0f0f0}.recipient-row:last-child{border-bottom:none}.recipient-row:hover{background:#f8f9fa}.recipient-row.selected{background:#e3f2fd;border-left:3px solid #3498db}.recipient-avatar{margin-right:12px;flex-shrink:0}.recipient-info{flex:1;min-width:0}.recipient-name{font-weight:600;color:#2c3e50;font-size:.95rem;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipient-role{color:#7f8c8d;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-indicator{color:#27ae60;font-weight:700;font-size:1rem;margin-left:8px;flex-shrink:0}@media (max-width: 768px){.recipient-row{padding:10px}.recipient-name{font-size:.9rem}.recipient-role{font-size:.75rem}}.recipient-selector{position:relative;width:100%}.recipient-input-container{position:relative;display:flex;align-items:center}.recipient-input{width:100%;padding:12px 40px 12px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s ease;outline:none}.recipient-input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.clear-btn{position:absolute;right:8px;background:none;border:none;color:#7f8c8d;cursor:pointer;padding:4px;border-radius:4px;font-size:.9rem;transition:all .2s ease}.clear-btn:hover{background:#e74c3c;color:#fff}.recipient-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #e0e0e0;border-top:none;border-radius:0 0 8px 8px;max-height:200px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px #0000001a}.loading-state{display:flex;align-items:center;justify-content:center;padding:20px;min-height:80px}.loading-spinner{border:3px solid #f3f3f3;border-top:3px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-right:10px}.loading-spinner.small{width:20px;height:20px;border-width:2px}.no-results{padding:15px;text-align:center;color:#7f8c8d;font-size:.9rem}.error-state{padding:15px;text-align:center;color:#e74c3c;font-size:.9rem}@media (max-width: 768px){.recipient-dropdown{max-height:150px}}.message-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;display:flex;justify-content:flex-end;align-items:stretch;animation:fadeIn .3s ease-out;animation-fill-mode:both}.message-modal{width:500px;height:calc(100vh - 50px);max-height:calc(100vh - 50px);background:#fff;display:flex;flex-direction:column;animation:slideInRight .3s ease-out;animation-fill-mode:both;box-shadow:-5px 0 25px #0003}.message-modal-header h2{margin:0;color:#2c3e50;font-size:1.5rem;font-weight:600}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#7f8c8d;padding:5px;border-radius:4px;transition:all .2s ease}.close-btn:hover:not(:disabled){background:#e74c3c;color:#fff}.message-modal-content{flex:1;padding:20px;overflow-y:auto}.form-group-message{margin-bottom:20px}.form-group-message label{display:block;margin-bottom:8px;font-weight:600;color:#2c3e50;font-size:.9rem}.subject-input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s ease;outline:none}.subject-input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.message-textarea{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;resize:vertical;min-height:120px;transition:border-color .3s ease;outline:none}.message-textarea:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.message-modal-footer{padding:20px;border-top:1px solid #e0e0e0;display:flex;gap:10px;background:#f8f9fa}.cancel-btn,.send-btn{padding:12px 24px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:1rem}.cancel-btn{background:#95a5a6;color:#fff}.cancel-btn:hover:not(:disabled){background:#7f8c8d;transform:translateY(-1px)}.send-btn{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.send-btn:hover:not(:disabled){background:linear-gradient(135deg,#2980b9,#21618c);transform:translateY(-1px)}.send-btn:disabled{background:#bdc3c7;cursor:not-allowed;transform:none}@media (max-width: 768px){.message-modal{width:100%;height:auto;min-height:calc(100vh - 50px);max-height:calc(100vh - 50px);overflow-y:auto}.message-modal-header h2{font-size:1.3rem}.message-modal-content{padding:15px;flex:1;overflow-y:auto}.message-modal-footer{padding:15px;gap:10px;flex-shrink:0;background:#f8f9fa;border-top:1px solid #e0e0e0}}.success-message{display:flex;align-items:center;gap:12px;padding:16px 20px;margin:0 20px 20px;background:linear-gradient(135deg,#2ecc71,#27ae60);color:#fff;border-radius:8px;animation:slideInUp .5s ease-out;box-shadow:0 4px 12px #2ecc714d}.success-icon{font-size:1.5rem;animation:bounce .6s ease-in-out}.success-text{font-weight:600;font-size:1rem}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-5px)}60%{transform:translateY(-3px)}}@media (max-width: 768px){.success-message{margin:0 15px 15px;padding:12px 15px}.success-icon{font-size:1.3rem}.success-text{font-size:.9rem}}.message-item{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid #e0e0e0;border-radius:8px;transition:all .2s ease;background:#fff;position:relative}.message-item:hover{background:#f8f9fa}.message-item.unread{background:#f0f8ff;border-color:#3498db;border-left:4px solid #3498db}.message-item.read{opacity:.8}.message-avatar{flex-shrink:0}.message-content{flex:1;min-width:0}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.message-sender{display:flex;align-items:center;gap:6px}.message-type-icon{font-size:.9rem}.sender-name{font-weight:600;color:#333;font-size:.95rem}.message-time{font-size:.8rem;color:#7f8c8d;white-space:nowrap}.message-subject{font-weight:600;color:#2c3e50;margin-bottom:5px;font-size:.95rem;line-height:1.3}.message-preview{color:#555;font-size:.9rem;line-height:1.4;overflow:hidden;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.event-notification{display:block!important;-webkit-line-clamp:unset!important;-webkit-box-orient:unset!important}.event-notification p{margin:4px 0;line-height:1.3}.event-notification .event-main{font-size:.9rem;font-weight:500;color:#2c3e50;margin-bottom:6px}.event-notification .event-datetime{font-size:.85rem;color:#3498db;font-weight:500}.event-confirmation{display:block!important;-webkit-line-clamp:unset!important;-webkit-box-orient:unset!important}.event-confirmation .confirmation-main{font-size:.9rem;font-weight:500;color:#27ae60;margin:4px 0;line-height:1.3}.unread-indicator{position:absolute;top:15px;right:15px}.unread-dot{width:8px;height:8px;background:#e74c3c;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}to{transform:scale(1);opacity:1}}@media (max-width: 768px){.message-item{padding:12px;gap:10px}.message-header{flex-direction:column;align-items:flex-start;gap:3px}.message-time{font-size:.75rem}.sender-name{font-size:.9rem}.message-subject{font-size:.9rem;text-align:left}.message-preview{font-size:.85rem;text-align:left}.event-notification,.event-notification p{text-align:left}}.message-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;display:flex;justify-content:flex-end;animation:fadeIn .3s ease-out;animation-fill-mode:both}.message-modal-overlay.closing{animation:fadeOut .3s ease-in;animation-fill-mode:both}.message-modal{width:500px;height:calc(100vh - 50px);background:#fff;animation:slideInRight .3s ease-out;animation-fill-mode:both;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column}.message-modal.closing{animation:slideOutRight .3s ease-in;animation-fill-mode:both}.message-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e0e0e0;background:#f8f9fa}.message-modal-header h2{margin:0;color:#333;font-size:1.5rem}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:5px;border-radius:4px;transition:all .2s ease}.close-btn:hover{background:#e74c3c;color:#fff}.message-modal-content{flex:1;overflow-y:auto;padding:20px}.loading-state{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:#7f8c8d}.spinner{width:20px;height:20px;border:2px solid #e0e0e0;border-top:2px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}.error-state{text-align:center;padding:40px;color:#e74c3c}.no-messages{text-align:center;padding:40px;color:#7f8c8d;font-size:1.1rem}.inbox-footer{border-top:1px solid #e0e0e0;padding:15px 20px;background:#f8f9fa;margin-top:10px}.cleanup-notice{margin:0;font-size:.8rem;color:#6c757d;text-align:center;line-height:1.4}.cleanup-notice em{font-style:italic}.messages-list{display:flex;flex-direction:column;gap:15px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideOutRight{0%{transform:translate(0)}to{transform:translate(100%)}}@media (max-width: 768px){.message-modal{width:100%;height:calc(100vh - 50px)}.message-modal-header,.message-modal-content{padding:15px}}.message-bell-container{position:relative;display:inline-block}.message-bell{background:#d5dbdb;border:none;font-size:1.4rem;cursor:pointer;padding:6px;border-radius:50%;transition:all .2s ease;position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px}.message-bell:hover{background:#bdc3c7;transform:scale(1.1)}.message-bell:active{transform:scale(.95)}.message-bell{position:relative}.message-bell[title]:hover:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;z-index:1000;margin-bottom:5px;animation:tooltipFadeIn .1s ease-out}.unread-badge{position:absolute;top:1px;right:1px;background:#e74c3c;color:#fff;font-size:.6rem;font-weight:700;padding:1px 4px;border-radius:8px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 2px 4px #0003;animation:bounce .5s ease-in-out}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-3px)}60%{transform:translateY(-2px)}}.message-bell:has(.unread-badge){animation:bellPulse 2s infinite}@keyframes bellPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@media (max-width: 768px){.message-bell{font-size:1.2rem;width:35px;height:35px;padding:5px}.unread-badge{font-size:.55rem;padding:1px 3px;min-width:14px;height:14px}}.file-uploader{position:relative}.file-uploader-input{display:none}.file-uploader-btn{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;padding:8px 12px;font-size:18px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.file-uploader-btn:hover:not(:disabled){background:#e9ecef;border-color:#3498db}.file-uploader-btn:disabled{opacity:.5;cursor:not-allowed}.file-uploader-preview{margin-top:12px}.file-uploader .file-preview-image,.file-uploader .file-preview-document{display:flex;align-items:center;padding:12px;gap:12px;position:relative;border:1px solid #e9ecef;border-radius:8px;background:#f8f9fa}.preview-thumbnail{width:60px;height:60px;object-fit:cover;border-radius:6px;border:1px solid #e9ecef}.document-preview-icon{font-size:32px;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:6px;border:1px solid #e9ecef}.file-preview-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.file-preview-name{font-weight:500;color:#2c3e50;font-size:14px;word-break:break-all;line-height:1.3}.file-preview-size{color:#6c757d;font-size:12px}.file-uploader .file-preview-remove{background:#e74c3c;color:#fff;border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;margin-left:auto}.file-uploader .file-preview-remove:hover{background:#c0392b}@media (max-width: 768px){.file-uploader-btn{padding:6px 10px;font-size:16px}.file-preview-image,.file-preview-document{padding:10px;gap:10px}.preview-thumbnail{width:50px;height:50px}.document-preview-icon{width:50px;height:50px;font-size:24px}.file-preview-name{font-size:13px}.file-preview-size{font-size:11px}.file-preview-remove{width:20px;height:20px;font-size:10px}}.post-form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.post-form-container{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideInUp .3s ease-out}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.post-form-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e9ecef}.post-form-header h3{margin:0;color:#2c3e50;font-size:20px;font-weight:600}.close-btn{background:none;border:none;font-size:20px;color:#6c757d;cursor:pointer;padding:8px;border-radius:50%;transition:all .2s ease;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.close-btn:disabled{opacity:.5;cursor:not-allowed}.post-form{padding:24px}.post-form-content{margin-bottom:24px}.author-info{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px!important;border-bottom:1px solid #e9ecef}.author-details h4{margin:0 0 4px;color:#2c3e50;font-size:16px;font-weight:600}.author-details p{margin:0;color:#6c757d;font-size:14px}.content-section{position:relative}.post-textarea{width:100%;border:2px solid #e9ecef;border-radius:8px;padding:16px;font-size:16px;font-family:inherit;resize:vertical;min-height:120px;outline:none;transition:all .3s ease;background:#f8f9fa}.post-textarea:focus{border-color:#3498db;background:#fff;box-shadow:0 0 0 3px #3498db1a}.post-textarea:disabled{background:#e9ecef;cursor:not-allowed}.character-count{font-size:12px;color:#6c757d;text-align:center;flex:1}.post-form-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:nowrap}.emoji-section{position:relative}.emoji-btn{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:8px 12px;font-size:18px;cursor:pointer;transition:all .3s ease}.emoji-btn:hover{background:#e9ecef;border-color:#dee2e6}.emoji-option{background:none;border:none;font-size:18px;padding:4px;border-radius:4px;cursor:pointer;transition:all .1s ease}.emoji-option:hover{transform:scale(1.1)}.post-form-actions{display:flex;justify-content:flex-end;gap:12px}.cancel-btn{background:#6c757d;color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s ease;flex-shrink:0}.cancel-btn:hover:not(:disabled){background:#5a6268;transform:translateY(-1px)}.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.submit-btn{background:#2ecc71;color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px;flex-shrink:0}.submit-btn:hover:not(:disabled){background:#27ae60;transform:translateY(-1px);box-shadow:0 4px 12px #2ecc714d}.submit-btn:disabled{background:#95a5a6;cursor:not-allowed;transform:none;box-shadow:none}.inline-spinner{display:flex;align-items:center;gap:8px}.spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.post-form-overlay{padding:10px}.post-form-container{max-height:95vh}.post-form-header{padding:16px 20px}.post-form{padding:20px}.post-form-actions{flex-direction:row;justify-content:flex-end}.cancel-btn,.submit-btn{width:100px!important;padding:10px 16px;font-size:14px;justify-content:center;flex-shrink:0}}.file-error{color:#e74c3c;font-size:12px;margin-top:8px;padding:8px;background:#fdf2f2;border:1px solid #fecaca;border-radius:4px}.post-attachment{margin:16px 0}.post-attachments{display:block}.attachment-item{margin-bottom:8px}.post-attachment-photo{position:relative;display:block;width:100%}.photo-container{border-radius:8px;display:inline-block;max-width:100%;height:auto}.image-wrapper{position:relative;display:inline-block;max-width:100%;border-radius:8px;overflow:hidden}.attachment-image{width:100%;height:auto;object-fit:contain;display:block;border-radius:8px;max-width:100%}.photo-delete-btn{position:absolute;top:8px;right:8px;background:#e74c3ce6;color:#fff;border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10}.photo-delete-btn:hover{background:#c0392b;transform:scale(1.1)}.large-image-indicator{position:absolute;bottom:8px;left:8px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:12px;font-size:11px;opacity:.8;pointer-events:none}.large-image-indicator span{display:flex;align-items:center;gap:4px}.post-attachment-document{position:relative}.document-container{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e9ecef;border-radius:8px;cursor:pointer;transition:all .2s ease;background:#f8f9fa}.document-container:hover{background:#e9ecef;border-color:#3498db}.document-icon{font-size:32px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:6px;border:1px solid #dee2e6}.document-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.document-name{font-weight:500;color:#2c3e50;font-size:14px;word-break:break-all;line-height:1.3}.document-size{color:#6c757d;font-size:12px}.download-icon{font-size:20px;color:#3498db}@media (max-width: 768px){.large-image-indicator{font-size:10px;padding:3px 6px;bottom:4px;left:4px}.document-container{padding:10px;gap:10px}.document-icon{width:40px;height:40px;font-size:24px}.document-name{font-size:13px}.document-size{font-size:11px}.download-icon{font-size:18px}}.post-card.emoji-picker-open:hover{box-shadow:0 2px 10px #0000001a!important;transform:none!important}.post-card.emoji-picker-open .comment-item:hover,.post-card.emoji-picker-open .comment-item:hover *,.post-card.emoji-picker-open .post-actions button:hover,.post-card.emoji-picker-open .post-actions button:hover *{background:transparent!important;transform:none!important;box-shadow:none!important}.post-card{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;padding:20px 20px 0!important;margin-bottom:20px;transition:all .3s ease}.post-card:hover{box-shadow:0 4px 20px #00000026;transform:translateY(-2px)}.post-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.post-author{display:flex;align-items:center;gap:12px}.author-info{display:flex;flex-direction:column;gap:2px;padding:0;margin:0}.author-info h4{margin:0;color:#2c3e50;font-size:16px;font-weight:600}.post-date{color:#95a5a6;font-size:12px;margin:0}.delete-post-btn{background:#e74c3c;color:#fff;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-size:14px}.delete-post-btn:hover{background:#c0392b;transform:scale(1.1)}.post-actions-author{display:flex;gap:8px}.edit-post-btn{background:#3498db;color:#fff;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-size:14px}.edit-post-btn:hover{background:#2980b9;transform:scale(1.1)}.post-content{margin-bottom:16px}.edit-post-form{display:flex;flex-direction:column;gap:12px}.edit-post-textarea{width:100%;border:2px solid #e9ecef;border-radius:8px;padding:12px;font-size:16px;font-family:inherit;resize:vertical;outline:none;transition:all .3s ease;background:#f8f9fa}.edit-post-textarea:focus{border-color:#3498db;background:#fff;box-shadow:0 0 0 3px #3498db1a}.edit-post-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px}.edit-emoji-section{position:relative}.edit-emoji-btn{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:8px 12px;font-size:18px;cursor:pointer;transition:all .3s ease}.edit-emoji-btn:hover{background:#e9ecef;border-color:#dee2e6}.edit-emoji-picker{position:absolute;top:100%;left:0;background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:5px;margin:0;box-shadow:0 4px 12px #00000026;z-index:10;display:flex;flex-direction:row;flex-wrap:wrap;gap:2px;max-width:200px}.edit-emoji-option{background:none;border:none;font-size:18px;padding:6px;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0}.edit-emoji-option:hover{background:#f8f9fa;transform:scale(1.1)}.edit-buttons{display:flex;gap:12px}.cancel-edit-btn{background:#6c757d;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.cancel-edit-btn:hover{background:#5a6268}.save-edit-btn{background:#2ecc71;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.save-edit-btn:hover:not(:disabled){background:#27ae60}.save-edit-btn:disabled{background:#95a5a6;cursor:not-allowed}.post-content p{margin:0;color:#2c3e50;font-size:16px;line-height:1.5;word-wrap:break-word}.post-actions{display:flex;gap:20px;border-top:1px solid #e9ecef}.like-btn,.comment-btn{background:none;border:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;border-radius:8px;transition:all .3s ease;font-size:14px;color:#6c757d}.like-btn:hover,.comment-btn:hover{background:#f8f9fa;color:#495057}.like-btn.liked{color:#e74c3c}.like-btn.liked:hover{background:#fdf2f2}.comment-btn.active{color:#3498db;background:#f0f8ff}.like-icon,.comment-icon{font-size:16px}.like-count,.comment-count{font-weight:500}.comments-section{padding:16px;border-top:1px solid #e9ecef}.comments-list{margin-bottom:16px}.no-comments{text-align:center;color:#95a5a6;font-style:italic}.comment-item{display:flex;gap:12px;margin-bottom:16px}.comment-content{flex:1}.comment-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.comment-header h5{margin:0;color:#2c3e50;font-size:14px;font-weight:600}.comment-date{color:#95a5a6;font-size:12px}.comment-content p{margin:0;color:#495057;font-size:14px;line-height:1.4}.add-comment-form{display:flex;gap:12px;align-items:flex-end}.comment-input-container{flex:1;display:flex;gap:8px;align-items:center}.comment-input{flex:1;border:1px solid #e9ecef;border-radius:20px;padding:8px 16px;font-size:14px;outline:none;transition:all .3s ease;background:#f8f9fa}.comment-input:focus{border-color:#3498db;background:#fff;box-shadow:0 0 0 2px #3498db1a}.comment-input:disabled{background:#e9ecef;cursor:not-allowed}.submit-comment-btn{background:#3498db;color:#fff;border:none;border-radius:20px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;min-width:60px}.submit-comment-btn:hover:not(:disabled){background:#2980b9;transform:translateY(-1px)}.submit-comment-btn:disabled{background:#95a5a6;cursor:not-allowed;transform:none}@media (max-width: 768px){.post-card{padding:16px 16px 0!important}.post-header{gap:12px}.post-author{width:100%}.delete-post-btn{align-self:flex-end}.post-actions{gap:16px}.add-comment-form{flex-direction:column;align-items:stretch}.comment-input-container{flex-direction:column;gap:8px}.submit-comment-btn{align-self:flex-end}}.edit-post-tools{display:flex;justify-content:space-between;align-items:center;margin:12px 0;gap:12px}.edit-file-error{color:#e74c3c;font-size:12px;margin-top:8px;padding:8px;background:#fdf2f2;border:1px solid #fecaca;border-radius:4px}.edit-post-actions{margin-top:12px}@media (max-width: 768px){.edit-post-tools{flex-direction:column;align-items:stretch;gap:8px}}.wall-skeleton{width:100%;padding:20px}.skeleton-post-form{background:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px #0000001a}.skeleton-form-header{display:flex;gap:12px;align-items:center;margin-bottom:16px}.skeleton-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-avatar.small{width:32px;height:32px}.skeleton-form-input{flex:1;height:40px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:20px;animation:shimmer 1.5s infinite}.skeleton-form-actions{display:flex;justify-content:space-between;align-items:center}.skeleton-emoji-btn,.skeleton-attach-btn{width:32px;height:32px;border-radius:50%;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-submit-btn{width:80px;height:36px;border-radius:18px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-posts-list{display:flex;flex-direction:column;gap:20px}.skeleton-post{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a}.skeleton-post-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.skeleton-post-info{flex:1}.skeleton-author-name{width:120px;height:16px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:4px;margin-bottom:6px;animation:shimmer 1.5s infinite}.skeleton-post-date{width:80px;height:12px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:4px;animation:shimmer 1.5s infinite}.skeleton-post-menu{width:24px;height:24px;border-radius:50%;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-post-content{margin-bottom:16px}.skeleton-text-line{height:16px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:4px;margin-bottom:8px;animation:shimmer 1.5s infinite}.skeleton-text-line.full{width:100%}.skeleton-text-line.medium{width:75%}.skeleton-text-line.short{width:45%}.skeleton-post-image{width:100%;height:200px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:8px;margin-bottom:16px;animation:shimmer 1.5s infinite}.skeleton-post-actions{display:flex;gap:16px;padding-top:12px;border-top:1px solid #f0f0f0}.skeleton-action-btn{width:60px;height:32px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:16px;animation:shimmer 1.5s infinite}@media (max-width: 768px){.wall-skeleton{padding:15px}.skeleton-post{padding:16px}.skeleton-post-image{height:150px}.skeleton-form-input{height:36px}}.family-wall{max-width:800px;margin:0 auto;padding:20px;background:#f8f9fa;min-height:100vh}.family-wall-header{display:flex;justify-content:space-between;margin-bottom:20px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.family-wall-header h2{margin:0;color:#2c3e50;font-size:20px;font-weight:600}.create-post-btn{background:#3498db;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:6px}.create-post-btn:hover{background:#2980b9;transform:translateY(-2px);box-shadow:0 4px 12px #3498db4d}.error-message{background:#e74c3c;color:#fff;padding:15px 20px;border-radius:8px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.error-message button{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.posts-container{display:flex;flex-direction:column;gap:20px}.no-posts{text-align:center;padding:40px 20px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.no-posts-icon{font-size:48px;margin-bottom:16px}.no-posts h3{color:#2c3e50;margin:0 0 8px;font-size:18px}.no-posts p{color:#7f8c8d;margin:0 0 24px;font-size:14px}.create-first-post-btn{background:#27ae60;color:#fff;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.create-first-post-btn:hover{background:#229954;transform:translateY(-2px);box-shadow:0 4px 12px #27ae604d}@media (max-width: 768px){.family-wall{padding:15px}.family-wall-header{flex-direction:row;justify-content:space-between;align-items:center;gap:15px;text-align:left}.family-wall-header h2{font-size:18px}.create-post-btn{width:auto;padding:8px 16px;font-size:14px}}.participant-selector{position:relative;width:100%;transition:margin-bottom .3s ease}.participant-selector.picker-open{margin-bottom:120px}.selected-participants{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;min-height:20px}.selected-participant{display:flex;align-items:center;gap:8px;background:#e3f2fd;border:1px solid #3498db;border-radius:20px;padding:6px 12px;font-size:13px}.selected-participant-info{display:flex;flex-direction:column;gap:1px}.selected-participant-name{font-weight:500;color:#2c3e50;font-size:12px;line-height:1.2}.selected-participant-role{color:#6c757d;font-size:10px;line-height:1.1}.remove-participant-btn{background:none;border:none;color:#6c757d;cursor:pointer;font-size:16px;padding:0;margin-left:4px;transition:color .2s ease}.remove-participant-btn:hover{color:#e74c3c}.add-participants-container{margin-bottom:12px}.add-participants-btn{width:100%;padding:12px 16px;border:2px dashed #3498db;border-radius:8px;background:transparent;color:#3498db;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.add-participants-btn:hover{background:#e3f2fd;border-color:#2980b9;color:#2980b9}.participant-selector.picker-open .add-participants-btn{background:#3498db;border-color:#3498db;color:#fff}.participant-selector.picker-open .add-participants-btn:hover{background:#2980b9;border-color:#2980b9;color:#fff}.participants-grid{position:absolute;top:100%;left:-20px;right:-20px;background:#fff;border:1px solid #e1e8ed;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;max-height:280px;overflow-y:auto;margin-top:8px;padding:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(75px,1fr));gap:10px;justify-items:center}.participant-grid-item{display:flex;flex-direction:column;align-items:center;padding:8px 6px;border:1px solid #e1e8ed;border-radius:50%;cursor:pointer;transition:all .2s ease;background:#fff;position:relative;width:70px;height:70px;justify-content:center;gap:2px;box-shadow:2px 2px 4px #0000001a}.participant-grid-item:hover{border-color:#3498db;background:#f8f9fa;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.participant-grid-item.selected{border-color:#28a745;background:#e8f5e8;box-shadow:0 2px 8px #28a7454d}.participant-avatar{font-size:16px;margin-bottom:4px;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.participant-grid-info{display:flex;flex-direction:column;align-items:center;gap:2px}.participant-grid-name{font-size:9px;font-weight:500;color:#2c3e50;text-align:center;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60px}.participant-grid-role{font-size:7px;color:#6c757d;text-align:center;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60px}.all-family-item{border-color:#3498db;background:#f0f8ff;box-shadow:0 2px 8px #3498db33}.all-family-item .participant-grid-name{color:#3498db;font-weight:600}.selected-indicator{position:absolute;top:2px;right:2px;background:#28a745;color:#fff;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border:2px solid white}.loading-state,.error-state,.no-results{padding:16px;text-align:center;color:#6c757d;font-size:14px}.error-state{color:#e74c3c}.spinner{width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 8px}@media (max-width: 768px){.participants-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:8px;padding:10px}.participant-grid-item{width:60px;height:60px;padding:6px 4px;gap:1px}.participant-grid-name{font-size:8px;max-width:50px}.participant-grid-role{font-size:6px;max-width:50px}.selected-indicator{width:14px;height:14px;font-size:9px;top:1px;right:1px}.selected-participant{padding:4px 8px;gap:6px}.selected-participant-name{font-size:11px}.selected-participant-role{font-size:9px}}.event-form-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000}.event-form-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:20px}.event-form-container{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;width:100%;max-width:500px;max-height:95vh;overflow-y:auto}.event-form-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e1e8ed}.event-form-header h3{margin:0;font-size:20px;font-weight:600;color:#2c3e50}.event-form{padding:24px}.form-group-event{margin-bottom:20px}.form-group-event label{display:block;margin-bottom:6px;font-weight:500;color:#2c3e50;font-size:14px}.form-group-event input,.form-group-event textarea{width:100%;padding:12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box;background:#fff}.form-group-event input:focus,.form-group-event textarea:focus{outline:none;border-color:#3498db}.form-group-event input.error,.form-group-event textarea.error{border-color:#e74c3c}.form-group-event textarea{resize:vertical;min-height:80px;font-family:inherit}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.error-message{color:#e74c3c;font-size:12px;margin-top:4px;display:flex;align-items:center;gap:4px}.help-text{color:#6c757d;font-size:12px;margin-top:4px;font-style:italic}.submit-error{background:#f8d7da;color:#721c24;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;border:1px solid #f5c6cb}.event-form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.cancel-btn,.submit-btn{padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.cancel-btn{background:#f8f9fa;color:#6c757d;border:1px solid #e1e8ed}.cancel-btn:hover{background:#e9ecef;border-color:#dee2e6}.submit-btn{background:#28a745;color:#fff}.submit-btn:hover{background:#218838}.submit-btn:disabled{background:#6c757d;cursor:not-allowed}@media (max-width: 768px){.event-form-overlay{padding:10px}.event-form-container{max-width:100%}.event-form-header{padding:16px 20px}.event-form{padding:20px}.form-row{grid-template-columns:1fr;gap:12px}.cancel-btn,.submit-btn{flex:0 0 auto;min-width:100px}}@media (max-width: 480px){.event-form-header h3{font-size:18px}.form-group-event input,.form-group-event textarea{padding:10px 12px;font-size:14px}}.event-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000}.event-modal-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:20px}.event-modal-container{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.event-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e1e8ed}.event-modal-header h3{margin:0;font-size:20px;font-weight:600;color:#2c3e50;flex:1}.header-actions{display:flex;align-items:center;gap:8px}.event-modal-delete-btn{background:#ffebee;border:none;font-size:18px;color:#dc3545;cursor:pointer;padding:0;width:50px;height:50px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.event-modal-delete-btn:hover:not(:disabled){background:#dc3545;color:#fff}.event-modal-delete-btn:disabled{opacity:.6;cursor:not-allowed}.close-btn{background:none;border:none;font-size:24px;color:#6c757d;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.close-btn:hover{background:#f8f9fa;color:#495057}.event-modal-content{padding:24px}.event-detail{display:flex;align-items:center;margin-bottom:16px;gap:12px}.event-detail:last-child{margin-bottom:0}.detail-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.detail-text{font-size:16px;color:#2c3e50;line-height:1.4}.event-modal-actions{display:flex;gap:12px;padding:0 24px 24px;justify-content:flex-end}.edit-btn,.delete-btn{padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;display:flex;align-items:center;gap:8px}.event-modal-edit-btn{background:#e8f5e8;border:none;color:#28a745;font-size:18px;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.event-modal-edit-btn:hover{background:#28a745;color:#fff}.delete-btn{background:#dc3545;color:#fff}.delete-btn:hover:not(:disabled){background:#c82333}.delete-btn:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}@media (max-width: 768px){.event-modal-overlay{padding:10px}.event-modal-container{max-width:100%}.event-modal-header{padding:16px 20px}.event-modal-content{padding:20px}.event-modal-actions{padding:0 20px 20px}.edit-btn,.delete-btn{width:100%;justify-content:center}}@media (max-width: 480px){.event-modal-header h3{font-size:18px}.detail-text{font-size:14px}}.events-list{display:flex;flex-direction:column;gap:12px}.no-events{text-align:center;padding:40px 20px;color:#6c757d}.no-events-icon{font-size:48px;margin-bottom:16px}.no-events h3{margin:0 0 8px;font-size:18px;color:#495057}.no-events p{margin:0;font-size:14px}.event-list-item{display:flex;align-items:center;padding:16px;background:#fff;border:1px solid #e1e8ed;border-radius:8px;transition:all .2s ease;gap:16px;cursor:pointer}.event-list-item:hover{box-shadow:0 4px 12px #00000026;border-color:#3498db}.event-date{display:flex;flex-direction:column;align-items:center;margin-right:16px;min-width:50px}.event-day{font-size:20px;font-weight:700;color:#2c3e50;line-height:1}.event-month{font-size:12px;color:#6c757d;font-weight:500}.event-details{flex:1}.event-time{font-size:12px;color:#6c757d;font-weight:500;margin-bottom:4px}.event-title{font-size:16px;font-weight:600;color:#2c3e50;margin-bottom:2px}.event-location{font-size:14px;color:#6c757d}@media (max-width: 768px){.event-list-item{padding:12px}.event-day{font-size:18px}.event-title{font-size:14px}}.calendar-skeleton{width:100%;min-height:600px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.skeleton-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 10px}.skeleton-nav-btn{width:40px;height:40px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:8px;animation:shimmer 1.5s infinite}.skeleton-month-title{width:200px;height:32px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:6px;animation:shimmer 1.5s infinite}.skeleton-controls{display:flex;gap:10px;margin-bottom:20px;justify-content:center}.skeleton-view-btn{width:80px;height:36px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:6px;animation:shimmer 1.5s infinite}.skeleton-today-btn{width:60px;height:36px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:6px;animation:shimmer 1.5s infinite}.skeleton-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:10px;background:#e0e0e0;border-radius:8px;overflow:hidden}.skeleton-weekday{background:#f8f9fa;padding:12px 8px;text-align:center;font-size:.85rem;font-weight:600;color:#999}.skeleton-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e0e0e0;border-radius:8px;overflow:hidden;min-height:400px}.skeleton-day{background:#fff;padding:8px;min-height:80px;display:flex;flex-direction:column}.skeleton-day-number{width:24px;height:20px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:4px;margin-bottom:8px;animation:shimmer 1.5s infinite}.skeleton-events{display:flex;flex-direction:column;gap:4px;flex:1}.skeleton-event{height:16px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;border-radius:4px;animation:shimmer 1.5s infinite}.skeleton-event:nth-child(1){width:80%}.skeleton-event:nth-child(2){width:60%}.skeleton-event:nth-child(3){width:90%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media (max-width: 768px){.calendar-skeleton{padding:15px;min-height:500px}.skeleton-day{min-height:60px;padding:6px}.skeleton-day-number{width:20px;height:16px}.skeleton-event{height:12px}}.calendar-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px;margin:20px 0;min-width:0;width:100%;box-sizing:border-box}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #e1e8ed}.calendar-title h2{margin:0;font-size:24px;font-weight:700;color:#2c3e50;letter-spacing:1px}.calendar-controls{display:flex;gap:10px;align-items:center}.calendar-btn{background:#f8f9fa;border:1px solid #e1e8ed;border-radius:6px;padding:8px 12px;cursor:pointer;font-size:14px;transition:all .2s ease}.calendar-btn:hover{background:#e9ecef;border-color:#dee2e6}.today-btn{background:#3498db;color:#fff;border-color:#3498db}.today-btn:hover:not(:disabled){background:#2980b9}.today-btn:disabled,.today-btn.disabled{background:#e9ecef;color:#6c757d;border-color:#e9ecef;cursor:not-allowed;opacity:.6}.create-event-btn{background:#28a745;color:#fff;border-color:#28a745;font-weight:600}.create-event-btn:hover{background:#218838;border-color:#1e7e34}.view-toggle{display:flex;gap:0;margin-bottom:20px;background:#fff;padding:4px;border-radius:12px;width:fit-content;box-shadow:0 2px 8px #0000001a;border:1px solid #e1e8ed}.toggle-btn{background:transparent;border:none;padding:12px 20px;border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s ease;display:flex;align-items:center;gap:8px;color:#6c757d;font-weight:500;text-decoration:none}.toggle-btn:hover{color:#495057;background:#f8f9fa;transform:translateY(-1px);box-shadow:0 1px 3px #0000001a;text-decoration:none}.toggle-btn.active{background:#fff;box-shadow:0 2px 4px #0000001a;font-weight:600;color:#495057;text-decoration:none}.calendar-grid{border:1px solid #e1e8ed;border-radius:8px;overflow:hidden}@media (max-width: 1024px) and (min-width: 769px){.calendar-grid{overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative}.calendar-grid:after{content:"← Swipe to navigate →";position:absolute;bottom:10px;right:10px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:12px;font-size:10px;pointer-events:none;opacity:.8;z-index:1;animation:fadeInOut 4s ease-in-out}}@media (max-width: 768px){.calendar-grid{overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative}}@media (max-width: 668px){.calendar-grid:after{content:"← Swipe to navigate →";position:absolute;bottom:10px;right:10px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:12px;font-size:10px;pointer-events:none;opacity:.8;z-index:1;animation:fadeInOut 4s ease-in-out}@keyframes fadeInOut{0%,70%{opacity:.8}to{opacity:0}}}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#f8f9fa;border-bottom:1px solid #e1e8ed;min-width:0;width:100%;transition:opacity .3s ease}.calendar-weekdays.transitioning{opacity:.3}.weekday-header{padding:12px 8px;text-align:center;font-weight:700;font-size:12px;color:#6c757d;letter-spacing:.5px;border-right:1px solid #e1e8ed;min-width:0;overflow:hidden}.weekday-header:last-child{border-right:none}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(5,1fr);transition:opacity .3s ease}@media (max-width: 768px){.calendar-days,.calendar-weekdays{min-width:600px}}.calendar-days.transitioning{opacity:.3}.calendar-day{height:120px;border-right:1px solid #e1e8ed;border-bottom:1px solid #e1e8ed;padding:8px;position:relative;background:#fff;overflow:hidden;cursor:pointer;transition:background-color .2s ease}.calendar-day:hover{background:#f8f9fa}.calendar-day.other-month:hover{background:#f1f3f4}.calendar-day:last-child{border-right:none}.calendar-day.other-month{background:#f8f9fa;color:#adb5bd}.calendar-day.today{background:#e3f2fd}.day-number{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:14px;margin-bottom:4px;color:#2c3e50}.additional-events-badge{background:#28a745;color:#fff;font-size:10px;font-weight:700;padding:0;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;line-height:1}@media (max-width: 768px){.additional-events-badge{font-size:9px;width:18px;height:18px}}.calendar-day.other-month .day-number{color:#adb5bd}.day-events{display:flex;flex-direction:column;gap:1px}.calendar-event-item{background:transparent;color:#495057;padding:1px 4px;border-radius:2px;font-size:9px;cursor:pointer;transition:all .2s ease;border:1px solid #e1e8ed;display:flex;align-items:center;gap:3px}.calendar-event-item:hover{background:#e3f2fd;border-color:#3498db;color:#2980b9;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}@media (max-width: 768px){.calendar-event-item{font-size:8px;padding:1px 2px;line-height:1.1}.calendar-event-item:hover{transform:none}}.calendar-event-content{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.event-time{font-weight:500;color:#6c757d;font-size:8px}.event-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px}.more-events{font-size:10px;color:#3498db;font-weight:500;text-align:center;margin-top:2px;cursor:pointer;padding:2px 4px;border-radius:3px;transition:all .2s ease}.more-events:hover{background:#e3f2fd;color:#2980b9;transform:scale(1.05)}@media (max-width: 768px){.calendar-container{padding:15px;margin:10px 0}.calendar-title h2{font-size:20px}.calendar-controls{gap:5px}.calendar-btn{padding:6px 10px;font-size:12px}.calendar-day{min-height:80px;padding:4px}.day-number{font-size:12px}.event-item{font-size:10px;padding:1px 4px}.event-title{font-size:9px}.weekday-header{padding:8px 4px;font-size:9.5px}}.week-view{border:1px solid #e1e8ed;border-radius:8px;overflow:hidden;background:#fff}@media (max-width: 1024px) and (min-width: 769px){.week-view{overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative}.week-view:after{content:"← Swipe to navigate →";position:absolute;bottom:10px;right:10px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:12px;font-size:10px;pointer-events:none;opacity:.8;z-index:1;animation:fadeInOut 4s ease-in-out}.week-header{min-width:700px}}@media (max-width: 678px){.week-view{overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative}.week-view:after{content:"← Swipe to navigate →";position:absolute;bottom:10px;right:10px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:12px;font-size:10px;pointer-events:none;opacity:.8;z-index:1;animation:fadeInOut 4s ease-in-out}@keyframes fadeInOut{0%,70%{opacity:.8}to{opacity:0}}}.week-header{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#e1e8ed}@media (max-width: 768px){.week-header{min-width:600px}}.week-day-column{background:#fff;min-height:400px;cursor:pointer;transition:background-color .2s ease;display:flex;flex-direction:column;min-width:0;overflow:hidden}@media (max-width: 768px){.week-day-column{min-width:85px;min-height:350px}}.week-day-column:hover{background:#f8f9fa}.week-day-column.today{background:#e3f2fd}.week-day-header{padding:16px 12px;text-align:center;background:#f8f9fa;border-bottom:1px solid #e1e8ed;cursor:pointer;transition:all .2s ease}@media (max-width: 768px){.week-day-header{padding:12px 8px}}.week-day-header:hover{background:#e9ecef;color:#3498db}.week-day-name{font-size:12px;font-weight:600;color:#6c757d;margin-bottom:4px;letter-spacing:.5px}@media (max-width: 768px){.week-day-name{font-size:10px;margin-bottom:2px}}.week-day-number{display:flex;justify-content:center;align-items:center;font-size:18px;font-weight:700;color:#2c3e50;gap:6px}@media (max-width: 768px){.week-day-number{font-size:16px;justify-content:center;flex-direction:row;align-items:center;gap:4px}}.week-additional-events-badge{background:#28a745;color:#fff;font-size:9px;font-weight:700;padding:0;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;line-height:1}@media (max-width: 768px){.week-additional-events-badge{font-size:8px;width:16px;height:16px}}.week-day-column.today .week-day-number{color:#3498db}.week-day-events{padding:12px 8px;display:flex;flex-direction:column;gap:6px;flex:1}@media (max-width: 768px){.week-day-events{padding:8px 4px;gap:4px}}.week-event-item{background:#f8f9fa;border:1px solid #e1e8ed;border-radius:6px;padding:8px 10px;cursor:pointer;transition:all .2s ease}@media (max-width: 768px){.week-event-item{padding:6px 8px;border-radius:4px;min-height:32px}}.week-event-item:hover{background:#cbf0ff;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}@media (max-width: 768px){.week-event-item:hover{transform:none;background:#e3f2fd}}.week-event-time{font-size:11px;font-weight:500;margin-bottom:2px;color:#6c757d}.week-event-title{font-size:11px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:#2c3e50}@media (max-width: 768px){.week-event-time{font-size:10px;margin-bottom:1px}.week-event-title{font-size:10px;line-height:1.3}}.day-view{border:1px solid #e1e8ed;border-radius:8px;overflow:hidden;background:#fff}.day-view-header{padding:20px 24px;background:#f8f9fa;border-bottom:1px solid #e1e8ed;text-align:center}.day-view-header h3{margin:0;font-size:18px;color:#2c3e50;font-weight:600}.day-view-content{padding:24px;min-height:500px}.day-events-timeline{display:flex;flex-direction:column;gap:16px;min-height:400px;max-height:400px;overflow-y:auto;padding-right:8px}.day-events-timeline::-webkit-scrollbar{width:6px}.day-events-timeline::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.day-events-timeline::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.day-events-timeline::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.day-event-timeline-item{display:flex;align-items:center;padding:16px;border:1px solid #e1e8ed;border-radius:8px;cursor:pointer;transition:all .2s ease;gap:16px}.day-event-timeline-item:hover{border-color:#3498db;background:#f8f9fa;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.event-time-marker{background:#3498db;color:#fff;padding:8px 12px;border-radius:16px;font-size:13px;font-weight:500;white-space:nowrap;flex-shrink:0}.event-details-timeline{flex:1;min-width:0}.event-title-timeline{font-size:16px;font-weight:600;color:#2c3e50;margin-bottom:4px;word-wrap:break-word}.event-location-timeline{font-size:13px;color:#6c757d}.no-events-day{text-align:center;padding:80px 20px;color:#6c757d;min-height:300px;display:flex;flex-direction:column;justify-content:center;align-items:center}.no-events-day .no-events-icon{font-size:48px;margin-bottom:16px}.no-events-day h4{margin:0 0 8px;font-size:18px;color:#495057}.no-events-day p{margin:0;font-size:14px}.day-create-event{margin-top:16px;padding-top:16px;border-top:1px solid #e1e8ed}.day-create-btn{width:100%;padding:16px 20px;background:transparent;border:2px dashed #3498db;border-radius:8px;color:#3498db;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.day-create-btn:hover{background:#e8f5e8;border-color:#218838;color:#218838;transform:translateY(-1px)}@media (max-width: 1024px){.calendar-day{height:100px}.weekday-header{padding:11px 7px;font-size:11.5px}}@media (max-width: 768px){.calendar-header{flex-direction:column;gap:12px;align-items:center}.calendar-title h2{font-size:20px;text-align:center}.calendar-controls{justify-content:center;flex-wrap:wrap;gap:6px}.calendar-btn{padding:8px 12px;font-size:13px}.weekday-header{padding:10px 6px;font-size:10.5px}.calendar-day{height:90px}}@media (max-width: 1024px) and (min-width: 769px){.weekday-header{padding:12px 8px;font-size:12px;font-weight:600;min-width:0;text-align:center}.calendar-day{min-height:85px;padding:8px;min-width:0}.day-number{font-size:14px;margin-bottom:6px}}@media (max-width: 480px){.calendar-header{flex-direction:column;gap:15px;align-items:stretch}.calendar-controls{justify-content:center}.calendar-day{height:100px;min-width:85px}.view-toggle{width:100%;justify-content:center}}.family-tabs-component{display:flex;background:#f5f5f5;border-bottom:none;width:100%}.family-tabs-component::-webkit-scrollbar{display:none}.family-tab-item{background:#e8e8e8;border:none;border-bottom:1px solid #d0d0d0;padding:10px 8px;font-size:.85rem;font-weight:500;color:#666;cursor:pointer;transition:all .2s ease;flex:1;text-align:center;position:relative;border-top-left-radius:8px;border-top-right-radius:8px;white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}.family-tab-item:hover{background:#f0f0f0;color:#333}.family-tab-item.active{background:#fff;color:#333;font-weight:600;border-bottom:none}.family-tab-item:disabled{opacity:.6;cursor:not-allowed}.family-tab-item-content{display:flex;align-items:center;gap:6px;letter-spacing:.3px}.family-tabs-switching-indicator{display:flex;justify-content:center;align-items:center;padding:8px;font-size:.85rem;color:#666;font-style:italic;background:#f5f5f5;border-bottom:1px solid #d0d0d0}@media (max-width: 468px){.family-tab-item{padding:8px 1px;font-size:.75rem}}.family-manager{width:100%}.family-manager-loading{display:flex;justify-content:center;align-items:center;padding:40px 20px;background:#f8f9fa;border-radius:8px;margin:20px 0}.loading-spinner{color:#666;font-style:italic;font-size:.9rem}.family-manager-tabs-wrapper{margin-bottom:1rem}.family-content{width:100%}.family-debug{margin-top:.5rem;padding:.5rem;background:#f0f0f0;border-radius:4px;text-align:center;border:1px solid #ddd}.family-debug small{color:#666;font-family:monospace}.profile-container{min-height:100vh;background-color:#f5f6fa}.profile-header{position:relative;margin-bottom:20px}.banner{height:250px;overflow:hidden}.banner-image{width:100%;height:100%;object-fit:cover}.profile-info{display:flex;align-items:flex-end;padding:0 20px;margin-top:-50px;position:relative;z-index:2;gap:20px;min-height:200px}.profile-picture{width:250px;height:250px;margin-right:20px}.user-details{flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:20px}.user-details h1{color:#2c3e50;font-size:2rem;margin:0 0 10px;font-weight:700}.role-tags{display:flex;gap:10px;margin-bottom:8px}.role-tag{background:#3498db;color:#fff;padding:4px 12px;border-radius:20px;font-size:14px;font-weight:500}.privacy-tag{background:#95a5a6;color:#fff;padding:4px 12px;border-radius:20px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:4px}.user-title{color:#7f8c8d;font-size:1.1rem;margin:0}.action-buttons{display:flex;gap:10px;align-items:flex-end;margin-left:auto;padding-bottom:20px}.message-btn,.edit-btn,.logout-btn{padding:8px;border:none;border-radius:50%;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;width:40px;height:40px;transition:all .3s ease;background:#d5dbdb;color:#2c3e50}.logout-btn .icon,.message-btn .icon,.edit-btn .icon{font-size:1.4rem}.message-btn:hover,.edit-btn:hover,.logout-btn:hover{transform:translateY(-2px);background:#bdc3c7;color:#2c3e50}.message-btn,.edit-btn,.logout-btn{position:relative}.message-btn[title]:hover:after,.edit-btn[title]:hover:after,.logout-btn[title]:hover:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;z-index:1000;margin-bottom:5px;animation:tooltipFadeIn .1s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%) translateY(5px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.main-content{display:grid;grid-template-columns:300px 1fr;gap:20px;padding:0 20px;max-width:1200px;margin:0 auto}.sidebar{display:flex;flex-direction:column;gap:20px}.info-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a}.info-card h3{color:#2c3e50;font-size:1.2rem;font-weight:700;margin:0 0 15px;display:flex;align-items:center;gap:8px}.info-item{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:#2c3e50;font-weight:500}.info-item span{font-weight:500}.interests{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.interest-tag{background:#3498db;color:#fff;padding:6px 12px;border-radius:15px;font-size:12px;font-weight:600}.event-item{display:flex;align-items:center;gap:10px;margin-bottom:15px}.upcoming-event-title{font-size:14px;font-weight:600;color:#2c3e50;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;line-height:1.3}.event-date{display:flex;align-items:start;font-size:14px;color:#7f8c8d}.content-area{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px #0000001a}.nav-tabs{display:flex;border-bottom:1px solid #ecf0f1}.tab{flex:1;padding:15px 20px;border:none;background:none;font-size:16px;font-weight:500;color:#7f8c8d;cursor:pointer;transition:all .3s ease}.tab.active{color:#2c3e50;border-bottom:3px solid #3498db}.tab:hover{background:#f8f9fa}.posts-feed{padding:0;background:transparent}.post-card{border-bottom:1px solid #ecf0f1;padding-bottom:20px;margin-bottom:20px}.post-card:last-child{border-bottom:none;margin-bottom:0}.post-header{display:flex;align-items:center;margin-bottom:15px}.post-avatar{width:40px;height:40px;border-radius:50%;margin-right:12px}.post-info{flex:1}.post-author{font-weight:600;color:#2c3e50}.post-time{font-size:14px;color:#7f8c8d}.post-privacy{background:#ecf0f1;color:#7f8c8d;padding:4px 8px;border-radius:12px;font-size:12px}.post-content{color:#2c3e50;font-size:16px;line-height:1.5;margin-bottom:15px}.post-actions{display:flex;gap:20px}.action-btn{background:none;border:none;color:#7f8c8d;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:14px;transition:color .3s ease}.action-btn:hover{color:#2c3e50}@media (max-width: 768px){.info-card{text-align:center}.info-card h3,.info-item,.interests,.event-item{justify-content:center}}.events-placeholder{text-align:center;padding:60px 20px;color:#7f8c8d}.placeholder-icon{font-size:4rem;margin-bottom:20px;opacity:.5}.events-placeholder h3{color:#2c3e50;font-size:1.5rem;margin:0 0 10px;font-weight:600}.events-placeholder p{font-size:1rem;margin:0;opacity:.8}@media (max-width: 900px){.profile-info{flex-wrap:wrap;gap:15px}.action-buttons{flex-wrap:wrap;gap:8px}.message-btn,.edit-btn,.logout-btn{padding:8px 16px;font-size:14px}}@media (max-width: 768px){.main-content{grid-template-columns:1fr;padding:0 10px}.profile-info{flex-direction:row;margin-top:-30px;gap:15px}.user-details{flex:1;min-width:200px;padding:10px}.action-buttons{flex-direction:row;width:auto;gap:6px;margin-left:auto;flex-shrink:0}.message-btn,.edit-btn,.logout-btn{padding:6px 10px;font-size:12px;white-space:nowrap}.user-details h1{font-size:1.8rem;margin-bottom:5px}.user-title{font-size:1rem}}@media (max-width: 600px){.profile-info{flex-direction:column;align-items:center;text-align:center;justify-content:center}.action-buttons{flex-direction:row;width:100%;justify-content:center;gap:8px;margin-left:0;margin-top:15px;align-items:center}.profile-picture{width:200px;height:200px;margin:0 auto}.profile-picture .avatar-xxl{width:200px;height:200px}.message-btn,.edit-btn,.logout-btn{flex:1;justify-content:center;padding:8px;font-size:12px;width:40px;height:40px;border-radius:50%;min-width:40px;max-width:40px}.user-details{width:100%;text-align:center;display:flex;flex-direction:column;align-items:center}.user-details h1{font-size:1.8rem;text-align:center}}.pulse-animation{animation:pulse 2s infinite;position:relative}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #4a90e2b3}70%{transform:scale(1.05);box-shadow:0 0 0 10px #4a90e200}to{transform:scale(1);box-shadow:0 0 #4a90e200}}.arrow-hint{position:absolute;top:-60px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:8px 12px;border-radius:8px;font-size:14px;white-space:nowrap;animation:bounce 1s infinite;z-index:1000}.arrow-hint:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#000c}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}.arrow{font-size:16px;margin-right:5px}.hint-text{font-weight:500}.no-interests{color:#999;font-style:italic;font-size:14px}.family-list-container{width:100%}.section-title{font-weight:500;color:#333;margin-bottom:10px;font-size:1rem}.families-list{display:flex;flex-direction:column;margin-top:10px}.family-item{margin-bottom:10px}.family-input-container{position:relative;width:100%}.family-item .family-input{width:100%;padding:12px 50px 12px 12px;background-color:#f8f9fa;border:1px solid #e9ecef;color:#495057;border-radius:4px;font-size:16px;box-sizing:border-box}.family-item .family-input.active{font-weight:500}.family-item .family-input.marked-for-removal{background-color:#ffeaea;border-color:#dc3545;color:#721c24;opacity:.7}.family-item .family-input.marked-for-removal:focus{outline:none;border-color:#dc3545;box-shadow:0 0 0 2px #dc354540}.family-item .family-input.marked-for-addition{background-color:#e8f5e8;border-color:#28a745;color:#155724;opacity:.8}.family-item .family-input.marked-for-addition:focus{outline:none;border-color:#28a745;box-shadow:0 0 0 2px #28a74540}.active-indicator{position:absolute;right:40px;top:50%;transform:translateY(-50%);color:#28a745;font-size:.75rem;font-style:italic;font-weight:400}.removal-indicator{position:absolute;right:40px;top:50%;transform:translateY(-50%);color:#dc3545;font-size:.75rem;font-style:italic;font-weight:400}.addition-indicator{position:absolute;right:40px;top:50%;transform:translateY(-50%);color:#28a745;font-size:.75rem;font-style:italic;font-weight:400}.remove-family-btn{position:absolute;right:8px;top:12px;color:red;border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;font-weight:700;transition:all .2s ease;z-index:10}.remove-family-btn:hover{color:#fff;background-color:#ff6f6f}.join-another-family-option{border:2px dashed #dbdbdb;border-radius:5px;padding:15px;margin-top:10px;text-align:center}.join-another-family-option p{margin-bottom:10px;color:#666;font-size:.9rem}.join-another-family-btn{background-color:#28a745;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.join-another-family-btn:hover{background-color:#218838}.family-search-input-container{width:100%}.family-search-input-container label{display:block;margin-bottom:8px;color:#2c3e50;font-weight:500;font-size:14px}.family-input{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-size:16px;box-sizing:border-box}.family-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.search-spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:18px}.family-suggestions{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 2px 4px #0000001a}.suggestion-item{padding:12px;cursor:pointer;border-bottom:1px solid #eee;transition:background-color .2s}.suggestion-item:hover{background-color:#f8f9fa}.suggestion-item:last-child{border-bottom:none}.suggestion-name{font-weight:500;color:#333;margin-bottom:4px}.suggestion-description{font-size:.9rem;color:#666;margin-bottom:4px}.suggestion-meta{font-size:.8rem;color:#999}.no-results{padding:20px;text-align:center;color:#666}.no-results p{margin-bottom:15px}.create-family-btn{background-color:#28a745;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.cancel-add-family-option{margin-top:15px;text-align:center}.cancel-add-family-btn{background-color:#6c757d;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.cancel-add-family-btn:hover{background-color:#5a6268}.error-message{background-color:#f8d7da;color:#721c24;padding:8px 12px;border-radius:4px;margin-top:10px;font-size:.9rem}.access-code-actions{display:flex;gap:10px;margin-top:15px;justify-content:flex-start}.join-family-btn{background-color:#007bff;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s;min-width:120px}.join-family-btn:hover:not(:disabled){background-color:#0056b3;transform:translateY(-1px)}.join-family-btn:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.join-family-btn.validating{background-color:#ffc107;color:#000}.cancel-join-btn{background-color:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s;min-width:120px}.cancel-join-btn:hover{background-color:#5a6268;transform:translateY(-1px)}.create-family-section{background:#f8f9fa;padding:20px;border-radius:8px;margin-top:20px}.create-family-section h3{margin:0 0 20px;color:#333;font-size:1.2rem}.create-family-form{background:#fff;padding:20px;border-radius:6px;box-shadow:0 2px 4px #0000001a}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:#333}.form-group input,.form-group textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:16px;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.form-group textarea{resize:vertical;min-height:80px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.cancel-btn{background-color:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:16px;transition:background-color .2s}.cancel-btn:hover{background-color:#5a6268}.create-btn{background-color:#28a745;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:16px;transition:background-color .2s}.create-btn:hover:not(:disabled){background-color:#218838}.create-btn:disabled{background-color:#6c757d;cursor:not-allowed}.error-message{background-color:#f8d7da;color:#721c24;padding:10px;border-radius:4px;margin-top:15px;font-size:.9rem}.family-search-container{width:100%;max-width:600px;margin:0 auto}.current-family-section,.no-family-section{width:100%}.no-family-message{text-align:center;padding:40px 20px;background:#f8f9fa;border-radius:8px}.no-family-message p{margin-bottom:20px;color:#666;font-size:1.1rem}.create-family-btn{background-color:#28a745;color:#fff;border:none;padding:12px 24px;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.create-family-btn:hover{background-color:#218838}.error-message{background-color:#f8d7da;color:#721c24;padding:12px;border-radius:6px;margin-top:15px;font-size:.9rem;border:1px solid #f5c6cb}.success-message{background-color:#d4edda;color:#155724;padding:12px;border-radius:6px;margin-top:15px;font-size:.9rem;border:1px solid #c3e6cb}.access-code-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.access-code-modal{background:#fff;border-radius:15px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.access-code-modal-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:25px;border-radius:15px 15px 0 0;position:relative;text-align:center}.access-code-icon{font-size:40px;margin-bottom:10px}.access-code-modal-header h2{margin:0;font-size:24px;font-weight:600}.access-code-close-btn{position:absolute;top:15px;right:20px;background:none;border:none;color:#fff;font-size:28px;cursor:pointer;padding:5px;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.access-code-close-btn:hover{background-color:#fff3}.access-code-modal-content{padding:30px}.access-code-info{text-align:center}.access-code-intro{font-size:16px;color:#333;margin-bottom:25px;line-height:1.6}.access-code-display{margin-bottom:30px}.access-code-display label{display:block;font-size:14px;color:#666;margin-bottom:10px;font-weight:500}.access-code-box{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;padding:20px;display:flex;align-items:center;justify-content:center;gap:15px}.access-code-text{font-family:Courier New,monospace;font-size:24px;font-weight:700;color:#2c3e50;letter-spacing:2px}.copy-btn{background:#28a745;color:#fff;border:none;border-radius:6px;padding:8px 12px;cursor:pointer;font-size:16px;transition:background-color .2s}.copy-btn:hover{background:#218838}.access-code-instructions{background:#e3f2fd;border-left:4px solid #2196f3;padding:20px;margin:25px 0;border-radius:4px;text-align:left}.access-code-instructions h3{margin:0 0 15px;color:#1976d2;font-size:16px}.access-code-instructions ol{margin:0;padding-left:20px;color:#1976d2}.access-code-instructions li{margin-bottom:8px;font-size:14px}.access-code-note{background:#e8f5e8;border:1px solid #4caf50;border-radius:8px;padding:15px;margin-top:20px}.access-code-note p{margin:0;color:#2e7d32;font-size:14px}.access-code-modal-footer{padding:20px 30px 30px;text-align:center}.access-code-understood-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;padding:12px 30px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.access-code-understood-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}@media (max-width: 600px){.access-code-modal{margin:10px;max-width:none}.access-code-modal-header,.access-code-modal-content,.access-code-modal-footer{padding:20px}.access-code-text{font-size:20px}}.flag-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:16px;border-radius:2px;overflow:hidden;box-shadow:0 1px 3px #0003}.flag-svg{width:100%;height:100%}.phone-input-container .flag-icon{width:20px;height:14px;margin-right:4px}.country-dropdown .flag-icon{width:22px;height:15px;margin-right:8px}@media (max-width: 768px){.phone-input-container .flag-icon{width:18px;height:12px}.country-dropdown .flag-icon{width:20px;height:13px}}.phone-input-container{position:relative;width:100%}.phone-input-wrapper{display:flex;align-items:center;background:#fff;border:2px solid #e1e8ed;border-radius:8px;overflow:hidden;transition:border-color .3s ease}.phone-input-wrapper:focus-within{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.country-selector{display:flex;align-items:center;gap:6px;padding:10px 4px;background:#f8f9fa;border:none;cursor:pointer;transition:background-color .2s ease;min-width:45px;font-size:14px}.country-selector:hover{background:#e9ecef}.country-code{font-weight:500;color:#2c3e50;font-size:12px}.dropdown-arrow{color:#6c757d;font-size:10px;margin-left:4px}.phone-input{flex:1;border:none;padding:12px 16px;font-size:16px;outline:none;background:transparent}.phone-input::placeholder{color:#6c757d;font-size:14px}.country-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #e1e8ed;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;max-height:200px;overflow-y:auto;margin-top:2px}.country-option{width:100%;display:flex;align-items:center;gap:8px;padding:12px 16px;background:none;border:none;cursor:pointer;transition:background-color .2s ease;text-align:left;font-size:14px}.country-option:hover{background:#f8f9fa}.country-option.selected{background:#e3f2fd;color:#1976d2}.country-option .country-name{flex:1;font-weight:500}.country-option .country-code{color:#6c757d;font-size:12px;font-weight:500}.phone-input-wrapper.phone-valid{border-color:#27ae60!important;box-shadow:0 0 0 2px #27ae6033!important}@media (max-width: 768px){.country-selector{padding:10px 8px;min-width:70px;font-size:13px}.phone-input{padding:10px 12px;font-size:14px}.country-option{padding:10px 12px;font-size:13px}}.form-group-profile input{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:16px;transition:border-color .2s ease}.form-group-profile input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.form-row-top{display:grid;grid-template-columns:1fr;gap:20px}.field-error-message{color:#dc3545;font-size:.875rem;margin-top:5px}.name-count,.custom-text-count,.location-count{font-size:.75rem;color:#666;text-align:right;margin-top:5px}.name-count-limit,.custom-text-count-limit,.location-count-limit{color:#dc3545;font-weight:700}@media (min-width: 768px){.form-row-top{grid-template-columns:1fr 1fr;gap:20px}}@media (max-width: 767px){.form-row,.form-row-top{grid-template-columns:1fr;gap:15px}}.interests-list{display:flex;flex-wrap:wrap;gap:8px;min-height:40px;padding:10px;border:1px solid #e9ecef;border-radius:6px;background-color:#f8f9fa}.interest-tag{display:inline-flex;align-items:center;gap:5px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 12px;border-radius:20px;font-size:.875rem;font-weight:500}.remove-interest{background:none;border:none;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:0;margin-left:5px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s ease}.add-interest{display:flex;gap:10px;align-items:center}.add-interest input{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:16px;transition:border-color .2s ease}.add-interest input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.add-interest button{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.add-interest button:hover{background:linear-gradient(135deg,#218838,#1ea085);transform:translateY(-1px)}.add-interest button:active{transform:translateY(0)}@media (max-width: 768px){.add-interest{flex-direction:column;align-items:stretch}.add-interest button{width:100%}}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.photo-editor-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.photo-editor-modal{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow:hidden;box-shadow:0 20px 40px #0000004d}.photo-editor-header{padding:20px;border-bottom:1px solid #e1e8ed;text-align:center}.photo-editor-header h3{margin:0 0 8px;color:#2c3e50;font-size:1.5rem}.photo-editor-header p{margin:0;color:#7f8c8d;font-size:.9rem}.photo-editor-content{padding:20px;display:flex;flex-direction:column;align-items:center;gap:20px}.crop-container{display:flex;justify-content:center;align-items:center;min-height:300px;background:#f8f9fa;border-radius:8px;padding:20px}.editor-controls{display:flex;gap:30px;flex-wrap:wrap;justify-content:center}.control-group{display:flex;align-items:center;gap:10px}.control-group label{font-weight:600;color:#2c3e50;min-width:60px}.slider{width:120px;height:6px;border-radius:3px;background:#ddd;outline:none;-webkit-appearance:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#3498db;cursor:pointer;box-shadow:0 2px 4px #0003}.slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#3498db;cursor:pointer;border:none;box-shadow:0 2px 4px #0003}.control-group span{font-weight:600;color:#3498db;min-width:40px;text-align:center}.photo-editor-footer{padding:20px;border-top:1px solid #e1e8ed;display:flex;justify-content:space-between;gap:15px}.photo-editor .cancel-btn,.photo-editor .save-btn{padding:12px 24px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:1rem}.photo-editor .cancel-btn{background:#95a5a6;color:#fff}.photo-editor .cancel-btn:hover{background:#7f8c8d;transform:translateY(-2px)}.photo-editor .save-btn{background:#27ae60;color:#fff}.photo-editor .save-btn:hover:not(:disabled){background:#229954;transform:translateY(-2px)}.photo-editor .save-btn:disabled{background:#bdc3c7;cursor:not-allowed;transform:none}.ReactCrop{max-width:100%;max-height:100%}.ReactCrop__crop-selection{border:2px solid #3498db;box-shadow:0 0 0 1px #3498db4d}.ReactCrop__drag-handle{background:#3498db;border:2px solid white;box-shadow:0 2px 4px #0003}.ReactCrop__drag-handle:hover{background:#2980b9}@media (max-width: 768px){.photo-editor-overlay{padding:10px}.photo-editor-modal{max-height:95vh}.editor-controls{flex-direction:column;gap:15px}.control-group{justify-content:center}.photo-editor-footer{flex-direction:column}.photo-editor .cancel-btn,.photo-editor .save-btn{width:100%}}.profile-picture-upload-container{width:100%;max-width:400px;margin:0 auto}.current-picture{margin-bottom:20px}.current-picture h4{color:#333;margin-bottom:10px;font-size:1rem;text-align:center;font-style:italic}.picture-preview{display:flex;justify-content:center;margin-bottom:15px}.current-image{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid #e9ecef;box-shadow:0 2px 8px #0000001a}.success-message{background-color:#efe;border:1px solid #cfc;color:#fff!important}@media (max-width: 768px){.profile-picture-upload-container{max-width:100%}.upload-area{padding:20px 15px}.upload-icon{font-size:36px}.current-image{width:100px;height:100px}.message{font-size:.85rem;padding:10px 12px}}.banner-photo-upload-container{width:100%;max-width:600px;margin:0 auto}.current-banner{margin-bottom:20px}.current-banner h4{color:#333;margin-bottom:10px;font-size:1rem}.banner-preview{display:flex;justify-content:center;margin-bottom:15px}.current-banner-image{width:100%;max-width:400px;height:150px;object-fit:cover;border-radius:12px;border:3px solid #e9ecef;box-shadow:0 2px 8px #0000001a}.upload-area{border:2px dashed #dee2e6;border-radius:12px;padding:30px 20px;text-align:center;background:#f8f9fa;transition:all .3s ease;cursor:pointer;position:relative}.upload-area:hover{border-color:#007bff;background:#f0f8ff}.upload-area.drag-over{border-color:#007bff;background:#e3f2fd;transform:scale(1.02)}.upload-area.uploading{border-color:#28a745;background:#f0fff4}.upload-content{display:flex;flex-direction:column;align-items:center;gap:12px}.upload-icon{font-size:48px;margin-bottom:10px}.upload-content h3{color:#333;margin:0;font-size:1.2rem}.upload-content p{color:#666;margin:0;font-size:.9rem;line-height:1.4}.file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.select-btn{background:#007bff;color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .3s ease;margin-top:10px}.select-btn:hover{background:#0056b3}.upload-status{display:flex;flex-direction:column;align-items:center;gap:15px}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-status p{color:#007bff;font-weight:500;margin:0}.upload-info{margin-top:15px;text-align:center}.upload-info p{color:#6c757d;font-size:.8rem;margin:5px 0}.message{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;margin-top:15px;font-size:.9rem;font-weight:500}.error-message{background-color:#fee;border:1px solid #fcc;color:#c33}.success-message{background-color:#efe;border:1px solid #cfc;color:#3c3}.message-icon{font-size:1.1rem;flex-shrink:0}@media (max-width: 768px){.banner-photo-upload-container{max-width:100%}.upload-area{padding:20px 15px}.upload-icon{font-size:36px}.current-banner-image{height:120px}.message{font-size:.85rem;padding:10px 12px}}.form-section{margin-bottom:30px}.form-section h3{display:flex;align-items:center;gap:10px;color:#333;margin-bottom:20px;font-size:1.2rem;font-weight:600}.form-section h3 .icon{font-size:1.5rem}.form-group-profile label{display:block;margin-bottom:8px;font-weight:500;color:#555}.form-group-profile select{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:16px;background-color:#fff;transition:border-color .2s ease}.form-group-profile select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.form-group-profile select:disabled{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed}.family-role-hint{margin-top:5px;font-size:12px;color:#666;font-style:italic}.family-role-success{margin-top:5px;font-size:12px;color:#28a745;font-style:italic}.edit-profile-container{min-height:100vh;background-color:#f5f6fa;padding:20px;display:flex;justify-content:center}.edit-profile-icon{font-size:2.5rem;padding-bottom:10px}.edit-profile-card{background:#fff;border-radius:16px;box-shadow:0 10px 30px #0000001a;padding:40px;width:100%;max-width:800px}.edit-header{text-align:center;margin-bottom:40px;border-bottom:2px solid #ecf0f1;padding-bottom:20px}.edit-header h1{color:#2c3e50;font-size:2.5rem;margin:0 0 10px;font-weight:700}.edit-header p{color:#7f8c8d;font-size:1.1rem;margin:0 0 20px}.error-message{background-color:#fee;color:#c33;padding:12px 16px;border-radius:8px;border:1px solid #fcc;margin-bottom:20px;font-size:14px}.photos-preview{margin-top:20px}.photos-preview h4{margin:0 0 15px;color:#333;font-size:1.1rem}.edit-form{display:flex;flex-direction:column;gap:30px}.form-section{background:#f8f9fa;border-radius:12px;padding:25px;border:1px solid #e9ecef}.family-row{display:flex;gap:20px;align-items:flex-start}.family-info-half,.family-role-half{flex:1}.family-role-half .form-group-profile{margin-bottom:0}.form-section h3{color:#2c3e50;font-size:1.3rem;margin:0 0 20px;display:flex;align-items:center;gap:10px;font-weight:600}.form-group-profile{margin-bottom:20px}.form-group-profile label{display:block;margin-bottom:8px;color:#2c3e50;font-weight:500;font-size:14px}.form-group-profile input,.form-group-profile select{width:100%;padding:12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box;background:#fff}.form-group-profile .phone-input-container input{border:none!important}.form-group-profile input:focus,.form-group-profile select:focus{outline:none;border-color:#3498db}.phone-valid{border-color:#27ae60!important;box-shadow:0 0 0 2px #27ae6033!important}.field-error-message{color:#e74c3c;font-size:12px;margin-top:4px;display:flex;align-items:center;gap:4px}.custom-text-count{display:inline!important;color:#6c757d;background-color:#f8f9fa;font-size:11px;margin-top:2px;text-align:left}.custom-text-count-limit{color:#e74c3c;background-color:#ffeaea}.name-count{display:inline!important;color:#6c757d;background-color:#f8f9fa;font-size:11px;margin-top:2px;text-align:left}.name-count-limit{color:#e74c3c;background-color:#ffeaea}.location-count{display:inline!important;color:#6c757d;background-color:#f8f9fa;font-size:11px;margin-top:2px;text-align:left}.location-count-limit{color:#e74c3c;background-color:#ffeaea}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.interests-container{display:flex;flex-direction:column;gap:15px}.interests-list{display:flex;flex-wrap:wrap;gap:10px;min-height:40px;padding:10px;background:#fff;border-radius:8px;border:2px solid #e1e8ed}.interest-tag{background:#3498db;color:#fff;padding:6px 12px;border-radius:20px;font-size:14px;display:flex;align-items:center;gap:8px}.remove-interest{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .3s ease}.remove-interest:hover{background-color:#fff3}.add-interest{display:flex;gap:10px}.add-interest input{flex:1;padding:10px 12px;border:2px solid #e1e8ed;border-radius:8px;font-size:14px}.add-interest button{background:#27ae60;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.add-interest button:hover{background:#229954}.edit-profile-form-actions{position:sticky;bottom:0;background:#f8f9fae6;display:flex;gap:20px;justify-content:center;padding:30px;border-left:1px solid #dfdfdf;border-right:1px solid #dfdfdf;border-bottom:1px solid #dfdfdf;border-radius:0 0 16px 16px;z-index:100;box-shadow:inset 0 1px 1px #0000001a}.edit-profile-cancel-btn,.edit-profile-save-btn{padding:15px 30px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;min-width:50px}.edit-profile-cancel-btn{background:#95a5a6;color:#fff}.edit-profile-cancel-btn:hover{background:#7f8c8d;transform:translateY(-2px)}.edit-profile-save-btn{background:#2ecc71;color:#fff}.edit-profile-save-btn:hover{background:#27ae60;transform:translateY(-2px)}@media (max-width: 768px){.family-row{flex-direction:column;gap:15px}.edit-profile-card{padding:20px}.edit-header h1{font-size:2rem}.form-row{grid-template-columns:1fr}.edit-profile-cancel-btn,.edit-profile-save-btn{width:100%}}@media (max-width: 480px){.edit-profile-card,.form-section{padding:15px}.add-interest{flex-direction:column}.add-interest button{width:100%}.edit-profile-form-actions button{font-size:14px;padding:15px 10px}}.legal-page{min-height:100vh;background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;padding:2rem 1rem}.legal-container{max-width:800px;margin:0 auto;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:3rem}.legal-container h1{color:#f29715;font-size:2.5rem;font-weight:700;text-align:center;margin-bottom:.5rem}.last-updated{text-align:center;color:#fffc;font-size:.9rem;margin-bottom:3rem}.legal-container section{margin-bottom:2.5rem}.legal-container h2{color:#f29715;font-size:1.5rem;font-weight:600;margin-bottom:1rem}.legal-container p{color:#ffffffe6;line-height:1.6;margin-bottom:1rem}.legal-container ul{color:#ffffffe6;line-height:1.6;margin-left:1.5rem;margin-bottom:1rem}.legal-container li{margin-bottom:.5rem}@media (max-width: 768px){.legal-page{padding:1rem .5rem}.legal-container{padding:2rem 1.5rem}.legal-container h1{font-size:2rem}.legal-container h2{font-size:1.3rem}}.help-center-page{min-height:100vh;background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;padding:2rem 1rem}.help-center-container{max-width:600px;margin:0 auto;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:3rem}.help-center-container h1{color:#f29715;font-size:2.5rem;font-weight:700;text-align:center;margin-bottom:1rem}.help-center-subtitle{text-align:center;color:#fffc;font-size:1.1rem;margin-bottom:3rem;line-height:1.6}.help-center-form{margin-bottom:3rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;color:#f29715;font-weight:600;margin-bottom:.5rem;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid rgba(255,255,255,.3);border-radius:8px;background:#ffffff1a;color:#fff;font-size:1rem;transition:all .3s ease;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#f29715;background:#ffffff26}.form-group input::placeholder,.form-group textarea::placeholder{color:#fff9}.form-group textarea{resize:vertical;min-height:120px}.character-count{text-align:right;font-size:.8rem;color:#fff9;margin-top:.25rem}.help-center-button{width:100%;padding:1rem;background:#f29715;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.help-center-button:hover:not(:disabled){background:#e67e22;transform:translateY(-2px)}.help-center-button:disabled{background:#f2971580;cursor:not-allowed;transform:none}.help-center-info{background:#ffffff0d;border-radius:12px;padding:1.5rem;border:1px solid rgba(255,255,255,.1)}.help-center-info h3{color:#f29715;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.help-center-info ul{list-style:none;padding:0}.help-center-info li{color:#fffc;margin-bottom:.5rem;padding-left:1rem;position:relative}.help-center-info li:before{content:"•";color:#f29715;position:absolute;left:0}.success-message{text-align:center;padding:2rem}.success-message h1{color:#f29715;font-size:2rem;margin-bottom:1rem}.success-message p{color:#fffc;font-size:1.1rem;margin-bottom:2rem}@media (max-width: 768px){.help-center-page{padding:1rem .5rem}.help-center-container{padding:2rem 1.5rem}.help-center-container h1{font-size:2rem}.help-center-subtitle{font-size:1rem}}.forgot-password-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.forgot-password-card{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;padding:40px;width:100%;max-width:450px}.forgot-password-header{text-align:center;margin-bottom:30px}.forgot-password-header h1{color:#2c3e50;font-size:2.2rem;margin:0 0 10px;font-weight:700}.forgot-password-header p{color:#7f8c8d;font-size:1.1rem;margin:0;line-height:1.5}.forgot-password-form{margin-bottom:20px}.form-group input{width:100%;padding:12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea}.form-group input:disabled{background-color:#f8f9fa;cursor:not-allowed}.forgot-password-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.forgot-password-help{text-align:center;padding-top:20px;border-top:1px solid #e1e8ed}.forgot-password-help p{color:#7f8c8d;font-size:14px;margin:0}.forgot-password-help a{color:#667eea;text-decoration:none;font-weight:500}.forgot-password-help a:hover{text-decoration:underline}.forgot-password-content{text-align:center}.email-sent-icon{font-size:4rem;margin-bottom:20px}.forgot-password-content p{color:#666;font-size:16px;line-height:1.6;margin-bottom:25px}.forgot-password-info{background:#f8f9fa;border-radius:8px;padding:20px;margin:25px 0;text-align:left}.forgot-password-info p{color:#2c3e50;font-weight:600;margin:0 0 10px}.forgot-password-info ul{color:#666;margin:0;padding-left:20px}.forgot-password-info li{margin-bottom:5px;line-height:1.4}@media (max-width: 480px){.forgot-password-container{padding:10px}.forgot-password-card{padding:30px 20px}.forgot-password-header h1{font-size:1.8rem}.forgot-password-header p{font-size:1rem}.email-sent-icon{font-size:3rem}}.reset-password-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.reset-password-card{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;padding:40px;width:100%;max-width:450px}.reset-password-header{text-align:center;margin-bottom:30px}.reset-password-header h1{color:#2c3e50;font-size:2.2rem;margin:0 0 10px;font-weight:700}.reset-password-header p{color:#7f8c8d;font-size:1.1rem;margin:0;line-height:1.5}.reset-password-form{margin-bottom:20px}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:8px;color:#2c3e50;font-weight:500;font-size:14px}.password-input-container{display:flex;align-items:center}.password-input{width:100%;padding:12px 50px 12px 16px;border:2px solid #e1e8ed;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box;cursor:text;caret-color:#333;color:#333!important}.password-input:focus{outline:none;border-color:#667eea}.password-input:disabled{background-color:#f8f9fa;cursor:not-allowed}.password-toggle-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:4px;border-radius:4px;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:-40px}.password-toggle-btn:hover:not(:disabled){background-color:#f8f9fa}.password-toggle-btn:disabled{opacity:.6;cursor:not-allowed}.password-requirements{background:#f8f9fa;border-radius:8px;padding:15px;margin:20px 0}.password-requirements p{color:#2c3e50;font-weight:600;margin:0 0 10px;font-size:14px}.password-requirements ul{margin:0;padding-left:20px;list-style:none}.password-requirements li{margin-bottom:5px;font-size:14px;position:relative}.password-requirements li:before{content:"❌";position:absolute;left:-20px}.password-requirements li.valid:before{content:"✅"}.password-requirements li.valid{color:#27ae60}.password-requirements li.invalid{color:#e74c3c}.reset-password-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.reset-password-btn{background:#e74c3c;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.reset-password-btn:hover:not(:disabled){background:#c0392b}.reset-password-btn:disabled{background:#bdc3c7;cursor:not-allowed}.back-to-login-btn{background:transparent;color:#667eea;border:2px solid #667eea;padding:10px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.back-to-login-btn:hover:not(:disabled){background:#667eea;color:#fff}.back-to-login-btn:disabled{opacity:.6;cursor:not-allowed}.login-btn{background:#27ae60;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.login-btn:hover{background:#229954}.reset-password-content{text-align:center}.success-icon{font-size:4rem;margin-bottom:20px}.reset-password-content p{color:#666;font-size:16px;line-height:1.6;margin-bottom:25px}@media (max-width: 480px){.reset-password-container{padding:10px}.reset-password-card{padding:30px 20px}.reset-password-header h1{font-size:1.8rem}.reset-password-header p{font-size:1rem}.success-icon{font-size:3rem}}.App{min-height:100vh}*{box-sizing:border-box}body{margin:0;padding:0;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}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}body{touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.touchable{position:relative;transition:all .1s ease;cursor:pointer}.touchable:active{transform:scale(.95);opacity:.8}
