.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);position:relative;overflow:hidden}.pony-background{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.pony{position:absolute;font-size:3rem;opacity:.1;animation:float 6s ease-in-out infinite}.pony-1{top:10%;left:10%;animation-delay:0s}.pony-2{top:60%;right:10%;animation-delay:2s}.pony-3{bottom:20%;left:20%;animation-delay:4s}.pony-4{top:30%;right:20%;animation-delay:1s}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(10deg)}}.login-card{background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:2.5rem;border-radius:24px;box-shadow:0 20px 60px #0000001a,0 0 0 1px #fff3;width:100%;max-width:420px;position:relative;z-index:1}.login-header{text-align:center;margin-bottom:2.5rem}.app-icon{font-size:4rem;margin-bottom:1rem;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.login-header h1{font-size:2.5rem;font-weight:800;margin:0 0 .5rem;background:linear-gradient(135deg,#ec4899,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-header p{color:#6b7280;font-size:1.1rem;margin:0;font-weight:500}.login-form{margin-bottom:2rem}.input-group{margin-bottom:1.25rem}.ios-input{width:100%;padding:1.25rem 1rem;border:2px solid #e5e7eb;border-radius:16px;font-size:1.1rem;background:#ffffff;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px #0000000d}.ios-input:focus{outline:none;border-color:#ec4899;box-shadow:0 0 0 4px #ec48991a,0 4px 12px #0000001a;transform:translateY(-2px)}.ios-input::placeholder{color:#9ca3af}.ios-button{width:100%;padding:1.25rem;border:none;border-radius:16px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:.75rem;position:relative;overflow:hidden}.ios-button.primary{background:linear-gradient(135deg,#ec4899,#8b5cf6);color:#fff;box-shadow:0 4px 14px #ec489966,0 0 0 1px #ffffff1a}.ios-button.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #ec489980,0 0 0 1px #fff3}.ios-button.primary:active{transform:translateY(0)}.ios-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.loading-spinner{width:20px;height:20px;border:2px solid transparent;border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.login-footer{text-align:center;padding-top:1.5rem;border-top:1px solid #f3f4f6}.switch-mode{background:none;border:none;color:#ec4899;font-size:1rem;font-weight:600;cursor:pointer;padding:.75rem 1.5rem;border-radius:12px;transition:all .3s ease;text-decoration:none}.switch-mode:hover{background:rgba(236,72,153,.1);transform:translateY(-1px)}@media (max-width: 480px){.login-container{padding:.5rem}.login-card{padding:2rem 1.5rem}.login-header h1{font-size:2rem}.app-icon{font-size:3rem}.pony{font-size:2rem}}@media (prefers-color-scheme: dark){.login-card{background:rgba(17,24,39,.95);color:#fff}.ios-input{background:#374151;border-color:#4b5563;color:#fff}.ios-input::placeholder{color:#9ca3af}.login-header p{color:#d1d5db}.login-footer{border-top-color:#374151}}.gallery{margin-top:2rem}.gallery h3{color:var(--text);margin-bottom:1.5rem;font-size:1.5rem;font-weight:600}.gallery-empty{text-align:center;color:var(--text-secondary);padding:4rem 2rem;background:var(--surface);border-radius:16px;border:2px dashed var(--border)}.gallery-empty p{font-size:1.125rem;margin:0;color:var(--text-secondary)}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.photo-card{background:var(--surface);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);transition:all .3s ease;border:1px solid var(--border);position:relative}.photo-card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:0 12px 30px #ec489926}.photo-card img{width:100%;height:200px;object-fit:cover;display:block}.photo-info{display:flex;justify-content:space-between;align-items:center;padding:.5rem;gap:.5rem}.photo-info span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8rem}.share-btn{background:var(--primary);border:none;color:#fff;padding:.5rem;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .3s ease;flex-shrink:0;margin-left:.5rem}.share-btn:hover{background:var(--primary-hover);transform:scale(1.1)}.share-modal{position:absolute;top:100%;left:0;right:0;background:var(--surface);padding:1rem;border-radius:12px;box-shadow:0 8px 25px #00000026;z-index:10;border:1px solid var(--border);margin-top:.5rem;display:flex;flex-direction:column;gap:.75rem}.share-modal input{padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--background);color:var(--text);font-size:.875rem}.share-modal input:focus{outline:none;border-color:var(--primary)}.share-modal button{padding:.75rem;border:none;border-radius:8px;cursor:pointer;font-size:.875rem;transition:all .3s ease}.share-modal button:first-of-type{background:var(--primary);color:#fff}.share-modal button:first-of-type:hover{background:var(--primary-hover)}.share-modal button:last-of-type{background:var(--background);color:var(--text-secondary);border:1px solid var(--border)}.share-modal button:last-of-type:hover{background:var(--surface);color:var(--text)}.photo-card *,.photo-card .photo-info,.photo-card .share-modal{color:var(--text)!important}.photo-card .share-modal input{color:var(--text)!important;background:var(--background)!important}.photo-card .share-modal input::placeholder{color:var(--text-secondary)!important}@media (max-width: 768px){.photos-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.photo-card img{height:150px}.photo-info{padding:.75rem}.share-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:300px}}.selection-panel{position:sticky;top:0;background:var(--surface-elevated);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;z-index:10;box-shadow:var(--shadow)}.selection-info{font-weight:600;color:var(--text-primary)}.selection-actions{display:flex;gap:.75rem}.photo-card{position:relative;cursor:pointer;transition:all .3s ease}.photo-card.selected{transform:scale(.95);box-shadow:0 0 0 3px var(--primary)}.photo-checkbox{position:absolute;top:.5rem;left:.5rem;background:rgba(255,255,255,.9);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:.8rem;z-index:2;cursor:pointer}.photo-checkbox:hover{background:white}.album-select{width:100%;padding:.875rem;border:1px solid var(--border);border-radius:12px;background:var(--background);color:var(--text-primary);font-size:.875rem;margin:1rem 0}.album-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ec48991a}.btn-primary,.btn-secondary{padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary:hover{background:var(--surface-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.albums-section{margin-bottom:2rem}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem}.album-card{background:var(--surface-elevated);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid var(--border);cursor:pointer;display:flex;flex-direction:column}.album-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:var(--primary-light)}.album-cover{background:linear-gradient(135deg,var(--primary),var(--primary-dark));height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;position:relative;flex-shrink:0}.folder-icon{font-size:3rem;margin-bottom:.5rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.photo-count{font-size:.75rem;opacity:.9;font-weight:500}.album-info{padding:1.25rem;display:flex;flex-direction:column;flex:1}.album-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;min-height:32px}.album-header h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:.5rem}.album-delete-btn{background:var(--surface);color:var(--text-tertiary);border:1px solid var(--border);padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.album-delete-btn:hover{background:#FEF2F2;color:#dc2626;border-color:#fecaca}.album-desc{color:var(--text-secondary);font-size:.875rem;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;flex:1;min-height:40px}.album-footer{margin-top:auto;padding-top:1rem}.album-share-btn{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);padding:.75rem 1rem;border-radius:10px;cursor:pointer;font-size:.8125rem;font-weight:500;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.375rem;width:100%;min-height:40px}.album-share-btn:hover{background:var(--primary-soft);color:var(--primary);border-color:var(--primary-light)}.create-album-card{border:2px dashed var(--border-strong);background:var(--surface)}.create-album-card:hover{border-color:var(--primary);background:var(--primary-soft)}.create-album-cover{background:transparent;color:var(--text-secondary)}.create-album-card:hover .create-album-cover{color:var(--primary)}.create-album-content{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.75rem}.create-album-card .add-icon{color:var(--text-secondary);transition:all .2s ease}.create-album-card:hover .add-icon{color:var(--primary)}.create-album-card span{color:var(--text-secondary);font-size:.875rem;font-weight:500;transition:all .2s ease}.create-album-card:hover span{color:var(--primary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--surface-elevated);border-radius:20px;border:1px solid var(--border);box-shadow:var(--shadow-xl);width:100%;max-width:500px;max-height:90vh;overflow:hidden;animation:modalAppear .3s cubic-bezier(.4,0,.2,1)}@keyframes modalAppear{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header h2{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-tertiary);cursor:pointer;padding:.5rem;border-radius:8px;transition:all .2s ease}.close-btn:hover{background:var(--surface);color:var(--text-secondary)}.modal-body{padding:2rem}.album-input,.album-textarea{width:100%;padding:.875rem;border:1px solid var(--border);border-radius:12px;background:var(--background);color:var(--text-primary);font-size:.875rem;margin-bottom:1rem;transition:all .2s ease;font-family:inherit}.album-textarea{resize:vertical;min-height:80px}.create-btn{background:var(--primary);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:12px;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s ease;width:100%;box-shadow:var(--shadow-pink)}.create-btn:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 10px 25px -3px #ec489966}@media (max-width: 768px){.albums-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.album-cover{height:120px}.album-info{padding:1rem}.modal-body{padding:1.5rem}}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-size:.875rem;font-weight:500}.modal-actions{padding:0 2rem 2rem;margin-top:.5rem}.create-btn:disabled{background:var(--text-tertiary);cursor:not-allowed;transform:none;box-shadow:none}.create-btn:disabled:hover{background:var(--text-tertiary);transform:none;box-shadow:none}.album-input,.album-textarea{width:100%;padding:.875rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--background);color:var(--text-primary);font-size:.875rem;transition:all .2s ease;font-family:inherit;box-sizing:border-box}.album-input::placeholder,.album-textarea::placeholder{color:var(--text-tertiary)}.album-input:focus,.album-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #ec48991a}.album-textarea{resize:vertical;min-height:100px;line-height:1.5}.photo-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:fadeIn .3s ease}.photo-modal-content{background:var(--surface-elevated);border-radius:20px;border:1px solid var(--border);box-shadow:var(--shadow-xl);width:100%;max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:scaleIn .3s cubic-bezier(.4,0,.2,1)}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.photo-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid var(--border);background:var(--surface-elevated)}.photo-modal-header h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.photo-modal-header .close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-tertiary);cursor:pointer;padding:.5rem;border-radius:8px;transition:all .2s ease;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.photo-modal-header .close-btn:hover{background:var(--surface);color:var(--text-secondary)}.photo-modal-body{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--background);overflow:auto}.photo-fullsize{max-width:100%;max-height:60vh;object-fit:contain;border-radius:12px;box-shadow:var(--shadow-lg)}.photo-modal-footer{padding:1.5rem 2rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--surface-elevated)}.download-btn,.delete-btn{padding:.75rem 1.5rem;border:none;border-radius:12px;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.download-btn{background:var(--primary);color:#fff;box-shadow:var(--shadow-pink)}.download-btn:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 10px 25px -3px #ec489966}.delete-btn{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.delete-btn:hover{background:var(--primary-soft);color:#fca5a5;border-color:#fca5a5}.photo-info{font-size:.875rem;color:var(--text-tertiary);margin-left:auto}@media (max-width: 768px){.photo-modal-overlay{padding:1rem}.photo-modal-content{border-radius:16px}.photo-modal-header{padding:1.25rem 1.5rem}.photo-modal-body{padding:1rem}.photo-modal-footer{padding:1.25rem 1.5rem;flex-direction:column;align-items:stretch;gap:.75rem}.photo-info{margin-left:0;text-align:center}}.album-view-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--background);z-index:1000;overflow-y:auto}.album-view-content{max-width:1200px;margin:0 auto;padding:2rem}.album-view-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.album-view-info{flex:1}.back-btn{background:none;border:none;color:var(--primary);cursor:pointer;padding:.5rem 0;margin-bottom:1rem;font-size:.875rem;font-weight:500}.album-view-info h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.album-description{color:var(--text-secondary);margin-bottom:.5rem;font-size:1.125rem}.album-meta{color:var(--text-tertiary);font-size:.875rem}.album-view-actions{display:flex;gap:.75rem;align-items:flex-start}.action-btn{background:var(--primary);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:12px;cursor:pointer;font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:.5rem;transition:all .2s ease}.action-btn:hover{background:var(--primary-hover);transform:translateY(-1px)}.album-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.album-photo-card{background:var(--surface);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);transition:all .3s ease;border:1px solid var(--border)}.album-photo-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.album-photo-card img{width:100%;height:200px;object-fit:cover}.album-photo-info{padding:1rem}.album-photo-info span{color:var(--text-primary);font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.album-empty{grid-column:1 / -1;text-align:center;padding:4rem 2rem;color:var(--text-secondary)}.add-first-photo-btn{background:var(--primary);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:12px;cursor:pointer;margin-top:1rem;font-weight:500}.available-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;max-height:400px;overflow-y:auto}.available-photo-card{background:var(--surface);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.available-photo-card:hover{border-color:var(--primary);transform:scale(1.05)}.available-photo-card img{width:100%;height:120px;object-fit:cover}.available-photo-card span{display:block;padding:.5rem;font-size:.75rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-photos-message{text-align:center;color:var(--text-tertiary);padding:2rem}.album-view-loading,.album-view-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;color:var(--text-secondary)}@media (max-width: 768px){.album-view-content{padding:1rem}.album-view-header{flex-direction:column;gap:1rem}.album-view-actions{width:100%;justify-content:space-between}.action-btn{flex:1;justify-content:center}.album-photos-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:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto}.modal-content{background:var(--surface-elevated);border-radius:20px;border:1px solid var(--border);box-shadow:var(--shadow-xl);width:100%;max-width:500px;max-height:90vh;overflow:hidden;animation:modalAppear .3s cubic-bezier(.4,0,.2,1);margin:auto 0}@keyframes modalAppear{0%{opacity:0;transform:scale(.8) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.25rem;font-weight:600;color:var(--text)}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:8px;transition:all .3s ease}.close-btn:hover{background:var(--background);color:var(--text)}.upload-area{border-radius:16px;padding:3rem 2rem;border:2px dashed var(--border);text-align:center;cursor:pointer;transition:all .3s ease;margin:1.5rem 2rem 2rem;background:var(--background)}.upload-area:hover{background:var(--surface-soft);background:var(--surface)}.upload-area.drag-active{background:var(--primary-soft);border-color:var(--primary);color:var(--text-primary)}.upload-area.uploading{cursor:not-allowed;opacity:.7}.upload-prompt{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-prompt svg,.upload-prompt .upload-icon{font-size:3rem;margin-bottom:.5rem}.upload-prompt h3{font-size:1.25rem;font-weight:600;color:var(--text)}.upload-prompt p{color:var(--text-secondary);margin:0}.upload-hint{font-size:.875rem;opacity:.7}.uploading-state{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-spinner{width:40px;height:40px;border:3px solid var(--border);border-top:3px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.modal-overlay{padding:.5rem}.modal-content{border-radius:16px}.modal-header{padding:1.25rem 1.5rem}.upload-area{margin:1rem 1.5rem 1.5rem;padding:2rem 1.5rem}}.modal-body{padding:1.5rem;max-height:60vh;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:var(--surface);border-radius:3px}.modal-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.selected-files{margin-top:1.5rem;border:1px solid var(--border);border-radius:8px;padding:1rem;background:var(--surface)}.files-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;position:sticky;top:0;background:var(--surface);padding:.5rem 0;z-index:5}.files-header h4{margin:0;font-size:.9rem;color:var(--text-secondary)}.clear-btn{background:none;border:1px solid var(--border);color:var(--text-secondary);padding:.25rem .5rem;border-radius:4px;font-size:.8rem;cursor:pointer}.clear-btn:hover:not(:disabled){background:var(--surface-hover)}.clear-btn:disabled{opacity:.5;cursor:not-allowed}.files-list{max-height:200px;overflow-y:auto}.files-list::-webkit-scrollbar{width:4px}.file-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem;border-bottom:1px solid var(--border-light)}.file-name{font-size:.85rem;color:var(--text-primary);flex:1}.file-size{font-size:.75rem;color:var(--text-tertiary);margin:0 .5rem}.remove-file-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.25rem;border-radius:4px;font-size:.8rem}.remove-file-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--error)}.remove-file-btn:disabled{opacity:.5;cursor:not-allowed}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid var(--border);margin-top:0;background:var(--surface-elevated);position:sticky;bottom:0;z-index:10}.btn-primary,.btn-secondary{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary{background:var(--primary);color:#fff;border:none}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.modal-overlay{padding:.5rem;align-items:center}.modal-content{max-height:95vh}.modal-body{max-height:70vh;padding:1rem}.modal-actions{padding:1rem;flex-direction:column-reverse}.modal-actions button{width:100%}.selected-files{margin-top:1rem;padding:.75rem}.file-item{padding:.375rem;font-size:.8rem}}.overall-progress{margin-bottom:1.5rem;padding:1rem;background:var(--surface);border-radius:12px;border:1px solid var(--border)}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:var(--text-secondary)}.progress-bar{width:100%;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.progress-bar.small{height:6px;width:60px}.progress-fill{height:100%;background:linear-gradient(90deg,#ec4899,#8b5cf6);border-radius:4px;transition:width .3s ease}.progress-text{margin-top:.5rem;font-size:.875rem;color:var(--text-secondary);text-align:center}.file-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-bottom:1px solid var(--border-light);gap:.75rem}.file-item:last-child{border-bottom:none}.file-info{flex:1;min-width:0}.file-name{font-size:.85rem;color:var(--text-primary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:.75rem;color:var(--text-tertiary);display:block;margin-top:.125rem}.file-progress{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.progress-status{font-size:.75rem;color:var(--text-secondary);min-width:30px;text-align:center}.uploading-state{text-align:center}.upload-spinner{width:40px;height:40px;border:3px solid var(--border);border-top:3px solid #ec4899;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@media (max-width: 480px){.file-item{flex-direction:column;align-items:flex-start;gap:.5rem}.file-progress{width:100%;flex:none}.progress-bar.small{flex:1;width:auto}}.notification{position:fixed;top:80px;right:20px;background:var(--surface-elevated);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-xl);padding:0;min-width:300px;max-width:400px;z-index:10000;animation:slideIn .3s ease-out;overflow:hidden}.notification-content{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem}.notification-message{color:var(--text-primary);font-size:.875rem;font-weight:500;line-height:1.4;flex:1;margin-right:1rem}.notification-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.25rem;border-radius:4px;font-size:1rem;transition:all .2s ease;flex-shrink:0}.notification-close:hover{background:var(--surface);color:var(--text-secondary)}.notification-progress{height:3px;background:var(--primary);animation:progressBar 3s linear forwards;transform-origin:left}.notification-success{border-left:4px solid #10B981}.notification-success .notification-progress{background:#10B981}.notification-error{border-left:4px solid #EF4444}.notification-error .notification-progress{background:#EF4444}.notification-warning{border-left:4px solid #F59E0B}.notification-warning .notification-progress{background:#F59E0B}.notification-info{border-left:4px solid var(--primary)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes progressBar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (max-width: 768px){.notification{right:10px;left:10px;min-width:auto;max-width:none}}:root{--primary: #EC4899;--primary-hover: #DB2777;--primary-soft: #FDF2F8;--primary-light: #FBCFE8;--primary-lighter: #FCE7F3;--primary-dark: #BE185D;--background: #FDF2F8;--surface: #FFFFFF;--surface-elevated: #FFFFFF;--surface-soft: #FDF2F8;--text-primary: #1F2937;--text-secondary: #6B7280;--text-tertiary: #9CA3AF;--border: #FBCFE8;--border-strong: #F9A8D4;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-pink: 0 10px 15px -3px rgb(236 72 153 / .1), 0 4px 6px -4px rgb(236 72 153 / .1);--glass: rgba(253, 242, 248, .9);--glass-border: rgba(251, 207, 232, .3)}.dark{--primary: #F472B6;--primary-hover: #EC4899;--primary-soft: #451A3A;--primary-light: #701A75;--primary-lighter: #581C87;--primary-dark: #BE185D;--background: #1A0B1A;--surface: #2D1B2D;--surface-elevated: #3A243A;--surface-soft: #251525;--text-primary: #FDF2F8;--text-secondary: #E5ACCE;--text-tertiary: #C08497;--border: #4A1E4A;--border-strong: #5B275B;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow: 0 1px 3px 0 rgb(0 0 0 / .4), 0 1px 2px -1px rgb(0 0 0 / .4);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .4), 0 2px 4px -2px rgb(0 0 0 / .4);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .4), 0 4px 6px -4px rgb(0 0 0 / .4);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .4), 0 8px 10px -6px rgb(0 0 0 / .4);--shadow-pink: 0 10px 15px -3px rgb(244 114 182 / .2), 0 4px 6px -4px rgb(244 114 182 / .2);--glass: rgba(45, 27, 45, .9);--glass-border: rgba(112, 26, 117, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;background:var(--background);color:var(--text-primary);line-height:1.6;transition:all .3s ease}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#EC4899 0%,#F472B6 50%,#FDA4D3 100%);color:#fff}.loading-spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.3);border-top:3px solid white;border-radius:50%;margin-bottom:1.5rem;animation:spin 1s linear infinite}.loading-text{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#EC4899,#F472B6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.header{background:var(--glass);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--glass-border);padding:.75rem 2rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;height:64px}.logo{font-size:1.375rem;font-weight:800;background:linear-gradient(135deg,#EC4899,#F472B6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.025em}.header-right{display:flex;align-items:center;gap:.75rem}.icon-btn{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.625rem;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.icon-btn:hover{background:var(--primary-soft);border-color:var(--primary-light);color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow-pink)}.user-menu{display:flex;align-items:center;gap:.75rem;background:var(--surface);padding:.625rem 1rem;border-radius:12px;border:1px solid var(--border);font-size:.875rem;font-weight:500;color:var(--text-secondary);box-shadow:var(--shadow-sm)}.logout-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.375rem;border-radius:8px;transition:all .2s ease}.logout-btn:hover{color:var(--text-secondary);background:var(--surface-soft)}.view-tabs{display:flex;gap:.5rem;margin-bottom:2rem;background:var(--surface);padding:.5rem;border-radius:16px;border:1px solid var(--border);box-shadow:var(--shadow-sm)}.tab{flex:1;padding:.75rem 1rem;border:none;border-radius:12px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .3s ease;font-size:.875rem;font-weight:500;display:flex;align-items:center;justify-content:center;gap:.5rem}.tab.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-pink)}.tab:hover:not(.active){background:var(--primary-soft);color:var(--primary)}.main-content{min-height:calc(100vh - 64px);padding:2rem 0;background:var(--background)}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.section{margin-bottom:3rem}.section-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:1.5rem;letter-spacing:-.025em}.floating-upload-btn{position:fixed;bottom:2rem;right:2rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:16px;width:56px;height:56px;cursor:pointer;box-shadow:var(--shadow-xl);display:flex;align-items:center;justify-content:center;z-index:90;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:1.25rem}.floating-upload-btn:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 25px 50px -12px #ec489966}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.header{padding:.75rem 1rem}.container{padding:0 1rem}.user-menu span{display:none}.floating-upload-btn{bottom:1rem;right:1rem;width:52px;height:52px}.section-title{font-size:1.25rem}.view-tabs{flex-direction:column}.tab{padding:1rem}}.subsection-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:2rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.album-photos-section{margin-top:2rem}.notifications-container{position:fixed;top:80px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:.75rem}@media (max-width: 768px){.notifications-container{right:10px;left:10px;top:70px}}.stats-panel.compact-form{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.stats-header h3{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text-primary)}.stats-content-form{display:flex;align-items:flex-end;gap:1rem}.storage-info-form{flex:1}.storage-text-form{font-size:.875rem;color:var(--text-secondary);margin-bottom:.5rem;font-weight:500}.storage-bar-with-percent{display:flex;align-items:center;gap:.75rem}.storage-bar-form{flex:1;height:8px;background:var(--border);border-radius:10px;overflow:hidden}.storage-percent-form{font-size:.875rem;font-weight:600;color:var(--text-primary);min-width:45px;text-align:right}.refresh-stats-btn.compact{background:none;border:none;font-size:1rem;cursor:pointer;padding:.5rem;border-radius:8px;transition:all .2s ease;opacity:.7;align-self:center}.refresh-stats-btn.compact:hover{background:var(--surface);opacity:1;transform:rotate(90deg)}@media (max-width: 768px){.stats-panel.compact-form{padding:1rem}.stats-content-form{flex-direction:column;align-items:stretch;gap:.75rem}.storage-bar-with-percent{gap:.5rem}.refresh-stats-btn.compact{align-self:flex-end}}@media (max-width: 480px){.stats-panel.compact-form{padding:.875rem}.stats-header h3{font-size:.95rem;margin-bottom:.5rem}.storage-text-form{font-size:.8rem}.storage-percent-form{font-size:.8rem;min-width:40px}}
