:root{--bg-deep:#0a0a1a;--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-card:#1a1a3e;--bg-hover:#1f2f50;--accent:#e94560;--accent-dim:#c23152;--gold:#f0c040;--text-primary:#e8e8f0;--text-secondary:#a0a0c0;--text-muted:#606080;--border-color:#2a2a4a;--success:#4ecca3;--danger:#e94560;--warning:#f0c040}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-deep);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:var(--accent)}button{cursor:pointer;font-family:inherit}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.7rem 1.5rem;font-size:.95rem;font-weight:600}.btn-primary:hover{background:var(--accent-dim)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;padding:.6rem 1.2rem}.btn-secondary:hover{background:var(--border-color)}.btn-sm{padding:.4rem .9rem;font-size:.85rem}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0;border-radius:8px;padding:.5rem 1rem;font-size:.85rem}.btn-danger:hover{background:#e945601a}.lock-screen{background:linear-gradient(135deg, var(--bg-deep) 0%, var(--bg-primary) 50%, var(--bg-secondary) 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.lock-card{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;border-radius:16px;width:100%;max-width:420px;padding:2.5rem 2rem;box-shadow:0 8px 32px #0009}.lock-icon{width:48px;height:48px;color:var(--accent);margin:0 auto 1rem}.lock-icon svg{width:100%;height:100%}.lock-card h1{margin:0 0 .5rem;font-size:1.5rem}.lock-card .subtitle{color:var(--text-secondary);margin:0 0 1.5rem;font-size:.9rem}.input-group{text-align:left;margin-bottom:1rem}.input-group label{color:var(--text-secondary);margin-bottom:.4rem;font-size:.8rem;display:block}.input-group input,.input-group textarea{background:var(--bg-deep);width:100%;color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;padding:.6rem .8rem;font-family:inherit;font-size:.95rem}.input-group input:focus,.input-group textarea:focus{border-color:var(--accent);outline:none}.input-group textarea{resize:vertical}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{padding-right:2.5rem}.password-toggle{cursor:pointer;opacity:.6;background:0 0;border:none;padding:.3rem;font-size:1rem;position:absolute;right:.5rem}.password-toggle:hover{opacity:1}.strength-meter{align-items:center;gap:.5rem;margin-top:.4rem;font-size:.75rem;display:flex}.strength-meter .strength-bar{background:var(--text-muted);border-radius:2px;flex:1;height:4px;transition:width .2s,background .2s}.strength-meter span{text-align:right;min-width:1.2rem;font-weight:600}.passphrase-warning{color:var(--warning);text-align:left;background:#f0c04014;border:1px solid #f0c04040;border-radius:8px;align-items:flex-start;gap:.5rem;margin:1rem 0;padding:.6rem .8rem;font-size:.78rem;line-height:1.5;display:flex}.passphrase-warning svg{flex-shrink:0;margin-top:.1rem}.error-text{color:var(--danger);min-height:1.2em;margin:.5rem 0;font-size:.85rem}.lock-divider{color:var(--text-muted);align-items:center;margin:1.2rem 0 0;font-size:.78rem;display:flex}.app{background:var(--bg-deep);min-height:100vh}.header{background:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:1rem 1.5rem}.header-inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.header h1{margin:0;font-size:1.2rem}.main-content{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:480px;padding:1.5rem}.modal h3{margin:0 0 1rem}.form-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.album-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.album-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.album-cover-placeholder{aspect-ratio:4/3;background:linear-gradient(135deg, var(--bg-secondary), var(--bg-hover));color:var(--text-muted);justify-content:center;align-items:center;font-size:2.5rem;display:flex}.album-body{padding:.8rem 1rem}.album-body h3{margin:0 0 .3rem;font-size:1rem}.album-body .desc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:0 0 .5rem;font-size:.82rem;overflow:hidden}.album-body .meta{color:var(--text-muted);justify-content:space-between;font-size:.75rem;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:4rem 1rem}.photo-viewer-overlay{z-index:9999;cursor:zoom-out;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.album-card{transition:transform .15s,border-color .15s}.album-card:hover{border-color:var(--accent);transform:translateY(-2px)}.album-cover-placeholder img{object-fit:cover;width:100%;height:100%}.share-view{background:linear-gradient(135deg, var(--bg-deep) 0%, var(--bg-primary) 50%, var(--bg-secondary) 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem 1rem;display:flex}.share-view-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;width:100%;max-width:600px;padding:1.5rem;box-shadow:0 8px 32px #0009}.share-view-card h3{margin:0 0 .5rem;font-size:1.3rem}.share-view-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:1rem;padding:.6rem 1.5rem}
