@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";:root{--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-subtle:#3b82f614;--color-bg:#f1f5f9;--color-bg-alt:#e8edf3;--color-surface:#fff;--color-text:#0f172a;--color-text-light:#64748b;--color-border:#e2e8f0;--shadow-sm:0 1px 3px 0 #0000000f;--shadow-md:0 4px 12px -2px #00000014, 0 2px 6px -2px #0000000d;--shadow-lg:0 10px 24px -4px #0000001f, 0 4px 8px -4px #0000000f;--radius-md:.5rem;--radius-lg:.875rem}[data-theme=dark]{--color-primary:#60a5fa;--color-primary-hover:#93c5fd;--color-primary-subtle:#60a5fa1f;--color-bg:#0f172a;--color-bg-alt:#1e293b;--color-surface:#1e293b;--color-text:#f1f5f9;--color-text-light:#94a3b8;--color-border:#334155;--shadow-sm:0 1px 3px 0 #0000004d;--shadow-md:0 4px 12px -2px #0006, 0 2px 6px -2px #0000004d;--shadow-lg:0 10px 24px -4px #00000080, 0 4px 8px -4px #0000004d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--color-primary:#60a5fa;--color-primary-hover:#93c5fd;--color-primary-subtle:#60a5fa1f;--color-bg:#0f172a;--color-bg-alt:#1e293b;--color-surface:#1e293b;--color-text:#f1f5f9;--color-text-light:#94a3b8;--color-border:#334155;--shadow-sm:0 1px 3px 0 #0000004d;--shadow-md:0 4px 12px -2px #0006, 0 2px 6px -2px #0000004d;--shadow-lg:0 10px 24px -4px #00000080, 0 4px 8px -4px #0000004d}}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-center{align-items:center;display:flex}.gap-sm{gap:.5rem}.gap-md{gap:1rem}.mb-md{margin-bottom:1rem}.mb-lg{margin-bottom:2rem}.mt-sm{margin-top:.5rem}.mt-auto{margin-top:auto}.text-light{color:var(--color-text-light)}.text-sm{font-size:.875rem}.font-medium{font-weight:500}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-sm{padding:.35rem .75rem;font-size:.8125rem}.btn-primary{background-color:var(--color-primary);color:#fff!important}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-outline{color:var(--color-text);border:1px solid var(--color-border);background-color:#0000}.btn-outline:hover{background-color:var(--color-bg-alt)}.btn:disabled{opacity:.6;cursor:not-allowed}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--color-border);cursor:default;padding:1.5rem;transition:transform .2s,box-shadow .2s}.card.hoverable:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.form-group{margin-bottom:1rem}.form-label{margin-bottom:.5rem;font-weight:500;display:block}.form-input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);padding:.75rem;font-family:inherit;font-size:1rem;transition:border-color .2s,background .25s,color .25s}.form-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3b82f61a}.navbar{background-color:color-mix(in srgb, var(--color-surface) 85%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);z-index:100;justify-content:space-between;align-items:center;padding:.875rem 2rem;transition:background-color .25s;display:flex;position:sticky;top:0}.navbar .nav-brand .brand-link{color:var(--color-text);letter-spacing:-.02em;font-size:1.2rem;font-weight:700}.navbar .nav-links{align-items:center;gap:.75rem;display:flex}.navbar .nav-links .nav-profile-link{color:var(--color-text-light);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s}.navbar .nav-links .nav-profile-link:hover{color:var(--color-primary)}.auth-container{justify-content:center;align-items:center;min-height:60vh;display:flex}.auth-card{width:100%;max-width:400px}.auth-btn{width:100%;margin-top:1rem}.auth-footer{text-align:center;margin-top:1rem;font-size:.875rem}.grid{gap:1.5rem;display:grid}.grid.grid-albums{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid.grid-photos{column-count:3;column-gap:1rem;display:block}@media (width<=900px){.grid.grid-photos{column-count:2}}@media (width<=540px){.grid.grid-photos{column-count:1}}.album-card{color:inherit;cursor:pointer;flex-direction:column;gap:.5rem;height:100%;text-decoration:none;display:flex}.album-card .album-link{color:inherit;flex-direction:column;flex:1;gap:.5rem;text-decoration:none;display:flex}.photo-card{break-inside:avoid;width:100%;margin-bottom:1rem;padding:.5rem;display:inline-block}.photo-img{object-fit:contain;border-radius:var(--radius-md);cursor:pointer;width:100%;height:auto;transition:opacity .2s;display:block}.photo-img:hover{opacity:.9}.badge{background:var(--color-border);border-radius:var(--radius-md);align-self:flex-start;padding:.2rem .5rem;font-size:.75rem}.error-msg{color:#ef4444;margin-top:.5rem;font-size:.875rem}.author-link{color:var(--color-text-light);margin-top:.25rem;text-decoration:none;transition:color .2s;display:inline-block}.author-link:hover{color:var(--color-primary)}.folder-tabs{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:.5rem;padding-top:1rem;display:flex}.folder-tab{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);background:0 0;padding:.35rem .85rem;font-size:.875rem;transition:all .2s}.folder-tab:hover{background:var(--color-bg)}.folder-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.album-card{flex-direction:column;display:flex;overflow:hidden;padding:0!important}.album-card .album-preview{background:var(--color-bg-alt);height:180px;position:relative;overflow:hidden}.album-card .album-preview img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.album-card .album-preview .album-placeholder{width:100%;height:100%;color:var(--color-text-light);justify-content:center;align-items:center;font-size:2rem;display:flex}.album-card .album-info{flex-direction:column;flex:1;padding:1.25rem;display:flex}.album-card:hover .album-preview img{transform:scale(1.05)}.album-link{color:inherit;flex-direction:column;height:100%;text-decoration:none;display:flex}.btn-danger{color:#fff;background-color:#ef4444}.btn-danger:hover{background-color:#dc2626}.card-actions{gap:.5rem;margin-top:auto;padding-top:.5rem;display:flex}.card-actions .btn{flex:1;padding:.35rem .5rem;font-size:.75rem}.photo-card{position:relative}.photo-card .photo-overlay-actions{gap:.25rem;display:none;position:absolute;top:.5rem;right:.5rem}.photo-card:hover .photo-overlay-actions{display:flex}.photo-card .photo-action-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;background:#0009;border:none;padding:.25rem .5rem;font-size:.75rem;transition:background .2s}.photo-card .photo-action-btn:hover{background:#000000d9}.photo-card .photo-action-btn.danger{background:#ef4444cc}.photo-card .photo-action-btn.danger:hover{background:#dc2626f2}.lightbox-overlay{z-index:1000;cursor:zoom-out;background:#000000e6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-overlay img{object-fit:contain;border-radius:var(--radius-md);cursor:default;max-width:90vw;max-height:90vh;box-shadow:0 25px 50px #00000080}.lightbox-overlay .lightbox-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;transition:background .2s;display:flex;position:absolute;top:1.5rem;right:1.5rem}.lightbox-overlay .lightbox-close:hover{background:#ffffff4d}.lightbox-overlay .lightbox-prev,.lightbox-overlay .lightbox-next{color:#fff;border-radius:var(--radius-lg);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff1f;border:none;justify-content:center;align-items:center;width:3rem;height:5rem;font-size:2.5rem;line-height:1;transition:background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-overlay .lightbox-prev:hover,.lightbox-overlay .lightbox-next:hover{background:#ffffff40}.lightbox-overlay .lightbox-prev{left:1.25rem}.lightbox-overlay .lightbox-next{right:1.25rem}.lightbox-overlay .lightbox-caption{color:#fff;opacity:.8;font-size:1rem;position:absolute;bottom:2rem}.modal-overlay{z-index:900;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay .modal-card{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-md);padding:2rem}.modal-overlay .modal-card h3{margin-bottom:1.5rem}.modal-overlay .modal-card .modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;color:var(--color-text);background-color:var(--color-bg);font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5;transition:background-color .25s,color .25s}h1,h2,h3,h4{margin-bottom:1rem;font-weight:600}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-hover)}#app{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}
