:root{--color-primary: #4361ee;--color-primary-light: #4895ef;--color-primary-dark: #3f37c9;--color-accent: #f72585;--color-text-primary: #333;--color-text-secondary: #666;--color-text-tertiary: #999;--color-bg-primary: #fff;--color-bg-secondary: #f8f9fa;--color-bg-tertiary: #e9ecef;--color-border: #dee2e6;--color-like: #e63946;--color-success: #38b000;--color-warning: #fcbf49;--color-error: #d62828;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--transition-fast: .2s ease;--transition-normal: .3s ease;--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}body{font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-bg-secondary);margin:0;padding:0;line-height:1.5}.icon{width:24px;height:24px}.icon-small{width:16px;height:16px}.button-icon{width:18px;height:18px;margin-right:8px}.loginPg{display:flex;justify-content:center;align-items:center;height:100vh}.loginPg-form{width:20rem}.loginPg-form-header-text{margin-bottom:1rem}.loginPg-form input{padding:.5rem;width:100%;border-radius:.5rem;border:none}.login-btn{width:100%;padding:15px;border:none;border-radius:25px;background-color:#2dbfbf;color:#fff;font-size:18px;font-weight:700;cursor:pointer;transition:background-color .3s ease;margin-top:10px;margin-bottom:25px}.loginPg-form-input{width:100%}.page-title{font-size:2rem;font-weight:600;margin:0;color:var(--color-text-primary)}.page-subtitle{color:var(--color-text-secondary);margin-top:.5rem;margin-bottom:0}.section-title{font-size:1.5rem;font-weight:600;margin:0;color:var(--color-text-primary)}.loading-spinner{width:48px;height:48px;border-radius:50%;border:3px solid rgba(67,97,238,.2);border-top-color:var(--color-primary);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{background-color:#ffebee;border-left:4px solid var(--color-error);color:#c62828;padding:1rem;margin-bottom:1rem;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.dashboard-main{min-height:100vh;background-color:var(--color-bg-secondary)}.dashboard-header{background-color:var(--color-bg-primary);padding:2rem 0;border-bottom:1px solid var(--color-border)}.header-container{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.header-actions,.header-links{display:flex;align-items:center;gap:1rem}.logout-button{background-color:transparent;color:var(--color-error);border:1px solid var(--color-error);padding:.5rem 1.25rem;border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);margin-left:.5rem}.logout-button:hover{background-color:var(--color-error);color:#fff}.dashboard-container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:3rem}.stats-card{background-color:var(--color-bg-primary);border-radius:var(--radius-md);padding:1.5rem;box-shadow:var(--shadow-sm);display:flex;align-items:center;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.stats-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.stats-icon{width:48px;height:48px;border-radius:50%;background-color:#4361ee1a;display:flex;align-items:center;justify-content:center;margin-right:1rem;color:var(--color-primary)}.stats-icon.user-icon{background-color:#38b0001a;color:var(--color-success)}.stats-icon.upload-icon{background-color:#fcbf491a;color:var(--color-warning)}.stats-info{flex:1}.stats-value{font-size:1.5rem;font-weight:600;margin:0 0 .25rem;color:var(--color-text-primary)}.stats-label{color:var(--color-text-tertiary);margin:0;font-size:.875rem}.stats-title{font-size:1.25rem;font-weight:600;margin:0 0 .25rem;color:var(--color-text-primary)}.stats-description{color:var(--color-text-tertiary);margin:0;font-size:.875rem}.upload-card{cursor:pointer}.upload-link{display:flex;align-items:center;width:100%;text-decoration:none;color:inherit}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.view-all-link{display:flex;align-items:center;color:var(--color-primary);text-decoration:none;font-weight:500;transition:color var(--transition-fast)}.view-all-link:hover{color:var(--color-primary-dark)}.view-all-link .icon-small{margin-left:.5rem}.empty-photos{background-color:var(--color-bg-primary);border-radius:var(--radius-md);padding:3rem;text-align:center;box-shadow:var(--shadow-sm)}.empty-text{color:var(--color-text-secondary);margin-bottom:1.5rem}.upload-button{display:inline-flex;align-items:center;padding:.75rem 1.5rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:500;text-decoration:none;cursor:pointer;transition:background-color var(--transition-fast)}.upload-button:hover{background-color:var(--color-primary-dark)}.recent-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.photo-card{background-color:var(--color-bg-primary);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:transform var(--transition-normal),box-shadow var(--transition-normal);display:block}.photo-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.photo-card-image{position:relative;height:180px;overflow:hidden}.photo-img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.photo-card:hover .photo-img{transform:scale(1.05)}.photo-card-info{padding:1rem}.photo-card-title{font-size:1rem;font-weight:600;margin:0 0 .5rem;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-card-date{color:var(--color-text-tertiary);font-size:.875rem;margin:0}.gallery-page{min-height:100vh;background-color:var(--color-bg-secondary)}.gallery-loading,.gallery-error{display:flex;justify-content:center;align-items:center;min-height:70vh}.gallery-header{background-color:var(--color-bg-primary);padding:1.5rem 0;border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.gallery-title{font-size:1.75rem;font-weight:600;margin:0;color:var(--color-text-primary)}.gallery-actions{display:flex;flex-direction:column;align-items:stretch;gap:1rem}.search-container{position:relative;width:300px}.search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--color-text-tertiary)}.search-input{width:100%;padding:.65rem 1rem .65rem 2.5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;transition:border-color var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--color-primary-light)}.gallery-container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.empty-gallery{background-color:var(--color-bg-primary);border-radius:var(--radius-md);padding:3rem;text-align:center;box-shadow:var(--shadow-sm)}.upload-button-large{display:inline-flex;align-items:center;padding:.75rem 2rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:500;text-decoration:none;cursor:pointer;transition:background-color var(--transition-fast);font-size:1rem}.upload-button-large:hover{background-color:var(--color-primary-dark)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.gallery-item{background-color:var(--color-bg-primary);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.gallery-item:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.gallery-item-image{position:relative;height:200px;overflow:hidden}.gallery-item-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.gallery-item:hover .gallery-item-image img{transform:scale(1.05)}.gallery-item-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,#0000 60%,#0009);opacity:0;display:flex;justify-content:flex-end;align-items:flex-end;padding:1rem;transition:opacity var(--transition-normal)}.gallery-item:hover .gallery-item-overlay{opacity:1}.gallery-item-download{background-color:#fff;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--transition-fast),background-color var(--transition-fast);box-shadow:0 2px 5px #0003}.gallery-item-download:hover{transform:scale(1.1);background-color:var(--color-primary-light)}.download-icon{width:18px;height:18px;color:var(--color-primary)}.gallery-item-download:hover .download-icon{color:#fff}.gallery-item-info{padding:1rem}.gallery-item-title{font-size:1rem;font-weight:600;margin:0 0 .5rem;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-item-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--color-text-tertiary)}.gallery-item-author{font-weight:500}.photo-detail-page{min-height:100vh;background-color:var(--color-bg-secondary);padding-bottom:3rem}.photo-detail-header{padding:1.25rem 0;background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.photo-detail-container{max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex;justify-content:space-between;align-items:center}.back-link{display:inline-flex;align-items:center;color:var(--color-text-secondary);font-weight:500;text-decoration:none;transition:color var(--transition-fast)}.back-link:hover{color:var(--color-primary)}.back-link .icon{width:18px;height:18px;margin-right:.5rem}.photo-detail-card{background-color:var(--color-bg-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);margin-top:2rem}.photo-detail-image-container{position:relative;width:100%;background-color:#000;overflow:hidden}.photo-detail-image{width:100%;max-height:80vh;object-fit:contain;display:block;margin:0 auto}.photo-detail-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to top,#0009,#0000 40%);opacity:0;transition:opacity var(--transition-normal)}.photo-detail-image-container:hover .photo-detail-overlay{opacity:1}.photo-detail-title-overlay{position:absolute;bottom:0;left:0;right:0;padding:2rem}.photo-detail-title-overlay h1{color:#fff;font-size:2rem;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.5)}.photo-detail-content{padding:0}.photo-detail-info{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--color-border)}.photo-detail-author{display:flex;align-items:center}.author-avatar{width:48px;height:48px;border-radius:50%;background-color:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.25rem;margin-right:1rem}.author-info{display:flex;flex-direction:column}.author-name{font-size:1.125rem;font-weight:600;margin:0;color:var(--color-text-primary)}.upload-date{font-size:.875rem;color:var(--color-text-tertiary)}.photo-detail-actions{display:flex;align-items:center;gap:.75rem}.action-button{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:.5rem;border-radius:50%;cursor:pointer;color:var(--color-text-secondary);transition:background-color var(--transition-fast),color var(--transition-fast)}.action-button:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.action-button.liked{color:var(--color-like)}.action-button.liked:hover{background-color:#e639461a}.action-button .icon{width:22px;height:22px}.action-count{font-size:.875rem;margin-left:.25rem}.action-text{margin-left:.5rem;font-size:.875rem;font-weight:500}.download-button{background-color:var(--color-primary);color:#fff;border-radius:var(--radius-sm);padding:.5rem 1rem}.download-button:hover{background-color:var(--color-primary-dark);color:#fff}.download-button:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:not-allowed}.more-options{margin-left:.5rem}.photo-detail-description{padding:1.5rem;border-bottom:1px solid var(--color-border)}.photo-detail-description p{margin:0;line-height:1.6;color:var(--color-text-secondary);font-size:1rem}.photo-detail-comments{padding:1.5rem}.comments-heading{font-size:1.25rem;font-weight:600;margin:0 0 1.5rem;color:var(--color-text-primary);display:flex;align-items:center}.comments-count{font-size:1rem;color:var(--color-text-tertiary);margin-left:.5rem}.comment-form{display:flex;margin-bottom:2rem;gap:.5rem}.comment-input{flex:1;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.95rem;transition:border-color var(--transition-fast)}.comment-input:focus{outline:none;border-color:var(--color-primary-light)}.comment-submit{padding:.75rem 1.25rem;background-color:var(--color-primary);color:#fff;font-weight:500;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast)}.comment-submit:hover{background-color:var(--color-primary-dark)}.comment-submit:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:not-allowed}.no-comments{text-align:center;padding:2rem;color:var(--color-text-tertiary);background-color:var(--color-bg-secondary);border-radius:var(--radius-md);font-style:italic}.comments-list{display:flex;flex-direction:column;gap:1.25rem}.comment-item{display:flex;gap:1rem}.comment-avatar{width:36px;height:36px;border-radius:50%;background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;flex-shrink:0}.comment-content{flex:1}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.comment-author{font-weight:600;color:var(--color-text-primary);font-size:.95rem}.comment-date{font-size:.75rem;color:var(--color-text-tertiary)}.comment-text{margin:0;line-height:1.5;color:var(--color-text-secondary);font-size:.95rem}.upload-page{min-height:100vh;background-color:var(--color-bg-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem}.upload-container{width:100%;max-width:500px;background-color:var(--color-bg-primary);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-md)}.upload-title{font-size:1.75rem;font-weight:600;margin:0 0 2rem;text-align:center;color:var(--color-text-primary)}.form-group{margin-bottom:1.5rem}.form-label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--color-text-primary)}.form-input{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:1rem;transition:border-color var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-primary-light)}.form-textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:1rem;resize:vertical;min-height:100px;transition:border-color var(--transition-fast)}.form-textarea:focus{outline:none;border-color:var(--color-primary-light)}.upload-preview{margin-top:1rem;position:relative}.preview-image{width:100%;height:250px;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:1rem}.preview-actions{display:flex;gap:.75rem}.preview-button{flex:1;padding:.65rem 1rem;border-radius:var(--radius-sm);font-weight:500;border:none;cursor:pointer;transition:background-color var(--transition-fast)}.change-button{background-color:var(--color-primary);color:#fff}.change-button:hover{background-color:var(--color-primary-dark)}.remove-button{background-color:var(--color-error);color:#fff}.remove-button:hover{background-color:#b91c1c}.file-input-hidden{display:none}.file-drop-area{border:2px dashed var(--color-border);border-radius:var(--radius-sm);padding:2rem;text-align:center;cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.file-drop-area:hover{border-color:var(--color-primary-light);background-color:#4361ee0d}.upload-icon-large{width:48px;height:48px;color:var(--color-text-tertiary);margin-bottom:1rem}.drop-text{margin:0;color:var(--color-text-secondary)}.drop-subtext{margin:.5rem 0 0;font-size:.875rem;color:var(--color-text-tertiary)}.submit-button{width:100%;padding:.875rem 1.5rem;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:500;font-size:1rem;cursor:pointer;transition:background-color var(--transition-fast)}.submit-button:hover{background-color:var(--color-primary-dark)}.submit-button:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:not-allowed}.error-text{color:var(--color-error);font-size:.875rem;margin-top:.5rem;text-align:center}.photo-organizers{display:flex;gap:2rem;padding:1.5rem;border-bottom:1px solid var(--color-border)}@media (max-width: 768px){.photo-organizers{flex-direction:column;gap:1.5rem}}.album-selector,.tag-manager{flex:1}.selector-title{font-size:1.125rem;font-weight:600;margin:0 0 1rem;color:var(--color-text-primary)}.sub-selector-title{font-size:.9rem;font-weight:500;margin:1.5rem 0 .75rem;color:var(--color-text-secondary)}.selector-form,.tag-form{display:flex;gap:.5rem}.album-select,.album-input,.tag-input{flex:1;padding:.65rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.95rem;transition:border-color var(--transition-fast)}.album-select:focus,.album-input:focus,.tag-input:focus{outline:none;border-color:var(--color-primary-light)}.album-button,.tag-button{padding:.65rem 1.25rem;background-color:var(--color-primary);color:#fff;font-weight:500;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast);white-space:nowrap}.album-button:hover,.tag-button:hover{background-color:var(--color-primary-dark)}.album-button:disabled,.tag-button:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:not-allowed}.tags-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;min-height:1.5rem}.no-tags{font-style:italic;color:var(--color-text-tertiary);font-size:.9rem}.tag-pill{display:inline-flex;align-items:center;padding:.35rem .75rem;background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);border-radius:999px;font-size:.875rem;transition:background-color var(--transition-fast)}.tag-name{margin-right:.5rem}.tag-remove{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:#0000001a;color:var(--color-text-secondary);font-size:1rem;line-height:1;cursor:pointer;transition:all var(--transition-fast)}.tag-remove:hover{background:#0003;color:var(--color-text-primary)}.error-message{background-color:#ffebee;color:#c62828;padding:.75rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.9rem}.loading-message{color:var(--color-text-secondary);font-style:italic;margin-bottom:1rem;text-align:center;padding:1rem;background-color:var(--color-bg-secondary);border-radius:var(--radius-sm)}.current-albums{margin-bottom:1.5rem}.album-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.album-chip{display:inline-flex;align-items:center;padding:.4rem .8rem;background-color:#4f46e51a;color:var(--color-primary);border-radius:999px;font-size:.875rem;transition:background-color var(--transition-fast)}.album-chip-title{margin-right:.5rem}.success-message{background-color:#e8f5e9;color:#2e7d32;padding:.75rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.9rem}.album-gallery-page{min-height:100vh;background-color:var(--color-bg-secondary)}.album-create-form{display:flex;align-items:center;gap:.75rem}.album-input{padding:.65rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.95rem;min-width:250px;transition:border-color var(--transition-fast)}.album-input:focus{outline:none;border-color:var(--color-primary-light)}.album-create-button{padding:.65rem 1.25rem;background-color:var(--color-primary);color:#fff;font-weight:500;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast)}.album-create-button:hover{background-color:var(--color-primary-dark)}.album-create-button:disabled{background-color:var(--color-bg-tertiary);color:var(--color-text-tertiary);cursor:not-allowed}.albums-container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.album-card{background-color:var(--color-bg-primary);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:transform var(--transition-normal),box-shadow var(--transition-normal);display:block}.album-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.album-cover{height:180px;background-color:var(--color-bg-tertiary);position:relative}.album-cover-img{width:100%;height:100%;object-fit:cover}.album-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.placeholder-icon{width:48px;height:48px;color:var(--color-text-tertiary);opacity:.5}.album-info{padding:1rem}.album-title{font-size:1.125rem;font-weight:600;margin:0 0 .5rem;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-count{font-size:.875rem;color:var(--color-text-tertiary);margin:0}.album-detail-page{min-height:100vh;background-color:var(--color-bg-secondary)}.album-detail-header{background-color:var(--color-bg-primary);padding:2rem 0;border-bottom:1px solid var(--color-border)}.album-detail-title{font-size:2rem;font-weight:600;margin:1rem 0 .5rem;color:var(--color-text-primary)}.album-detail-description{color:var(--color-text-secondary);margin:.5rem 0;max-width:700px}.album-detail-meta{display:flex;gap:1.5rem;margin-top:1rem;color:var(--color-text-tertiary);font-size:.9rem}.album-detail-container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.empty-album,.empty-albums{background-color:var(--color-bg-primary);border-radius:var(--radius-md);padding:3rem;text-align:center;box-shadow:var(--shadow-sm)}.album-chip-container{display:inline-flex;align-items:center;margin-right:.5rem;margin-bottom:.5rem}.album-chip{display:inline-flex;align-items:center;padding:.4rem .8rem;background-color:#4f46e51a;color:var(--color-primary);border-radius:999px 0 0 999px;font-size:.875rem;transition:background-color var(--transition-fast);text-decoration:none}.album-chip:hover{background-color:#4f46e533}.album-chip-title{margin-right:.25rem}.album-chip-remove{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background-color:#4f46e51a;color:var(--color-primary);font-size:1rem;line-height:1;cursor:pointer;transition:all var(--transition-fast);border-radius:0 999px 999px 0}.imgUpload img{max-width:500px!important}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding:1rem;background-color:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.pagination-button{display:inline-flex;align-items:center;padding:.5rem 1rem;background-color:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-weight:500;transition:all var(--transition-fast)}.pagination-button:hover:not(:disabled){background-color:var(--color-primary-light);color:#fff;border-color:var(--color-primary-light)}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-button .h-5{width:20px;height:20px;margin:0 4px}.pagination-info{display:flex;flex-direction:column;align-items:center;font-size:.9rem}.pagination-total{font-size:.8rem;color:var(--color-text-tertiary);margin-top:.25rem}@media (max-width: 640px){.pagination-controls{flex-direction:column;gap:1rem}.pagination-button{width:100%;justify-content:center}.pagination-info{order:-1;margin-bottom:.5rem}}.theme-toggle{display:flex;align-items:center;gap:.5rem;background-color:var(--color-bg-tertiary);border-radius:9999px;padding:.25rem;margin-left:1rem}.theme-btn{background:none;border:none;color:var(--color-text-tertiary);width:2rem;height:2rem;border-radius:9999px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast)}.theme-btn:hover{color:var(--color-text-primary);background-color:#0000000d}.theme-btn.active{color:var(--color-primary);background-color:var(--color-bg-primary);box-shadow:var(--shadow-sm)}@media (prefers-color-scheme: dark){.theme-btn:hover{background-color:#ffffff1a}.theme-btn.active{background-color:var(--color-bg-primary)}}.theme-toggle-container{display:flex;align-items:center}@media (max-width: 768px){.theme-toggle{margin-left:0;margin-top:.5rem}.theme-toggle-container{width:100%;justify-content:center;margin-top:.5rem}}:root{--color-primary: #4361ee;--color-primary-light: #4895ef;--color-primary-dark: #3f37c9;--color-accent: #f72585;--color-text-primary: #333;--color-text-secondary: #666;--color-text-tertiary: #999;--color-bg-primary: #fff;--color-bg-secondary: #f8f9fa;--color-bg-tertiary: #e9ecef;--color-border: #dee2e6;--color-like: #e63946;--color-success: #38b000;--color-warning: #fcbf49;--color-error: #d62828;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}@media (prefers-color-scheme: dark){:root{--color-primary: #4d76fd;--color-primary-light: #5ea2fd;--color-primary-dark: #3a57d9;--color-accent: #f83f93;--color-text-primary: #f5f5f5;--color-text-secondary: #b0b0b0;--color-text-tertiary: #808080;--color-bg-primary: #121212;--color-bg-secondary: #1e1e1e;--color-bg-tertiary: #2d2d2d;--color-border: #404040;--color-like: #f25d69;--color-success: #4ac236;--color-warning: #ffd166;--color-error: #e44d4d;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px rgba(0, 0, 0, .25);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3), 0 4px 6px -2px rgba(0, 0, 0, .2)}.gallery-item,.photo-card,.stats-card,.album-card,.photo-detail-card{background-color:var(--color-bg-primary);border:1px solid var(--color-border)}.gallery-item-image img,.photo-card-image img,.album-cover-img{opacity:.9}.stats-icon{background-color:#4d76fd33}.stats-icon.user-icon{background-color:#4ac23633}.stats-icon.upload-icon{background-color:#ffd16633}.gallery-header,.dashboard-header,.photo-detail-header,.album-detail-header{background-color:#181818;border-bottom:1px solid var(--color-border)}.search-input,.comment-input,.form-input,.form-textarea,.album-input,.tag-input{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border)}.search-input:focus,.comment-input:focus,.form-input:focus,.form-textarea:focus,.album-input:focus,.tag-input:focus{border-color:var(--color-primary)}.author-avatar,.comment-avatar{background-color:var(--color-primary);color:#fff}.pagination-controls{background-color:var(--color-bg-primary);border:1px solid var(--color-border)}.pagination-button{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.pagination-button:hover:not(:disabled){background-color:var(--color-primary)}.tag-pill{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.error-message{background-color:#e44d4d33;border-left:4px solid var(--color-error);color:#ff8080}.empty-gallery,.empty-photos,.empty-albums,.empty-album{background-color:var(--color-bg-primary);border:1px solid var(--color-border)}.photo-detail-overlay{background:linear-gradient(to top,#000c,#0000 40%)}.photo-detail-info,.photo-detail-comments,.photo-detail-description,.photo-organizers{border-color:var(--color-border)}.album-select{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border)}.album-chip,.album-chip-remove{background-color:#4d76fd33;color:var(--color-primary-light)}.action-button:hover{background-color:var(--color-bg-tertiary)}input.appearance-none{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border)}}.theme-auto{position:fixed;bottom:1rem;right:1rem;background-color:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:.75rem;padding:.25rem .5rem;border-radius:9999px;opacity:.7;z-index:50}@media (prefers-color-scheme: dark){img{transition:opacity .3s ease}img.loading{opacity:.5}}@media (max-width: 1024px){.photo-detail-info{flex-direction:column;align-items:flex-start;gap:1.5rem}.photo-detail-actions{width:100%;justify-content:space-between}.dashboard-stats{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (max-width: 768px){.header-container,.photo-detail-container,.dashboard-container,.gallery-container{padding:0 1rem}.gallery-actions{flex-direction:column;align-items:stretch}.search-container{width:100%}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.photo-detail-title-overlay h1{font-size:1.5rem}.action-button .icon{width:20px;height:20px}.photo-detail-actions{gap:.5rem}.action-text{display:none}.download-button{padding:.5rem;border-radius:50%}.comment-form{flex-direction:column}.comment-input{margin-bottom:.5rem}}@media (max-width: 640px){.page-title{font-size:1.5rem}.header-container{flex-direction:column;align-items:flex-start;gap:1rem}.header-actions{width:100%;flex-direction:column;align-items:flex-start}.header-links{width:100%;justify-content:space-between}.theme-toggle-container{width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}.logout-button{align-self:flex-start}.recent-photos-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.photo-card-image{height:140px}.gallery-item-image{height:160px}.author-avatar{width:40px;height:40px;font-size:1rem}}
