:root{--tg-bg: var(--tg-theme-bg-color, #FFFFFF);--tg-bg2: var(--tg-theme-secondary-bg-color, #EFEFF4);--tg-text: var(--tg-theme-text-color, #000000);--tg-hint: var(--tg-theme-hint-color, #707579);--tg-link: var(--tg-theme-link-color, #007AFF);--tg-btn: var(--tg-theme-button-color, #3390EC);--tg-btn-text: var(--tg-theme-button-text-color, #FFFFFF);--tg-section-bg: var(--tg-theme-section-bg-color, #FFFFFF);--tg-section-header: var(--tg-theme-section-header-text-color, #707579);--tg-subtitle: var(--tg-theme-subtitle-text-color, #707579);--tg-separator: var(--tg-theme-section-separator-color, rgba(0, 0, 0, .08));--tg-header-bg: var(--tg-theme-header-bg-color, #FFFFFF);--tg-destructive: var(--tg-theme-destructive-text-color, #FF3B30);--tg-accent-text: var(--tg-theme-accent-text-color, #007AFF);--glass-bg: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .45);--glass-blur: blur(20px) saturate(180%);--glass-shadow: 0 2px 16px rgba(0, 0, 0, .06)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:linear-gradient(170deg,#e8edf5,#d5dce8,#e2e8f0 60%,#edf0f5);background-attachment:fixed;color:var(--tg-text);font-size:17px;line-height:22px;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top)}.app-container{padding:0 16px 32px;max-width:100%;min-height:100vh;position:relative}.profile-card{margin:calc(-1*env(safe-area-inset-top)) -16px 0;padding:calc(20px + env(safe-area-inset-top)) 20px 16px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:.5px solid var(--glass-border);box-shadow:0 1px #ffffff80 inset,var(--glass-shadow);position:sticky;top:calc(-1*env(safe-area-inset-top));z-index:10;overflow:hidden}.profile-cover{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0}.profile-cover img{width:100%;height:100%;object-fit:cover;opacity:.25}.profile-cover-gradient{width:100%;height:100%;background:linear-gradient(135deg,#6394ff1f,#b380ff1a,#ff94c814 70%,#63c8ff1a)}.profile-header{position:relative;z-index:1}.profile-header-top{display:flex;align-items:center}.profile-header-text{flex:1;min-width:0;padding-top:2px}.profile-title-row{display:flex;align-items:center;gap:6px}.settings-btn{width:36px;height:36px;min-width:36px;border-radius:50%;background:#0000000a;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--tg-hint);transition:background .15s}.settings-btn:active{background:#0000001a}.settings-btn svg{width:20px;height:20px}.settings-btn.hidden{display:none}.theme-toggle-btn{width:36px;height:36px;min-width:36px;border-radius:50%;background:#0000000a;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--tg-hint);transition:background .15s}.theme-toggle-btn:active{background:#0000001a}.theme-toggle-btn svg{width:20px;height:20px}.profile-title{font-size:20px;font-weight:700;letter-spacing:-.4px;line-height:24px;color:var(--tg-text);flex:1}.profile-subtitle{display:none}.profile-description{font-size:15px;color:var(--tg-hint);margin-top:2px;font-weight:400;line-height:20px}.profile-meta-row{display:flex;align-items:center;gap:8px;margin-top:2px}.profile-stats-compact{font-size:13px;font-weight:400;color:var(--tg-hint)}.profile-stats-compact .stat-num{font-weight:600;color:var(--tg-text)}.stat-dot{margin:0 2px}.yadisk-label{font-size:13px;font-weight:400;color:var(--tg-hint)}.group-link-a{font-size:13px;font-weight:400;color:var(--tg-link);text-decoration:none}.group-link-text{font-size:13px;font-weight:400;color:var(--tg-hint)}.upload-btn-main{width:100%;margin:24px 0 16px;padding:14px 20px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--tg-link);border:.5px solid var(--glass-border);border-radius:14px;cursor:pointer;display:flex;align-items:center;gap:12px;font-family:inherit;font-weight:400;font-size:17px;transition:opacity .15s;min-height:48px;box-shadow:0 1px #fff6 inset,var(--glass-shadow)}.upload-btn-main:active{opacity:.6}.upload-btn-main svg{width:22px;height:22px;color:var(--tg-link)}.section-header{display:flex;justify-content:space-between;align-items:baseline;padding:24px 2px 8px}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--tg-section-header)}.section-link{background:none;border:none;color:var(--tg-link);font-weight:400;font-size:15px;cursor:pointer;display:flex;align-items:center;gap:2px;font-family:inherit;padding:0;min-height:30px}.section-link svg{width:14px;height:14px}.gallery-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;border-radius:16px;overflow:hidden;box-shadow:var(--glass-shadow)}.gallery-preview .photo-item{overflow:hidden;position:relative;cursor:pointer;background:#0000000a;aspect-ratio:1}.gallery-preview .photo-item img{width:100%;height:100%;object-fit:cover;display:block}.gallery-preview-empty{padding:32px 20px;text-align:center;color:var(--tg-hint);font-size:15px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:16px;border:.5px solid var(--glass-border)}.gallery-more-card{display:flex;align-items:center;justify-content:center;background:var(--glass-bg)!important;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);cursor:pointer;transition:opacity .15s}.gallery-more-card:active{opacity:.7}.gallery-more-inner{display:flex;flex-direction:column;align-items:center;gap:1px}.gallery-more-num{font-size:17px;font-weight:600;color:var(--tg-text)}.gallery-more-text{font-size:11px;font-weight:500;color:var(--tg-hint)}.favorites-empty{padding:20px;text-align:center;color:var(--tg-hint);font-size:14px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:16px;border:.5px solid var(--glass-border)}.photo-fav-badge{position:absolute;bottom:4px;left:4px;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));pointer-events:none}.photo-fav-badge svg{width:14px;height:14px;fill:#fff;stroke:none}.viewer-fav-btn{width:44px;height:44px;border-radius:50%;background:#ffffff26;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:.5px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.viewer-fav-btn:active{background:#ffffff4d}.viewer-fav-btn svg{width:20px;height:20px}.viewer-fav-btn.active{color:#fff}.viewer-fav-btn.active svg{fill:#fff}@keyframes heartPop{0%{transform:scale(1)}30%{transform:scale(1.3)}to{transform:scale(1)}}.viewer-fav-btn.pop{animation:heartPop .3s ease}.albums-add-btn{width:30px;height:30px;border-radius:50%;background:var(--tg-link);border:none;color:var(--tg-btn-text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s;min-width:30px;box-shadow:0 2px 8px #0000001f}.albums-add-btn:active{opacity:.6}.albums-add-btn svg{width:16px;height:16px}.albums-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.albums-grid.single-col{grid-template-columns:1fr}.album-card{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;transition:transform .2s ease,opacity .15s;box-shadow:0 2px 12px #00000026}.album-card:active{transform:scale(.97);opacity:.9}.album-cover{aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center}.album-cover img{width:100%;height:100%;object-fit:cover}.album-cover svg{width:28px;height:28px;color:var(--tg-hint)}.album-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:65%;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,rgba(0,0,0,.15) 50%,transparent 100%);border-radius:0 0 16px 16px;pointer-events:none}.album-info{position:absolute;bottom:0;left:0;right:0;padding:8px 12px 10px;z-index:1}.album-name{font-size:15px;font-weight:600;color:#fff;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px rgba(0,0,0,.3)}.album-meta{font-size:12px;color:#fffc;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.3)}.albums-empty{text-align:center;padding:24px;color:var(--tg-hint);font-size:15px;grid-column:1/-1}#dashboardView{padding-bottom:32px}.dashboard-header{margin:calc(-1*env(safe-area-inset-top)) -16px 0;padding:calc(20px + env(safe-area-inset-top)) 20px 16px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:.5px solid var(--glass-border);box-shadow:0 1px #ffffff80 inset,var(--glass-shadow)}.dashboard-header-content{display:flex;align-items:center;justify-content:space-between}.dashboard-title{font-size:20px;font-weight:700;letter-spacing:-.4px;color:var(--tg-text)}.dashboard-section{margin-top:20px}.dashboard-section-title{font-size:13px;font-weight:600;text-transform:uppercase;color:var(--tg-section-header);letter-spacing:.5px;margin-bottom:8px;padding-left:4px}.dashboard-storage-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:.5px solid var(--glass-border);border-radius:14px;box-shadow:0 1px #fff6 inset,var(--glass-shadow)}.dashboard-storage-icon{width:40px;height:40px;min-width:40px;border-radius:10px;background:#007aff1a;display:flex;align-items:center;justify-content:center;color:var(--tg-link)}.dashboard-storage-info{display:flex;flex-direction:column;gap:1px}.dashboard-storage-name{font-size:16px;font-weight:500;color:var(--tg-text)}.dashboard-storage-status{font-size:13px;color:#34c759;font-weight:500}.dashboard-album-card{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:.5px solid var(--glass-border);border-radius:14px;cursor:pointer;transition:opacity .15s;box-shadow:0 1px #fff6 inset,var(--glass-shadow)}.dashboard-album-card:active{opacity:.6}.dashboard-album-cover{width:56px;height:56px;min-width:56px;border-radius:10px;overflow:hidden;background:#0000000a}.dashboard-album-cover img{width:100%;height:100%;object-fit:cover}.dashboard-album-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--tg-hint);opacity:.5}.dashboard-album-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dashboard-album-title{font-size:16px;font-weight:500;color:var(--tg-text)}.dashboard-album-meta{font-size:13px;color:var(--tg-hint)}.dashboard-album-arrow{color:var(--tg-hint);flex-shrink:0}.dashboard-album-arrow svg{width:18px;height:18px}.dashboard-groups-placeholder{text-align:center;font-size:13px;color:var(--tg-hint);padding:20px 16px;line-height:1.4}.dashboard-shared-empty{text-align:center;font-size:14px;color:var(--tg-hint);padding:20px 16px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:.5px solid var(--glass-border);border-radius:14px;box-shadow:0 1px #fff6 inset,var(--glass-shadow)}.groups-hint{text-align:center;font-size:13px;color:var(--tg-hint);padding:20px 16px 4px;line-height:1.4}.group-card{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;margin-bottom:8px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:.5px solid var(--glass-border);border-radius:14px;cursor:pointer;transition:opacity .15s;box-shadow:0 1px #fff6 inset,var(--glass-shadow)}.group-card:active{opacity:.6}.group-card-info{display:flex;flex-direction:column;gap:2px}.group-card-title{font-size:16px;font-weight:500;color:var(--tg-text)}.group-card-meta{font-size:13px;color:var(--tg-hint)}.group-card-arrow{color:var(--tg-hint);font-size:18px}.group-card-arrow svg{width:18px;height:18px}#fileInput{display:none}.gallery-view{display:none;position:relative;z-index:1;opacity:1;transition:opacity .3s ease}.gallery-view.active{display:block}.gallery-view.animating-in{opacity:0}.album-card-animating{position:fixed;z-index:50;overflow:hidden;transition:all .45s cubic-bezier(.32,.72,0,1);pointer-events:none}.album-card-animating img{width:100%;height:100%;object-fit:cover}.album-card-animating:after{content:"";position:absolute;bottom:0;left:0;right:0;height:65%;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 100%);pointer-events:none}.album-card-animating .album-info{position:absolute;bottom:0;left:0;right:0;padding:12px;z-index:1;transition:opacity .2s ease}@keyframes slideUpReveal{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.gallery-content-reveal{animation:slideUpReveal .4s cubic-bezier(.32,.72,0,1) .15s both}.back-button{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--tg-link);font-size:17px;font-weight:400;cursor:pointer;padding:14px 0;font-family:inherit;min-height:44px}.gallery-nav-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0 12px}.gallery-back-circle{width:36px;height:36px;border-radius:50%;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:.5px solid var(--glass-border);color:var(--tg-link);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s;box-shadow:0 1px #ffffff4d inset,var(--glass-shadow)}.gallery-back-circle:active{opacity:.6}.gallery-back-circle svg{width:20px;height:20px}.gallery-nav-btn{display:inline-flex;align-items:center;gap:4px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:.5px solid var(--glass-border);border-radius:20px;padding:8px 20px;font-size:15px;font-weight:500;color:var(--tg-link);cursor:pointer;font-family:inherit;min-height:36px;transition:opacity .15s;box-shadow:0 1px #ffffff4d inset,var(--glass-shadow)}.gallery-nav-btn:active{opacity:.6}.gallery-nav-btn svg{width:18px;height:18px}.month-section{margin-bottom:20px}.month-title{font-size:13px;font-weight:600;color:var(--tg-section-header);margin-bottom:8px;padding-left:2px;text-transform:uppercase;letter-spacing:.3px}.photos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;border-radius:12px;overflow:hidden}.photo-item{aspect-ratio:1;overflow:hidden;position:relative;cursor:pointer}.photo-item img,.photo-item video{width:100%;height:100%;object-fit:cover;image-orientation:from-image}.video-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;background:#0006;border-radius:50%;pointer-events:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.video-play-icon:after{content:"";position:absolute;top:50%;left:53%;transform:translate(-50%,-50%);border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent white}.video-type-badge{position:absolute;bottom:4px;right:4px;font-size:12px;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.select-btn{background:none;border:none;color:var(--tg-link);font-size:15px;font-weight:400;cursor:pointer;font-family:inherit;padding:8px 16px;min-height:36px}.select-btn:active{opacity:.6}.photo-item .select-check{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:2px solid white;background:transparent;display:none;align-items:center;justify-content:center;z-index:2;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5));transition:background .15s,border-color .15s}.selecting .photo-item .select-check{display:flex}.photo-item.selected .select-check{background:var(--tg-link);border-color:var(--tg-link)}.photo-item.selected .select-check:after{content:"✓";color:#fff;font-size:14px;font-weight:700}.selection-bar{position:fixed;bottom:0;left:0;right:0;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--glass-bg);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-top:.5px solid var(--glass-border);display:none;justify-content:space-between;align-items:center;z-index:50;box-shadow:0 -2px 16px #0000001a}.selection-bar.active{display:flex}.selection-bar-count{font-size:15px;color:var(--tg-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selection-bar-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#0000000f}.selection-bar-progress-fill{height:100%;width:0;background:var(--tg-btn);transition:width .3s ease;border-radius:0 2px 2px 0}.selection-bar-download{background:var(--tg-btn);color:var(--tg-btn-text);border:none;border-radius:10px;padding:10px 20px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;min-height:40px;display:flex;align-items:center;gap:6px}.selection-bar-download:active{opacity:.7}.selection-bar-download:disabled{opacity:.4;cursor:default}.gallery-header-row{display:none}.gallery-header-bar{background:var(--glass-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);padding:14px 16px;text-align:center;border-bottom:.5px solid var(--glass-border);box-shadow:0 1px #ffffff80 inset,var(--glass-shadow);position:sticky;top:0;z-index:10;margin:0 -16px 12px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center}.gallery-header-title{font-size:17px;font-weight:600;color:var(--tg-text)}.gallery-header-subtitle{font-size:13px;color:var(--tg-hint);margin-top:2px}.gallery-header-bar .gallery-back-circle{position:absolute;left:8px;top:50%;transform:translateY(-50%)}.gallery-header-bar .gallery-nav-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.upload-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);z-index:100;align-items:center;justify-content:center}.upload-overlay.active{display:flex}.upload-modal{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:20px;padding:32px;text-align:center;max-width:320px;width:90%;border:.5px solid var(--glass-border);box-shadow:0 8px 32px #00000026}.upload-text{font-size:17px;font-weight:600;color:var(--tg-text);margin-bottom:6px;white-space:nowrap}.progress-container{width:100%;height:4px;background:#0000000f;border-radius:2px;margin:12px 0;overflow:hidden}.progress-bar{height:100%;width:0;background:var(--tg-btn);border-radius:2px;transition:width .2s}.progress-bar.saving{background-size:40px 40px;background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.25) 10px,rgba(255,255,255,.25) 20px);animation:barber .8s linear infinite}@keyframes barber{to{background-position:40px 0}}.upload-subtext{font-size:13px;color:var(--tg-hint);white-space:nowrap}.photo-viewer{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;z-index:200;flex-direction:column;touch-action:none;overscroll-behavior:contain}.photo-viewer.active{display:flex}.viewer-header{display:flex;justify-content:space-between;align-items:center;padding:max(12px,env(safe-area-inset-top)) 16px 12px;position:absolute;top:0;left:0;right:0;z-index:10;background:linear-gradient(to bottom,rgba(0,0,0,.5) 0%,transparent 100%)}.viewer-close,.viewer-download,.viewer-delete{width:44px;height:44px;border-radius:50%;background:#ffffff26;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:.5px solid rgba(255,255,255,.2);color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:background .15s}.viewer-close:active,.viewer-download:active,.viewer-delete:active{background:#ffffff4d}.viewer-delete{background:#ff3b304d;border-color:#ff3b3033}.viewer-delete.hidden{visibility:hidden}.viewer-controls{display:flex;gap:8px}.viewer-counter{color:#ffffffe6;font-size:14px;font-weight:600;background:#ffffff1f;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:.5px solid rgba(255,255,255,.2);border-radius:20px;padding:4px 14px}.viewer-content{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.viewer-image{max-width:100%;max-height:100%;object-fit:contain;image-orientation:from-image}.viewer-video{max-width:100%;max-height:100%;object-fit:contain;outline:none}.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:70px;background:#ffffff1a;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:.5px solid rgba(255,255,255,.15);color:#fff;font-size:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.9;transition:opacity .15s}.viewer-nav:active{opacity:1;background:#fff3}.viewer-nav.prev{left:0;border-radius:0 12px 12px 0}.viewer-nav.next{right:0;border-radius:12px 0 0 12px}.viewer-footer{padding:8px 16px max(12px,env(safe-area-inset-bottom));position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.5) 0%,transparent 100%)}.viewer-date{color:#ffffffb3;font-size:13px;font-weight:500;text-align:center;margin-bottom:10px}.viewer-bottom-bar{display:flex;justify-content:space-between;align-items:center}.viewer-bottom-center{display:flex;gap:16px}.viewer-bottom-bar .viewer-download{flex-shrink:0}.viewer-info-btn{width:44px;height:44px;border-radius:50%;background:#ffffff26;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:.5px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.viewer-info-btn:active{background:#ffffff4d}.viewer-info-btn svg{width:20px;height:20px}.viewer-info-panel{position:absolute;bottom:0;left:0;right:0;background:#1e1e1eeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:.5px solid rgba(255,255,255,.15);border-radius:16px 16px 0 0;padding:12px 20px 24px;transform:translateY(100%);transition:transform .35s cubic-bezier(.32,.72,0,1);z-index:15}.viewer-info-panel.visible{transform:translateY(0)}.viewer-info-handle{width:36px;height:4px;border-radius:2px;background:#ffffff4d;margin:0 auto 16px}.viewer-info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:.5px solid rgba(255,255,255,.08)}.viewer-info-row:last-child{border-bottom:none}.viewer-info-label{font-size:14px;color:#ffffff80}.viewer-info-value{font-size:14px;color:#fff;font-weight:500;text-align:right;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{text-align:center;padding:50px 20px}.empty-icon{margin-bottom:16px;opacity:.4}.empty-icon svg{width:48px;height:48px;color:var(--tg-hint)}.empty-title{font-size:17px;font-weight:600;margin-bottom:6px}.empty-text{color:var(--tg-hint);font-size:15px}.auth-error{text-align:center;padding:60px 20px}.auth-error-icon{margin-bottom:20px}.auth-error-icon svg{width:56px;height:56px;color:var(--tg-hint)}.auth-error-title{font-size:20px;font-weight:700;margin-bottom:8px}.auth-error-text{color:var(--tg-hint);font-size:15px}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%) translateY(100px);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:14px;padding:12px 20px;font-size:15px;font-weight:600;border:.5px solid var(--glass-border);box-shadow:0 8px 32px #0000001f;opacity:0;transition:all .3s ease;z-index:300;white-space:nowrap;max-width:90vw;text-overflow:ellipsis;overflow:hidden}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.toast.success{color:#34c759}.toast.error{color:var(--tg-destructive)}.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);z-index:250;align-items:center;justify-content:center}.modal-overlay.active{display:flex}.modal{background:#ffffffe0;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:20px;padding:24px 20px;max-width:320px;width:90%;border:.5px solid var(--glass-border);box-shadow:0 8px 32px #00000026}.modal-title{font-size:17px;font-weight:600;text-align:center;margin-bottom:18px;color:var(--tg-text)}.modal-field{margin-bottom:14px}.modal-field label{display:block;font-size:13px;font-weight:400;color:var(--tg-hint);margin-bottom:5px}.modal-field input,.modal-field textarea{width:100%;max-width:100%;padding:11px 14px;border:.5px solid rgba(0,0,0,.08);border-radius:12px;font-size:17px;font-family:inherit;outline:none;transition:border-color .15s;background:#0000000a;color:var(--tg-text);box-sizing:border-box}.modal-field input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%}.modal-field input:focus,.modal-field textarea:focus{border-color:var(--tg-link);background:#fffc}.modal-field textarea{resize:none;height:60px;font-size:17px}.modal-buttons{display:flex;gap:10px;margin-top:18px}.modal-btn{flex:1;padding:14px;border:none;border-radius:12px;font-size:17px;font-weight:500;cursor:pointer;transition:opacity .15s;font-family:inherit;min-height:48px}.modal-btn:active{opacity:.6}.modal-btn.cancel{background:#0000000f;color:var(--tg-text)}.modal-btn.primary{background:var(--tg-btn);color:var(--tg-btn-text)}.modal-btn.danger{background:var(--tg-destructive);color:#fff}.album-picker{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:20px 20px 0 0;z-index:300;max-height:60vh;overflow-y:auto;border-top:.5px solid var(--glass-border);box-shadow:0 -4px 24px #0000001a}.album-picker.active{display:block}.album-picker-header{padding:14px 18px;border-bottom:.5px solid rgba(0,0,0,.06);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px 20px 0 0}.album-picker-title{font-size:17px;font-weight:600;color:var(--tg-text)}.album-picker-close{background:none;border:none;font-size:17px;color:var(--tg-link);font-weight:400;cursor:pointer;font-family:inherit;min-height:44px;display:flex;align-items:center}.album-picker-list{padding:4px 0}.album-picker-item{padding:12px 18px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:opacity .1s;min-height:48px}.album-picker-item:active{opacity:.6}.album-picker-item-icon{width:40px;height:40px;border-radius:10px;overflow:hidden;background:#0000000a;display:flex;align-items:center;justify-content:center;flex-shrink:0}.album-picker-item-icon img{width:100%;height:100%;object-fit:cover}.album-picker-item-icon svg{width:18px;height:18px;color:var(--tg-hint)}.album-picker-item-name{font-size:17px;font-weight:400;flex:1;color:var(--tg-text)}.album-picker-item-check{color:var(--tg-link)}.album-picker-item-check svg{width:22px;height:22px}.album-picker-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:290}.album-picker-overlay.active{display:block}.viewer-album-btn{width:44px;height:44px;border-radius:50%;background:#ffffff26;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:.5px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.viewer-album-btn:active{background:#ffffff4d}.viewer-album-btn svg{width:20px;height:20px}.viewer-album-btn.hidden{visibility:hidden}.viewer-close svg,.viewer-download svg,.viewer-delete svg{width:20px;height:20px}.viewer-nav svg{width:22px;height:22px}.back-button svg{width:20px;height:20px}.video-type-badge svg{width:14px;height:14px;color:#fff}.gallery-album-header{display:flex;align-items:center;gap:10px;margin-bottom:4px}.gallery-album-name{font-size:20px;font-weight:700;color:var(--tg-text);flex:1;letter-spacing:-.3px}.gallery-album-desc{font-size:15px;color:var(--tg-hint);margin-bottom:14px;line-height:20px}.gallery-album-actions{display:flex;gap:6px}.gallery-album-btn{background:#0000000a;border:none;cursor:pointer;color:var(--tg-link);padding:10px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:background .15s;min-width:44px;min-height:44px}.gallery-album-btn:active{background:#0000001a}.gallery-album-btn svg{width:20px;height:20px}.gallery-album-btn.delete{color:var(--tg-destructive)}.album-hero{position:relative;width:calc(100% + 32px);margin-left:-16px;aspect-ratio:4/3;overflow:hidden;margin-bottom:16px}.album-hero img{width:100%;height:100%;object-fit:cover}.album-hero:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(to bottom,rgba(0,0,0,.45) 0%,rgba(0,0,0,.15) 50%,transparent 100%);pointer-events:none;z-index:1}.album-hero:after{content:"";position:absolute;bottom:0;left:0;right:0;height:65%;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,rgba(0,0,0,.2) 50%,transparent 100%);pointer-events:none}.album-hero-info{position:absolute;bottom:0;left:0;right:0;padding:20px;z-index:1;color:#fff}.album-hero-name{font-size:24px;font-weight:700;letter-spacing:-.4px;margin-bottom:4px;text-shadow:0 1px 4px rgba(0,0,0,.3)}.album-hero-desc{font-size:15px;color:#ffffffd9;line-height:20px;margin-bottom:4px}.album-hero-date{font-size:13px;color:#ffffffb3;font-weight:500}.album-hero-nav{position:absolute;top:12px;left:12px;z-index:2}.album-hero-actions{position:absolute;top:12px;right:12px;display:flex;gap:8px;z-index:2}.album-hero-btn{width:36px;height:36px;border-radius:50%;background:#ffffff26;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:.5px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.album-hero-btn:active{background:#ffffff4d}.album-hero-btn svg{width:18px;height:18px}.album-hero-btn.delete{color:#ff6b6b}.album-hero-empty{width:100%;aspect-ratio:16/9;background:#0000000a;display:flex;align-items:center;justify-content:center;color:var(--tg-hint)}.album-hero-empty-wrap{position:relative;width:calc(100% + 32px);margin-left:-16px;margin-bottom:16px}.album-hero-empty-wrap .album-hero-nav{position:absolute;top:12px;left:12px;z-index:2}.album-hero-empty-wrap .album-hero-actions{position:absolute;top:12px;right:12px;display:flex;gap:8px;z-index:2}.cover-picker-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);z-index:260;flex-direction:column}.cover-picker-overlay.active{display:flex}.cover-picker-header{padding:14px 16px;display:flex;justify-content:space-between;align-items:center}.cover-picker-title{font-size:17px;font-weight:600;color:#fff}.cover-picker-close{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:.5px solid var(--glass-border);border-radius:10px;padding:6px 16px;font-size:15px;font-weight:500;color:var(--tg-link);cursor:pointer;font-family:inherit;min-height:36px;display:flex;align-items:center}.cover-picker-grid{flex:1;overflow-y:auto;padding:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;align-content:start}.cover-picker-item{aspect-ratio:1;overflow:hidden;cursor:pointer;border-radius:2px;position:relative}.cover-picker-item img{width:100%;height:100%;object-fit:cover}.cover-picker-item.selected:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:3px solid var(--tg-link);border-radius:2px}.cover-picker-item .cover-check{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:var(--tg-link);color:#fff;display:none;align-items:center;justify-content:center}.cover-picker-item .cover-check svg{width:14px;height:14px}.cover-picker-item.selected .cover-check{display:flex}.share-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--glass-bg);border:.5px solid var(--glass-border);margin-bottom:8px}.share-item-info{flex:1;min-width:0}.share-item-url{font-size:13px;color:var(--tg-link);word-break:break-all;line-height:1.3}.share-item-date{font-size:11px;color:var(--tg-hint);margin-top:2px}.share-item-actions{display:flex;gap:6px;flex-shrink:0}.share-item-btn{width:32px;height:32px;border-radius:50%;border:none;background:var(--glass-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--tg-link);transition:opacity .15s}.share-item-btn:active{opacity:.6}.share-item-btn.revoke{color:#ff6b6b}.share-item-btn svg{width:16px;height:16px}.share-empty{text-align:center;color:var(--tg-hint);font-size:14px;padding:16px 0}.share-link-url{font-size:12px;color:var(--tg-hint);word-break:break-all;text-align:center;padding:8px;background:#00000008;border-radius:8px;margin-bottom:12px}.share-actions{display:flex;gap:8px;margin-bottom:8px}.share-actions .modal-btn{flex:1}.share-stop-btn{background:none;border:none;color:var(--tg-destructive);font-size:14px;cursor:pointer;padding:8px;font-family:inherit;width:100%}.share-stop-btn:active{opacity:.6}.settings-toggles{padding:4px 0}.settings-toggle-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:.5px solid rgba(0,0,0,.06)}.settings-toggle-row:last-child{border-bottom:none}.settings-toggle-label{font-size:15px;color:var(--tg-text);flex:1}.toggle-switch{width:51px;height:31px;border-radius:16px;background:#78788052;position:relative;cursor:pointer;transition:background .25s;flex-shrink:0}.toggle-switch.active{background:#34c759}.toggle-knob{width:27px;height:27px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .25s;box-shadow:0 1px 3px #0003}.toggle-switch.active .toggle-knob{transform:translate(20px)}.settings-info-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:.5px solid rgba(0,0,0,.06)}.settings-info-icon{width:36px;height:36px;border-radius:10px;background:#007aff1a;display:flex;align-items:center;justify-content:center;color:var(--tg-link)}.settings-info-text{display:flex;flex-direction:column}.settings-info-name{font-size:15px;font-weight:600;color:var(--tg-text)}.settings-info-status{font-size:13px;color:#34c759}.settings-section-label{font-size:13px;font-weight:600;color:var(--tg-hint);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.storage-providers{display:flex;gap:6px;margin-bottom:12px}.storage-provider-btn{flex:1;padding:8px 4px;border-radius:8px;background:#0000000d;text-align:center;font-size:12px;font-weight:500;color:var(--tg-text);cursor:pointer;transition:all .2s;border:2px solid transparent}.storage-provider-btn.active{background:#007aff1a;border-color:var(--tg-link, #007aff);color:var(--tg-link, #007aff)}.storage-token-field{margin-bottom:4px}.storage-token-input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(0,0,0,.12);background:#00000008;font-size:14px;color:var(--tg-text);outline:none;box-sizing:border-box}.storage-token-input:focus{border-color:var(--tg-link, #007aff)}.storage-hint{font-size:12px;color:var(--tg-hint);margin-top:6px;line-height:1.4}.storage-hint b{color:var(--tg-link, #007aff)}.storage-status{font-size:13px;margin-top:6px;font-weight:500}.storage-status.connected{color:#34c759}.storage-status.disconnected{color:var(--tg-hint)}.settings-divider{height:.5px;background:#00000014;margin:12px 0}.dark-theme .toggle-switch{background:#7878807a}.dark-theme .toggle-switch.active{background:#34c759}.dark-theme .settings-toggle-row,.dark-theme .settings-info-row{border-color:#ffffff14}.dark-theme .storage-provider-btn{background:#ffffff14}.dark-theme .storage-provider-btn.active{background:#007aff33}.dark-theme .storage-token-input{background:#ffffff14;border-color:#ffffff1f;color:var(--tg-text)}.dark-theme .settings-divider{background:#ffffff14}.shared-header{padding:16px;text-align:center;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:.5px solid var(--glass-border);margin:0 -16px}.shared-header-title{font-size:20px;font-weight:700;color:var(--tg-text)}.shared-header-desc{font-size:14px;color:var(--tg-hint);margin-top:4px}.shared-header-meta{font-size:13px;color:var(--tg-hint);margin-top:6px}body.dark-theme{background:linear-gradient(170deg,#0d1117,#161b22,#1c2128 60%,#0d1117);--tg-text: #E6EDF3;--tg-hint: #8B949E;--tg-section-header: #8B949E;--tg-subtitle: #8B949E;--tg-bg: #0D1117;--tg-bg2: #161B22;--tg-separator: rgba(255, 255, 255, .08);--glass-bg: rgba(255, 255, 255, .06);--glass-border: rgba(255, 255, 255, .1);--glass-shadow: 0 2px 16px rgba(0, 0, 0, .3)}body.dark-theme .profile-card{background:#ffffff14;border-bottom-color:#ffffff1f;box-shadow:0 1px #ffffff0d inset,0 2px 16px #0003}body.dark-theme .settings-btn{background:#ffffff14}body.dark-theme .settings-btn:active{background:#ffffff29}body.dark-theme .theme-toggle-btn{background:#ffffff14}body.dark-theme .theme-toggle-btn:active{background:#ffffff29}body.dark-theme .upload-btn-main{background:#ffffff14;border-color:#ffffff1a;box-shadow:0 1px #ffffff0a inset,0 2px 16px #0003}body.dark-theme .gallery-preview{box-shadow:0 2px 16px #0000004d}body.dark-theme .gallery-preview .photo-item{background:#ffffff0d}body.dark-theme .gallery-preview-empty{background:#ffffff14;border-color:#ffffff1a}body.dark-theme .gallery-more-card{background:#ffffff14!important}body.dark-theme .album-card{box-shadow:0 2px 16px #0006}body.dark-theme .album-cover{background:#ffffff0d}body.dark-theme .toast{background:#1e1e1ed9;border-color:#ffffff1f;box-shadow:0 8px 32px #0006}body.dark-theme .modal{background:#2c2c2ee0;border-color:#ffffff1f;box-shadow:0 8px 32px #00000080}body.dark-theme .modal-field input,body.dark-theme .modal-field textarea{background:#ffffff14;border-color:#ffffff1a}body.dark-theme .modal-field input:focus,body.dark-theme .modal-field textarea:focus{background:#ffffff1f}body.dark-theme .modal-btn.cancel{background:#ffffff1a}body.dark-theme .modal-field input[type=date]{color-scheme:dark}body.dark-theme .upload-modal{background:#2c2c2ee0;border-color:#ffffff1f}body.dark-theme .album-picker{background:#2c2c2eeb;border-top-color:#ffffff1f;box-shadow:0 -4px 24px #0006}body.dark-theme .album-picker-header{background:#2c2c2ed9;border-bottom-color:#ffffff0f}body.dark-theme .album-picker-item-icon{background:#ffffff0f}body.dark-theme .gallery-album-btn{background:#ffffff14}body.dark-theme .gallery-album-btn:active{background:#ffffff29}body.dark-theme .gallery-header-bar{background:#ffffff14;border-bottom-color:#ffffff1f;box-shadow:0 1px #ffffff0d inset,0 2px 16px #0003}body.dark-theme .gallery-back-circle,body.dark-theme .gallery-nav-btn{background:#ffffff1a;border-color:#ffffff26;box-shadow:none}body.dark-theme .album-hero-empty{background:#ffffff0f}body.dark-theme .profile-cover img{opacity:.15}body.dark-theme .profile-cover-gradient{background:linear-gradient(135deg,#6394ff14,#b380ff0f,#ff94c80d 70%,#63c8ff0f)}body.dark-theme .cover-picker-close{background:#ffffff14;border-color:#ffffff1f}body.dark-theme .selection-bar{background:#1e1e1ed9;border-top-color:#ffffff1f;box-shadow:0 -2px 16px #0006}body.dark-theme .favorites-empty{background:#ffffff14;border-color:#ffffff1a}body.dark-theme .cover-picker-header{background:#2c2c2ed9}body.dark-theme .progress-container{background:#ffffff14}body.dark-theme .dashboard-storage-icon{background:#007aff26}body.dark-theme .dashboard-album-cover{background:#ffffff0f}body.dark-theme .dashboard-shared-empty{background:#ffffff0f;border-color:#ffffff1a}@media(min-width:400px){.photos-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:500px){.photos-grid{grid-template-columns:repeat(5,1fr)}}@media(max-width:600px){.viewer-nav{display:none}}@media(min-width:768px){body{background:#e8edf5}body.dark-theme{background:#0d1117}.app-container{max-width:480px;margin:20px auto;min-height:calc(100vh - 40px);overflow:clip;background:var(--tg-bg, #FFFFFF);border-radius:16px;border:.5px solid rgba(0,0,0,.1);box-shadow:0 4px 24px #00000014;position:relative}body.dark-theme .app-container{background:#161b22;border-color:#ffffff14;box-shadow:0 4px 24px #0000004d}.photos-grid{grid-template-columns:repeat(4,1fr)!important;gap:3px}.selection-bar{max-width:540px;left:50%;right:auto;transform:translate(-50%)}.selection-bar.active{display:flex}.photo-viewer{top:20px;bottom:20px;left:50%;right:auto;width:100%;max-width:540px;transform:translate(-50%);border-radius:16px;box-shadow:0 0 0 9999px #0009;overflow:hidden}.photo-viewer .viewer-header{left:0;right:0;max-width:none;transform:none;width:auto;border-radius:16px 16px 0 0}.photo-viewer .viewer-footer{left:0;right:0;max-width:none;transform:none;width:auto}.photo-viewer .viewer-info-panel{border-radius:0 0 16px 16px}.album-picker{max-width:540px;left:50%;right:auto;transform:translate(-50%)}.modal{max-width:360px}}
