.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-box{background:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.login-box h1{text-align:center;margin-bottom:.5rem;color:#333;font-size:2rem}.subtitle{text-align:center;color:#666;margin-bottom:2rem;font-size:.9rem}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.login-button{width:100%;padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .3s}.login-button:hover:not(:disabled){opacity:.9}.login-button:disabled{opacity:.6;cursor:not-allowed}.switch-mode{margin-top:1rem;text-align:center}.link-button{background:none;border:none;color:#667eea;cursor:pointer;font-size:.9rem;text-decoration:underline;padding:0}.link-button:hover{color:#764ba2}.theme-toggle{background:#fff3;border:2px solid rgba(255,255,255,.3);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.theme-toggle:hover{background:#ffffff4d;transform:scale(1.1)}:root.dark-mode{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--text-primary: #ffffff;--text-secondary: #b0b0b0;--border-color: #404040}.dark-mode body{background-color:var(--bg-primary);color:var(--text-primary)}.dark-mode .header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.dark-mode .gallery-container,.dark-mode .calendar-container,.dark-mode .health-container,.dark-mode .blog-container,.dark-mode .gallery-content,.dark-mode .health-content,.dark-mode .blog-content{background-color:var(--bg-primary)}.dark-mode .album-filter-section,.dark-mode .health-data,.dark-mode .posts-grid>*{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .post-card,.dark-mode .health-card{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .post-title,.dark-mode h2,.dark-mode h3{color:var(--text-primary)}.dark-mode .card-content,.dark-mode .post-excerpt{color:var(--text-secondary)}.header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 0;box-shadow:0 2px 10px #0000001a}.header-content{max-width:1400px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.header-title{font-size:1.5rem;font-weight:600}.header-actions{display:flex;align-items:center;gap:1rem;width:100%;justify-content:space-between}.header-nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;justify-content:center;align-items:center;column-gap:.5rem;width:100%}.header-nav a{color:#fff;text-decoration:none;padding:.5rem .75rem;border-radius:6px;transition:background .3s;font-size:.9rem;display:flex;align-items:center;gap:.25rem;justify-self:stretch;justify-content:center}.header-nav a:hover{background:#fff3}.header-nav a.active{background:#ffffff4d;font-weight:600}.nav-icon{font-size:1rem}.upload-button{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .3s}.upload-button:hover{background:#ffffff4d}.user-info{display:flex;align-items:center;gap:.75rem}.username-button{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem .75rem;border-radius:6px;cursor:pointer;font-size:.9rem}.user-dropdown{position:relative}.user-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;color:#333;border-radius:8px;box-shadow:0 6px 18px #00000026;min-width:140px;overflow:hidden}.user-menu-item{display:block;width:100%;text-align:left;padding:10px 12px;border:none;background:transparent;color:#333;cursor:pointer;text-decoration:none;font-size:.9rem}.user-menu-item:hover{background:#f5f7fa}@media (max-width: 768px){.header-content{flex-direction:column;gap:1rem;padding:1rem}.header-title{font-size:1.25rem}.header-actions{width:100%;justify-content:space-between}}.home-container{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding-bottom:3rem}.hero-carousel{position:relative;max-width:1400px;margin:2rem auto;padding:0 1rem}.carousel-main{position:relative;width:100%;height:500px;border-radius:20px;overflow:hidden;box-shadow:0 20px 60px #0000004d;background:#fff}.carousel-slide{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease-in-out}.carousel-slide.active{opacity:1}.slide-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.85),transparent);padding:2.5rem;color:#fff}.slide-title{margin:0 0 .5rem;font-size:2rem;font-weight:700;text-shadow:0 2px 10px rgba(0,0,0,.5)}.slide-date{margin:0;font-size:1rem;opacity:.9}.carousel-indicators{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);display:flex;gap:.5rem;z-index:10}.carousel-indicators button{width:12px;height:12px;border-radius:50%;border:2px solid white;background:transparent;cursor:pointer;transition:all .3s}.carousel-indicators button.active{background:#fff;transform:scale(1.2)}.featured-albums{max-width:1400px;margin:4rem auto;padding:0 1rem}.albums-scroll{overflow-x:auto;overflow-y:hidden;padding:1rem 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.albums-scroll::-webkit-scrollbar{height:8px}.albums-scroll::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.albums-scroll::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.albums-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff80}.albums-container{display:flex;gap:2rem;padding:.5rem;min-width:max-content}.album-card{flex:0 0 280px;background:#fff;border-radius:16px;overflow:hidden;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #00000026}.album-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 12px 32px #00000040}.album-cover{position:relative;width:100%;height:200px;overflow:hidden;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.album-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.album-card:hover .album-cover img{transform:scale(1.1)}.album-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.placeholder-icon{font-size:4rem;opacity:.8}.album-overlay{position:absolute;top:1rem;right:1rem;background:#fffffff2;border-radius:12px;padding:.75rem;box-shadow:0 4px 12px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.album-icon{font-size:1.5rem;display:block}.album-info{padding:1.5rem}.album-name{margin:0 0 .5rem;font-size:1.25rem;font-weight:700;color:#2d3748}.album-description{margin:0 0 1rem;font-size:.9rem;color:#6c757d;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.album-stats{display:flex;align-items:center;gap:.5rem}.photo-count{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.375rem .875rem;border-radius:20px;font-size:.85rem;font-weight:600}.latest-photos{max-width:1400px;margin:4rem auto;padding:0 1rem}.section-header{text-align:center;margin-bottom:2.5rem}.section-title{color:#fff;font-size:2rem;margin:0;display:flex;align-items:center;justify-content:center;gap:.75rem;text-shadow:0 2px 10px rgba(0,0,0,.2)}.title-icon{font-size:2.5rem}.photos-masonry{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.photo-item{position:relative;border-radius:12px;overflow:hidden;cursor:pointer;aspect-ratio:1;background:#fff;box-shadow:0 4px 16px #00000026;transition:all .3s ease}.photo-item:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000040}.photo-item img{width:100%;height:100%;object-fit:cover;display:block}.photo-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);padding:1rem;opacity:0;transition:opacity .3s ease}.photo-item:hover .photo-overlay{opacity:1}.photo-info{color:#fff}.photo-title{margin:0 0 .25rem;font-size:.9rem;font-weight:600}.photo-date{font-size:.75rem;opacity:.9}.load-more-trigger{text-align:center;padding:2rem;color:#fff}.loading-more{font-size:1rem;opacity:.8}.no-more{font-size:.9rem;opacity:.7}.empty-state{text-align:center;padding:6rem 2rem;color:#fff}.empty-icon{font-size:5rem;margin-bottom:1.5rem;opacity:.8}.empty-state p{font-size:1.2rem;margin-bottom:.5rem}.empty-hint{font-size:1rem;opacity:.8;margin-bottom:2rem!important}.empty-button{padding:1rem 2.5rem;background:#fff;border:none;border-radius:12px;font-size:1.1rem;cursor:pointer;color:#667eea;font-weight:600;transition:all .3s ease;box-shadow:0 4px 12px #0003}.empty-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000004d}.loading{text-align:center;padding:4rem;color:#fff;font-size:1.2rem}@media (max-width: 1024px){.carousel-main{height:400px}.albums-container{gap:1.5rem}.album-card{flex:0 0 240px}.photos-masonry{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}}@media (max-width: 768px){.hero-carousel{margin:1rem auto;padding:0 .5rem}.carousel-main{height:300px;border-radius:12px}.slide-overlay{padding:1.5rem}.slide-title{font-size:1.5rem}.carousel-thumbnails{gap:.5rem;margin-top:1rem}.thumbnail{width:60px;height:60px}.featured-albums,.latest-photos{margin:2rem auto;padding:0 .5rem}.section-title{font-size:1.5rem}.title-icon{font-size:2rem}.albums-container{gap:1rem}.album-card{flex:0 0 200px}.album-cover{height:150px}.photos-masonry{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.empty-state{padding:4rem 1rem}.empty-icon{font-size:4rem}}@media (max-width: 480px){.photos-masonry{grid-template-columns:repeat(2,1fr)}.album-card{flex:0 0 180px}}.photo-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a;transition:transform .3s,box-shadow .3s}.photo-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000026}.photo-image-container{position:relative;width:100%;padding-top:75%;overflow:hidden;background:#f0f0f0;cursor:pointer}.photo-image-container img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}.photo-image-container:hover img{transform:scale(1.05)}.image-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#999}.category-badge{position:absolute;top:.5rem;right:.5rem;background:#0009;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.8rem}.photo-info{padding:1rem}.photo-title{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-description{font-size:.9rem;color:#666;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.photo-meta{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:#999}.delete-button{background:#f44;color:#fff;border:none;padding:.25rem .75rem;border-radius:4px;cursor:pointer;font-size:.8rem;transition:background .3s}.delete-button:hover:not(:disabled){background:#c00}.delete-button:disabled{opacity:.6;cursor:not-allowed}.image-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:1000;padding:2rem}.image-modal-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.image-modal-content img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:8px}.close-button{position:absolute;top:-2.5rem;right:0;background:none;border:none;color:#fff;font-size:3rem;cursor:pointer;line-height:1;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.image-modal-info{margin-top:1rem;color:#fff;text-align:center;max-width:600px}.image-modal-info h3{margin-bottom:.5rem}.image-modal-info p{color:#ccc}.photo-grid-container{margin-top:1rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.loading-container,.empty-container{display:flex;justify-content:center;align-items:center;min-height:400px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#666;font-size:1.1rem}.load-more-container{display:flex;justify-content:center;margin-top:2rem}.load-more-button{padding:.75rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:opacity .3s}.load-more-button:hover:not(:disabled){opacity:.9}.load-more-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.5rem}.modal-header .close-button{background:none;border:none;font-size:2rem;cursor:pointer;color:#666;line-height:1;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.modal-header .close-button:hover{color:#333}.upload-form{padding:1.5rem}.form-group input[type=text],.form-group textarea,.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .3s}.form-group input[type=text]:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#667eea}.form-group input[type=file]{width:100%;padding:.5rem}.file-preview{margin-top:.5rem}.file-preview img{border-radius:6px;border:1px solid #ddd}.error-message{background-color:#fee;color:#c33;padding:.75rem;border-radius:6px;margin-bottom:1rem;text-align:center;font-size:.9rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.cancel-button,.submit-button{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:opacity .3s}.cancel-button{background:#e0e0e0;color:#333}.cancel-button:hover{opacity:.8}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.submit-button:hover:not(:disabled){opacity:.9}.submit-button:disabled{opacity:.6;cursor:not-allowed}.mode-button,.active-mode-button{padding:.5rem 1rem;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .3s}.mode-button:hover{border-color:#667eea;color:#667eea}.active-mode-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.create-album-modal{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header h2{margin:0;font-size:1.5rem;color:#2d3748}.modal-close{background:none;border:none;font-size:1.5rem;color:#6c757d;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:all .2s ease}.modal-close:hover{background:#f8f9fa;color:#495057}.create-album-form{padding:2rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.95rem;font-weight:500;color:#495057}.form-group .optional{color:#6c757d;font-weight:400;font-size:.85rem}.form-group input,.form-group textarea{width:100%;padding:.875rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-family:inherit;font-size:.95rem;transition:all .2s ease;background:#fff;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled,.form-group textarea:disabled{background:#f8f9fa;cursor:not-allowed}.form-group textarea{resize:vertical;min-height:80px}.icon-selector{display:flex;gap:1rem;align-items:center;margin-bottom:.5rem}.icon-selector input{flex:1}.icon-preview{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;background:#f8f9fa;border-radius:6px;min-width:60px}.preview-icon{font-size:1.5rem}.preview-label{font-size:.75rem;color:#6c757d}.icon-suggestions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.icon-suggestions>span{font-size:.9rem;color:#6c757d}.icon-suggestion-btn{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:.375rem .625rem;cursor:pointer;font-size:1.2rem;transition:all .2s ease}.icon-suggestion-btn:hover:not(:disabled){background:#f0f0f0;border-color:#667eea;transform:scale(1.1)}.icon-suggestion-btn:disabled{cursor:not-allowed;opacity:.5}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#667eea}.checkbox-label span{font-size:.95rem;color:#495057}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 6px #667eea4d}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#fff;color:#6c757d;border:2px solid #e9ecef}.btn-secondary:hover:not(:disabled){background:#f8f9fa;border-color:#dee2e6}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.album-filter{display:flex;flex-wrap:wrap;gap:1rem}.album-button{padding:.875rem 1.5rem;border:2px solid #e9ecef;background:#fff;border-radius:12px;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:.625rem;position:relative;overflow:hidden}.album-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.album-button:hover:before{left:100%}.album-button:hover{border-color:#667eea;color:#667eea;transform:translateY(-3px);box-shadow:0 6px 20px #667eea40;background:linear-gradient(135deg,#f8f9ff,#fff)}.album-button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.album-button.active:hover{transform:translateY(-4px);box-shadow:0 8px 24px #667eea80}.album-count{font-size:.85rem;opacity:.85;font-weight:400;margin-left:.25rem}.gallery-container{min-height:100vh;background-color:#f5f5f5}.gallery-content{max-width:1400px;margin:0 auto;padding:2rem}.gallery-toolbar{display:flex;justify-content:flex-end;gap:1rem;margin-bottom:1.5rem}.upload-photo-button{padding:.875rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #667eea4d;display:flex;align-items:center;gap:.5rem}.upload-photo-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #667eea66}.upload-photo-button:active{transform:translateY(0)}.create-album-button{padding:.875rem 2rem;background:linear-gradient(135deg,#2ed573,#1e90ff);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #2ed5734d;display:flex;align-items:center;gap:.5rem}.create-album-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #2ed57366}.create-album-button:active{transform:translateY(0)}.album-filter-section{margin-bottom:2rem;background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 16px #00000014;border:1px solid #f0f0f0}.filter-title{margin:0 0 1.5rem;font-size:1.2rem;font-weight:700;color:#2d3748;display:flex;align-items:center;gap:.5rem}.filter-title:before{content:"📂";font-size:1.5rem}@media (max-width: 768px){.gallery-content{padding:1rem}}.timeline-container{min-height:100vh;background-color:#f5f5f5}.timeline-content{max-width:1000px;margin:2rem auto;padding:0 2rem}.timeline-header{display:flex;align-items:center;justify-content:space-between;background:#fff;padding:1rem 1.25rem;border-radius:12px;box-shadow:0 2px 8px #0000001f;margin-bottom:1rem}.timeline-header h2{margin:0;color:#333}.timeline-filters{display:flex;gap:1rem;margin-bottom:2rem;background:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.timeline-filters select{padding:.5rem 1rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:1rem;top:0;bottom:0;width:2px;background:#667eea}.timeline-item{position:relative;margin-bottom:2rem;background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.timeline-marker{position:absolute;left:-2.5rem;top:1.5rem;width:2rem;height:2rem;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid #667eea}.event-icon{font-size:1.2rem}.timeline-content-item{margin-left:1rem}.timeline-date{color:#666;font-size:.9rem;margin-bottom:.5rem}.timeline-content-item h3{margin:.5rem 0;color:#333}.timeline-content-item p{color:#666;margin:.5rem 0}.event-photos{margin-top:.5rem;color:#667eea;font-size:.9rem}.modal-body input,.modal-body textarea,.modal-body select{width:100%;border:1px solid #e5e7eb;border-radius:8px;padding:.625rem .75rem;font-size:.95rem}.members-container{min-height:100vh;background-color:#f5f5f5}.members-content{max-width:1200px;margin:2rem auto;padding:0 2rem}.members-header{display:flex;align-items:center;justify-content:space-between;background:#fff;padding:1rem 1.25rem;border-radius:12px;box-shadow:0 2px 8px #0000001f;margin-bottom:1rem}.members-header h2{margin:0;color:#333}.members-content h2{margin-bottom:2rem;color:#333}.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem}.member-card{background:#fff;border-radius:12px;padding:2rem;text-align:center;box-shadow:0 2px 8px #0000001a;transition:transform .3s,box-shadow .3s}.member-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000026}.member-avatar{width:120px;height:120px;margin:0 auto 1rem;border-radius:50%;overflow:hidden;border:4px solid #667eea}.member-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:3rem;color:#fff;font-weight:700}.member-card h3{margin:1rem 0 .5rem;color:#333}.username{color:#666;font-size:.9rem;margin:.25rem 0}.relationship{color:#667eea;font-weight:500;margin:.5rem 0}.birthday{color:#666;font-size:.9rem;margin:.5rem 0}.interests{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:1rem 0}.interest-tag{background:#f0f0f0;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;color:#666}.bio{color:#666;font-size:.9rem;margin-top:1rem;text-align:left}.empty-state,.loading{text-align:center;padding:4rem;color:#666}.fab{position:fixed;right:2rem;bottom:2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:999px;padding:.875rem 1.25rem;font-size:1rem;box-shadow:0 8px 24px #667eea80;cursor:pointer;display:flex;align-items:center;gap:.5rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-card{width:100%;max-width:680px;background:#fff;border-radius:16px;box-shadow:0 24px 64px #00000040;overflow:hidden}.modal-header{padding:1rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:space-between}.modal-body{padding:1.25rem}.form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;margin-bottom:.75rem}.modal-body input,.modal-body textarea{width:100%;border:1px solid #e5e7eb;border-radius:8px;padding:.625rem .75rem;font-size:.95rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:0 1.25rem 1.25rem}.btn{border:none;border-radius:8px;padding:.625rem 1rem;font-size:.95rem;cursor:pointer}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-secondary{background:#f5f7fa;color:#333}.calendar-container{min-height:100vh;background-color:#f5f5f5}.calendar-content{max-width:1200px;margin:2rem auto;padding:0 2rem}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.calendar-header h2{margin:0;color:#333}.calendar-header button{padding:.5rem 1rem;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer}.calendar-grid{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:.5rem}.weekday{text-align:center;font-weight:600;color:#666;padding:.5rem}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.calendar-day{min-height:100px;border:1px solid #e0e0e0;border-radius:4px;padding:.5rem;position:relative}.calendar-day.empty{border:none;background:transparent}.calendar-day.today{background:#e3f2fd;border-color:#667eea}.day-number{font-weight:600;margin-bottom:.25rem;font-size:1.1rem}.lunar-date{font-size:.8rem;color:#8b7355;margin-bottom:.25rem;font-weight:500;background:linear-gradient(135deg,#fff8e7,#ffe4b5);padding:.125rem .375rem;border-radius:4px;display:inline-block}.day-events{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}.event-dot{width:6px;height:6px;background:#667eea;border-radius:50%}.event-more{font-size:.7rem;color:#666}.calendar-events-list{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.calendar-events-list h3{margin-top:0;color:#333}.events-list{margin-top:1rem}.event-item{display:flex;gap:1rem;padding:1rem;border-bottom:1px solid #e0e0e0}.event-item:last-child{border-bottom:none}.event-date{font-size:1.5rem;font-weight:600;color:#667eea;min-width:50px}.event-details h4{margin:0 0 .5rem;color:#333}.event-details p{margin:.25rem 0;color:#666;font-size:.9rem}.event-time{color:#999;font-size:.85rem}.empty-state{text-align:center;padding:2rem;color:#666}.messages-container{min-height:100vh;background-color:#f5f5f5}.messages-content{max-width:800px;margin:2rem auto;padding:0 2rem}.messages-content h2{margin-bottom:2rem;color:#333}.message-form{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.message-form textarea{width:100%;padding:1rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-family:inherit;resize:vertical;margin-bottom:1rem}.message-form button{padding:.75rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;cursor:pointer}.messages-list{display:flex;flex-direction:column;gap:1rem}.message-item{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.message-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.author{font-weight:600;color:#333}.time{color:#999;font-size:.9rem}.message-content{color:#666;line-height:1.6;margin-bottom:1rem;white-space:pre-wrap}.message-actions{display:flex;gap:1rem}.like-button{background:none;border:1px solid #ddd;padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:all .3s}.like-button.liked{background:#fee;border-color:#fcc;color:#c33}.empty-state{text-align:center;padding:4rem;color:#666;background:#fff;border-radius:8px}.admin-container{min-height:100vh;background-color:#f5f5f5}.admin-content{max-width:1200px;margin:2rem auto;padding:0 2rem}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.admin-header h2{margin:0;color:#333}.create-button{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem}.create-user-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.create-user-form h3{margin-top:0;color:#333}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.form-actions{display:flex;gap:1rem}.form-actions button{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem}.form-actions button[type=button]{background:#e0e0e0;color:#333}.users-list{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.users-list table{width:100%;border-collapse:collapse}.users-list th,.users-list td{padding:1rem;text-align:left;border-bottom:1px solid #e0e0e0}.users-list th{background:#f5f5f5;font-weight:600;color:#333}.role-badge{padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.role-badge.admin{background:#fee;color:#c33}.role-badge.user{background:#e3f2fd;color:#1976d2}.no-permission{text-align:center;padding:4rem;color:#666;font-size:1.2rem}.loading{text-align:center;padding:4rem;color:#666}.admin-tabs{display:flex;gap:1rem;margin-bottom:2rem;background:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.admin-tabs button{padding:.75rem 1.5rem;border:none;background:#f0f0f0;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .3s}.admin-tabs button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.section-header h3{margin:0;color:#333}.header-actions{display:flex;gap:1rem}.init-button{padding:.75rem 1.5rem;background:#4caf50;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .3s}.init-button:hover{background:#45a049;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500}.status-badge.active{background:#e8f5e9;color:#2e7d32}.status-badge.inactive{background:#ffebee;color:#c62828}.toggle-button,.delete-button{padding:.25rem .75rem;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;margin-right:.5rem}.toggle-button{background:#e3f2fd;color:#1976d2}.delete-button{background:#ffebee;color:#c62828}.health-container{min-height:100vh;background-color:#f5f5f5}.health-content{max-width:1400px;margin:0 auto;padding:2rem}.health-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;background:#fff;padding:1.5rem 2rem;border-radius:16px;box-shadow:0 4px 16px #00000014}.health-header h2{margin:0;color:#2d3748}.member-filter select{padding:.5rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:1rem}.health-tabs{display:flex;gap:1rem;margin-bottom:1.5rem;background:#fff;padding:1rem;border-radius:12px;box-shadow:0 2px 8px #0000000f}.health-tabs button{padding:.75rem 1.5rem;border:2px solid #e9ecef;background:#fff;border-radius:8px;cursor:pointer;font-size:.95rem;transition:all .2s ease}.health-tabs button:hover{border-color:#667eea;color:#667eea}.health-tabs button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.health-actions{margin-bottom:1.5rem}.create-button{padding:.875rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.create-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #667eea66}.health-data{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 16px #00000014}.health-card{border:1px solid #e9ecef;border-radius:12px;padding:1.5rem;margin-bottom:1rem;transition:all .2s ease}.health-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.card-header h3{margin:0;color:#2d3748}.card-date{color:#6c757d;font-size:.9rem}.card-content p{margin:.5rem 0;color:#495057}.pdf-link{display:inline-block;margin-top:.5rem;padding:.5rem 1rem;background:#667eea;color:#fff;text-decoration:none;border-radius:6px;transition:all .2s ease}.pdf-link:hover{background:#5568d3}.exercise-stats{display:flex;gap:1.5rem;margin-top:.5rem}.exercise-stats span{padding:.5rem 1rem;background:#f8f9fa;border-radius:6px;font-size:.9rem}.empty-state{text-align:center;padding:3rem;color:#6c757d}.stats-container{padding:2rem}.stats-placeholder{text-align:center;padding:4rem;color:#6c757d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #e9ecef}.modal-header h3{margin:0}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6c757d}.health-form{padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#495057}.form-group .required{color:#dc3545}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:2px solid #e9ecef;border-radius:8px;font-size:1rem;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-actions{display:flex;gap:1rem;margin-top:2rem}.form-actions button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s ease}.form-actions button[type=submit]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.form-actions button[type=button]{background:#f8f9fa;color:#6c757d}.form-actions button:disabled{opacity:.6;cursor:not-allowed}.blog-container{min-height:100vh;background-color:#f5f5f5}.blog-content{max-width:1400px;margin:0 auto;padding:2rem}.blog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;background:#fff;padding:1.5rem 2rem;border-radius:16px;box-shadow:0 4px 16px #00000014}.blog-header h2{margin:0;color:#2d3748}.create-post-button{padding:.875rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.create-post-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #667eea66}.blog-filters{display:flex;gap:1rem;margin-bottom:2rem;background:#fff;padding:1rem;border-radius:12px;box-shadow:0 2px 8px #0000000f}.blog-filters button{padding:.5rem 1.5rem;border:2px solid #e9ecef;background:#fff;border-radius:8px;cursor:pointer;transition:all .2s ease}.blog-filters button:hover{border-color:#667eea;color:#667eea}.blog-filters button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem}.post-card{background:#fff;border-radius:16px;overflow:hidden;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 16px #00000014}.post-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.post-cover{width:100%;height:200px;background-size:cover;background-position:center}.post-content{padding:1.5rem}.post-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:.85rem;color:#6c757d}.post-category{background:#f8f9fa;padding:.25rem .75rem;border-radius:12px}.post-title{margin:0 0 .75rem;font-size:1.25rem;font-weight:700;color:#2d3748;line-height:1.4}.post-excerpt{margin:0 0 1rem;color:#6c757d;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid #f0f0f0;font-size:.85rem;color:#6c757d}.post-stats{display:flex;gap:1rem}.empty-state,.loading{text-align:center;padding:4rem;color:#6c757d}.blog-modal{background:#fff;border-radius:16px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto}.blog-form{padding:2rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 768px){.posts-grid,.form-row{grid-template-columns:1fr}}.blog-detail-container{min-height:100vh;background-color:#f5f5f5}.blog-detail-content{max-width:900px;margin:0 auto;padding:2rem}.back-button{margin-bottom:2rem;padding:.5rem 1rem;background:#fff;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;transition:all .2s ease}.back-button:hover{border-color:#667eea;color:#667eea}.blog-post{background:#fff;border-radius:16px;padding:3rem;margin-bottom:2rem;box-shadow:0 4px 16px #00000014}.post-header h1{margin:0 0 1rem;font-size:2rem;color:#2d3748}.post-meta{display:flex;gap:1.5rem;color:#6c757d;font-size:.9rem;margin-bottom:2rem}.post-cover-image{width:100%;height:400px;background-size:cover;background-position:center;border-radius:12px;margin-bottom:2rem}.post-body{line-height:1.8;color:#495057;font-size:1.1rem}.post-actions{margin-top:2rem;padding-top:2rem;border-top:1px solid #e9ecef}.like-button{padding:.75rem 1.5rem;background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .2s ease}.like-button:hover{border-color:#667eea;color:#667eea}.like-button.liked{background:#ffebee;border-color:#ffcdd2;color:#c62828}.comments-section{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 16px #00000014}.comments-section h3{margin:0 0 1.5rem;color:#2d3748}.comment-form{margin-bottom:2rem}.comment-form textarea{width:100%;padding:1rem;border:2px solid #e9ecef;border-radius:8px;font-size:1rem;margin-bottom:1rem;box-sizing:border-box;resize:vertical}.comment-form button{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.comment-item{padding:1rem;border-bottom:1px solid #f0f0f0}.comment-item:last-child{border-bottom:none}.comment-header{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.9rem;color:#6c757d}.comment-content{color:#495057;line-height:1.6}.loading,.empty-state{text-align:center;padding:4rem;color:#6c757d}.custom-page-container{min-height:100vh;background-color:#f5f5f5}.custom-page-content{max-width:1200px;margin:2rem auto;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.custom-page-content h2{color:#333;margin-bottom:1rem}.custom-page-content p{color:#666;line-height:1.6}.app{min-height:100vh;transition:background .5s ease}:root.holiday-theme{--holiday-primary: #667eea;--holiday-secondary: #764ba2;--holiday-background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--holiday-accent: #667eea}:root.holiday-theme .header{background:var(--holiday-background)}:root.holiday-theme .home-container{background:var(--holiday-background)}:root[data-holiday=元旦]{--holiday-primary: #FF6B6B;--holiday-secondary: #FFE66D;--holiday-background: linear-gradient(135deg, #FF6B6B 0%, #FFE66D 100%);--holiday-accent: #FF4757}:root[data-holiday=元旦] .header{background:var(--holiday-background)}:root[data-holiday=元旦] .home-container{background:var(--holiday-background)}:root[data-holiday=春节]{--holiday-primary: #FF4757;--holiday-secondary: #FFA502;--holiday-background: linear-gradient(135deg, #FF4757 0%, #FFA502 100%);--holiday-accent: #C44569}:root[data-holiday=春节] .header{background:var(--holiday-background)}:root[data-holiday=春节] .home-container{background:var(--holiday-background)}:root[data-holiday=劳动节]{--holiday-primary: #2ED573;--holiday-secondary: #1E90FF;--holiday-background: linear-gradient(135deg, #2ED573 0%, #1E90FF 100%);--holiday-accent: #00D2D3}:root[data-holiday=劳动节] .header{background:var(--holiday-background)}:root[data-holiday=劳动节] .home-container{background:var(--holiday-background)}:root[data-holiday=端午节]{--holiday-primary: #00D2D3;--holiday-secondary: #54A0FF;--holiday-background: linear-gradient(135deg, #00D2D3 0%, #54A0FF 100%);--holiday-accent: #5F27CD}:root[data-holiday=端午节] .header{background:var(--holiday-background)}:root[data-holiday=端午节] .home-container{background:var(--holiday-background)}:root[data-holiday=中秋节]{--holiday-primary: #FFA502;--holiday-secondary: #FF6348;--holiday-background: linear-gradient(135deg, #FFA502 0%, #FF6348 100%);--holiday-accent: #FF6B6B}:root[data-holiday=中秋节] .header{background:var(--holiday-background)}:root[data-holiday=中秋节] .home-container{background:var(--holiday-background)}:root[data-holiday=国庆节]{--holiday-primary: #FF4757;--holiday-secondary: #FFA502;--holiday-background: linear-gradient(135deg, #FF4757 0%, #FFA502 100%);--holiday-accent: #C44569}:root[data-holiday=国庆节] .header{background:var(--holiday-background)}:root[data-holiday=国庆节] .home-container{background:var(--holiday-background)}:root[data-holiday=情人节]{--holiday-primary: #FF69B4;--holiday-secondary: #FF1493;--holiday-background: linear-gradient(135deg, #FF69B4 0%, #FF1493 100%);--holiday-accent: #FFFFFF}:root[data-holiday=情人节] .header{background:var(--holiday-background)}:root[data-holiday=情人节] .home-container{background:var(--holiday-background)}:root[data-holiday=圣诞节]{--holiday-primary: #DC143C;--holiday-secondary: #228B22;--holiday-background: linear-gradient(135deg, #DC143C 0%, #228B22 100%);--holiday-accent: #FFD700}:root[data-holiday=圣诞节] .header{background:linear-gradient(135deg,#dc143c,#228b22);box-shadow:0 4px 20px #dc143c4d}:root[data-holiday=圣诞节] .home-container{background:linear-gradient(135deg,#dc143c,#228b22)}:root[data-holiday=圣诞节] .gallery-container{background:linear-gradient(135deg,#f8f0f0,#e8f5e9)}:root[data-holiday=圣诞节]:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:9999;background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><circle cx="20" cy="20" r="2" fill="%23FFD700" opacity="0.6"><animate attributeName="opacity" values="0.3;0.8;0.3" dur="2s" repeatCount="indefinite"/></circle><circle cx="80" cy="40" r="1.5" fill="%23FFD700" opacity="0.5"><animate attributeName="opacity" values="0.2;0.7;0.2" dur="3s" repeatCount="indefinite"/></circle><circle cx="50" cy="70" r="1" fill="%23FFD700" opacity="0.4"><animate attributeName="opacity" values="0.1;0.6;0.1" dur="2.5s" repeatCount="indefinite"/></circle></svg>');background-size:200px 200px;animation:snowFall 20s linear infinite;opacity:.3}@keyframes snowFall{0%{transform:translateY(-100px) translate(0)}to{transform:translateY(100vh) translate(100px)}}.holiday-theme:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:9999;opacity:.1;background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.1) 10px,rgba(255,255,255,.1) 20px);animation:holidayShimmer 3s infinite}@keyframes holidayShimmer{0%,to{opacity:.05}50%{opacity:.15}}*{margin:0;padding:0;box-sizing:border-box}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:#f5f5f5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}:root{--holiday-primary: #667eea;--holiday-secondary: #764ba2;--holiday-background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--holiday-accent: #667eea}.holiday-theme{transition:all .5s ease}.holiday-theme .header,.holiday-theme .home-hero,.holiday-theme .btn-primary,.holiday-theme .create-album-toggle,.holiday-theme .upload-photo-button,.holiday-theme .album-button.active{background:var(--holiday-background)!important}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.holiday-theme:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:9999;opacity:.1;background-image:radial-gradient(circle at 20% 50%,rgba(255,255,255,.3) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.3) 0%,transparent 50%);animation:float 6s ease-in-out infinite}
