:root{--bg:#111;--surface:#1c1c1c;--surface2:#252525;--border:#2e2e2e;--text:#e8e8e8;--text-muted:#888;--accent:#4a80d4;--accent-hover:#5a90e4;--btn-bg:#2a2a2a;--btn-border:#3a3a3a;--input-bg:#1a1a1a;--card-bg:#1e1e1e;--img-bg:#2a2a2a;--tag-bg:#1e3050;--tag-text:#7aabf0;--shadow:#00000080;--nav-bg:#141414;--danger:#c0392b;--danger-text:#e74c3c;--error-text:#ff8a80;--success-text:#7ddba0;--welcome-card-bg:#1414148c;--welcome-vinyl-opacity:.55}html[data-theme=light]{--bg:#f4f4f5;--surface:#fff;--surface2:#efefef;--border:#ddd;--text:#1a1a1a;--text-muted:#777;--accent:#2563eb;--accent-hover:#1d55d5;--btn-bg:#fff;--btn-border:#ccc;--input-bg:#fff;--card-bg:#fff;--img-bg:#e5e5e5;--tag-bg:#dbeafe;--tag-text:#1d4ed8;--shadow:#00000014;--nav-bg:#fff;--danger:#c0392b;--danger-text:#c0392b;--error-text:#c0392b;--success-text:#166534;--welcome-card-bg:#ffffffa6;--welcome-vinyl-opacity:.32}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{transition:background .2s,color .2s}body{background:var(--bg);color:var(--text);flex-direction:column;min-height:100vh;font-family:Segoe UI,system-ui,sans-serif;font-size:16px;display:flex}.Navbar{background:var(--nav-bg);border-bottom:1px solid var(--border);z-index:100;height:56px;box-shadow:0 1px 6px var(--shadow);align-items:center;gap:.5rem;padding:0 .75rem;display:flex;position:sticky;top:0}.Navbar h1{min-height:44px;color:var(--text);white-space:nowrap;flex-shrink:0;align-items:center;margin-right:.5rem;font-size:1.05rem;font-weight:700;display:flex}.Navbar .brand-btn{color:var(--text);padding:0;font-size:1.05rem;font-weight:700}.Navbar button{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:.35rem .75rem;font-size:.875rem;transition:background .15s,color .15s;display:inline-flex}.Navbar button:hover{background:var(--surface2);color:var(--text)}.Navbar input{background:var(--input-bg);border:1px solid var(--border);min-width:0;max-width:100px;min-height:44px;color:var(--text);border-radius:6px;outline:none;flex:1;margin-left:auto;padding:.35rem .75rem;font-size:.875rem;transition:border-color .15s}.Navbar input:focus{border-color:var(--accent)}.Navbar input::placeholder{color:var(--text-muted)}.btn-theme,.Navbar .btn-theme{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0;font-size:1rem;display:inline-flex}.btn-theme:hover,.Navbar .btn-theme:hover{background:var(--surface2);color:var(--text)}#app{flex:1;width:100%;max-width:880px;margin:0 auto;padding:1.25rem 1rem}footer{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);padding:.85rem 1rem;font-size:.78rem}.btn{background:var(--btn-bg);border:1px solid var(--btn-border);min-height:44px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:.35rem;padding:.4rem .9rem;font-family:inherit;font-size:.875rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{background:var(--surface2);border-color:var(--accent)}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-ghost{border:1px solid var(--border);color:var(--text-muted);background:0 0}.btn-ghost:hover{background:var(--surface2);color:var(--text);border-color:var(--border)}.btn-danger{border:1px solid var(--btn-border);color:var(--danger-text);background:0 0}.btn-danger:hover{border-color:var(--danger);background:#c0392b1a}.btn-full{justify-content:center;width:100%;padding:.55rem .9rem}.btn[disabled]{opacity:.6;pointer-events:none}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.page-title{color:var(--text);font-size:1.1rem;font-weight:700}.album-card{background:var(--card-bg);border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:1rem;margin-bottom:.65rem;padding:.9rem 1rem;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.album-card:hover{border-color:var(--accent);box-shadow:0 2px 12px var(--shadow)}.album-cover{background:var(--img-bg);width:72px;height:72px;color:var(--text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.75rem;display:flex;overflow:hidden}.album-cover img{object-fit:cover;border-radius:6px;width:100%;height:100%}.album-info{flex:1;min-width:0}.album-title{width:100%;color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;padding:0;font-family:inherit;font-size:.95rem;font-weight:600;display:block;overflow:hidden}.album-open:after{content:"";border-radius:10px;position:absolute;inset:0}.album-open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.album-card:has(.album-open:focus-visible){border-color:var(--accent)}.album-artist{color:var(--text-muted);margin-top:.15rem;font-size:.85rem}.album-meta{flex-wrap:wrap;gap:.35rem;margin-top:.4rem;display:flex}.album-actions{z-index:1;flex-direction:column;flex-shrink:0;gap:.4rem;display:flex;position:relative}.tag{background:var(--tag-bg);color:var(--tag-text);white-space:nowrap;border-radius:4px;padding:.15rem .5rem;font-size:.72rem;font-weight:500}.search-bar{gap:.5rem;margin-bottom:1.25rem;display:flex}.search-bar input{background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:6px;outline:none;flex:1;padding:.5rem .85rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.search-bar input:focus{border-color:var(--accent)}.search-bar input::placeholder{color:var(--text-muted)}.search-result-count{color:var(--text-muted);margin-bottom:.75rem;font-size:.82rem}.detail-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:1.5rem}.detail-top{flex-direction:column;gap:1.5rem;margin-bottom:1.25rem;display:flex}.detail-cover{background:var(--img-bg);width:80px;height:80px;color:var(--text-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.75rem;display:flex;overflow:hidden}.detail-cover img{object-fit:cover;border-radius:8px;width:100%;height:100%}.detail-fields{flex:1;min-width:0}.field-row{margin-bottom:.65rem}.field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.15rem;font-size:.75rem}.field-value{color:var(--text);font-size:.9rem}.detail-divider{border:none;border-top:1px solid var(--border);margin:1.1rem 0}.detail-actions{flex-wrap:wrap;gap:.5rem;display:flex}.form-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:1.5rem}.form-top{flex-direction:column;gap:1.5rem;margin-bottom:.25rem;display:flex}.form-cover-slot{background:var(--img-bg);border:1px dashed var(--border);width:80px;height:80px;color:var(--text-muted);cursor:pointer;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:.3rem;font-size:1.75rem;transition:border-color .15s;display:flex}.form-cover-slot:hover{border-color:var(--accent)}.form-cover-icon{font-size:1.5rem}.form-cover-set-image{min-height:44px;margin-left:210px;font-size:14px}.form-cover-set-image::file-selector-button{min-height:44px}.form-fields{flex:1;min-width:0}.form-row{margin-bottom:.9rem}.form-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem;font-size:.77rem;display:block}.form-input{background:var(--input-bg);border:1px solid var(--border);width:100%;min-height:44px;color:var(--text);border-radius:6px;outline:none;padding:.45rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text-muted)}.form-textarea{background:var(--input-bg);border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;border-radius:6px;outline:none;min-height:70px;padding:.45rem .75rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.form-textarea:focus{border-color:var(--accent)}.form-textarea::placeholder{color:var(--text-muted)}.checkbox-group{flex-wrap:wrap;gap:.5rem;margin-top:.2rem;display:flex}.checkbox-group:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.checkbox-group>button,.form-row>form>button{border:1px solid var(--border);min-width:44px;min-height:44px;color:var(--text);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;font-family:inherit;transition:border-color .15s;display:inline-flex}.checkbox-group>button:hover,.form-row>form>button:hover{border-color:var(--accent)}.checkbox-option{cursor:pointer;min-height:44px;color:var(--text);align-items:center;gap:.35rem;padding-right:.2rem;font-size:.875rem;display:flex}.checkbox-option input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}.checkbox-row{cursor:pointer;min-height:44px;color:var(--text);align-items:center;gap:.5rem;margin-bottom:.9rem;font-size:.9rem;display:flex}.checkbox-row input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}.form-divider{border:none;border-top:1px solid var(--border);margin:1rem 0}.form-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.form-actions-left,.form-actions-right{gap:.5rem;display:flex}.profile-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.profile-album-card{text-align:left;width:100%;color:var(--text);background:var(--card-bg);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:0;font-family:inherit;transition:border-color .15s,box-shadow .15s;display:block;overflow:hidden}.profile-album-card:hover{border-color:var(--accent);box-shadow:0 2px 10px var(--shadow)}.profile-album-img{aspect-ratio:1;background:var(--img-bg);width:100%;color:var(--text-muted);justify-content:center;align-items:center;font-size:2.25rem;display:flex;overflow:hidden}.profile-album-img img{object-fit:cover;width:100%;height:100%}.profile-album-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.profile-album-info{padding:.55rem .7rem;display:block}.profile-album-title{white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;display:block;overflow:hidden}.profile-album-artist{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;display:block;overflow:hidden}.auth-wrapper{max-width:360px;margin:2.5rem auto 0}.auth-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:1.75rem}.auth-title{margin-bottom:1.25rem;font-size:1.1rem;font-weight:700}.auth-footer{text-align:center;color:var(--text-muted);margin-top:.85rem;font-size:.82rem}.auth-footer .link-inline{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.auth-footer .link-inline:hover{text-decoration:underline}.auth-footer .link-inline:focus-visible,.auth-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.auth-back{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 .5rem;display:inline-flex}.form-hint{color:var(--text-muted);margin-top:.4rem;font-size:.78rem;line-height:1.4}.field-error{color:var(--error-text);margin-top:.3rem;font-size:.78rem;line-height:1.4;display:block}.field-error:empty{display:none}.strength-bar{gap:4px;margin-top:6px;display:flex}.strength-bar span{border-radius:2px;flex:1;height:4px}.strength-bar .bar-off{background:var(--surface2)}.strength-bar .bar-on{background:var(--accent)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.empty-state{text-align:center;color:var(--text-muted);padding:3.5rem 1rem;font-size:.9rem}.empty-state-icon{margin-bottom:.6rem;font-size:2.5rem}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.nav-desktop{display:none}.nav-mobile{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.mobile-menu-show{background:var(--nav-bg);border:1px solid var(--border);min-width:160px;box-shadow:0 4px 16px var(--shadow);z-index:200;border-radius:8px;flex-direction:column;padding:.4rem 0;display:none;position:absolute;top:56px;right:.75rem}.mobile-menu-show button{text-align:left;border-radius:0;justify-content:flex-start;width:100%;padding:.5rem 1rem}.nav-mobile.open .mobile-menu-show{display:flex}.navBurger{flex-shrink:0;padding:.3rem .6rem;font-size:1.1rem}@media (width>=768px){.Navbar{padding:0 1.5rem}.nav-desktop{flex:1;align-items:center;gap:.5rem;display:flex}.nav-mobile{display:none}.Navbar input{max-width:280px}#app{padding:1.75rem 1.5rem}.detail-top,.form-top{flex-direction:row}.detail-cover{width:120px;height:120px;font-size:2.5rem}.form-cover-slot{width:120px;height:120px;font-size:.75rem}.profile-grid{grid-template-columns:repeat(3,1fr)}.album-actions{flex-direction:row}}.auth-error{color:#ffb4ab;background:#c0392b1a;border:1px solid #c0392b59;border-radius:8px;margin-bottom:1rem;padding:.75rem .9rem;font-size:.92rem}.storage-banner{border-radius:8px;margin:0 0 1rem;padding:.75rem .9rem;font-size:.92rem;line-height:1.4}.storage-banner-error{color:#ffb4ab;background:#c0392b1f;border:1px solid #c0392b66}.storage-banner-warn{color:#f0d57a;background:#d4af371a;border:1px solid #d4af3766}.profile-storage{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:.5rem 0 1.25rem;padding:.75rem .9rem}.profile-storage-label{color:var(--text-muted);margin-bottom:.4rem;font-size:.85rem}.profile-storage-bar{background:var(--surface2);border-radius:999px;height:6px;margin-bottom:.4rem;overflow:hidden}.profile-storage-bar-fill{background:var(--accent);height:100%;transition:width .2s}.profile-storage-stats{color:var(--text-muted);font-size:.85rem}.profile-settings{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:0 0 1.25rem;padding:.75rem .9rem}.profile-settings-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.profile-settings-label,.backup-label{color:var(--text);font-size:.85rem}.backup-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:.9rem;display:flex}.backup-hint{color:var(--text);opacity:.85;margin:.3rem 0 0;font-size:.8rem;line-height:1.45}.backup-hint-warn{color:var(--error-text);opacity:1}.backup-message{background:var(--surface2);border-left:3px solid;border-radius:4px;margin:0 0 .9rem;padding:.55rem .7rem;font-size:.88rem;line-height:1.45}.backup-message-error{color:var(--error-text)}.backup-message-success{color:var(--success-text)}.file-input{max-width:100%;min-height:44px;color:var(--text);font-family:inherit;font-size:.8rem}.file-input::file-selector-button{background:var(--btn-bg);border:1px solid var(--btn-border);min-height:44px;color:var(--text);cursor:pointer;border-radius:6px;margin-right:.6rem;padding:.4rem .9rem;font-family:inherit;font-size:.875rem;transition:background .15s,border-color .15s}.file-input::file-selector-button:hover{background:var(--surface2);border-color:var(--accent)}.file-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.profile-settings-heading{border-top:1px solid var(--border);color:var(--text);margin:1.25rem 0 0;padding-top:.9rem;font-size:.95rem;font-weight:600}.profile-settings-heading:first-child{border-top:none;margin-top:0;padding-top:0}.dialog{background:var(--card-bg);border:1px solid var(--border);width:calc(100% - 2rem);max-width:360px;height:fit-content;max-height:calc(100% - 2rem);color:var(--text);box-shadow:0 8px 32px var(--shadow);border-radius:10px;margin:auto;padding:1.5rem;position:fixed;inset:0}.dialog::backdrop{background:#0009}.dialog-title{margin-bottom:.6rem;font-size:1.05rem;font-weight:700}.dialog-body{margin-bottom:1.25rem;font-size:.9rem;line-height:1.5}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}body.chrome-hidden .Navbar,body.chrome-hidden>footer{display:none}.welcome{flex-direction:column;min-height:calc(100dvh - 3rem);display:flex;position:relative;overflow:hidden}.welcome-top{z-index:2;justify-content:flex-end;align-items:center;gap:.5rem;display:flex;position:relative}.lang-switch{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.lang-opt{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 .55rem;font-family:inherit;font-size:.75rem;font-weight:600;display:inline-flex}.lang-opt:hover{color:var(--text)}.lang-opt:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.lang-opt.is-active{background:var(--surface2);color:var(--text)}.welcome-vinyl{width:125%;max-width:460px;opacity:var(--welcome-vinyl-opacity);pointer-events:none;z-index:0;position:absolute;bottom:-24%;right:-30%}.vinyl{width:100%;height:auto;display:block}.vinyl-spin{transform-box:fill-box;transform-origin:50%;animation:30s linear infinite vinyl-rotate}@keyframes vinyl-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.welcome-card{z-index:1;background:var(--welcome-card-bg);border:1px solid var(--border);text-align:center;width:100%;max-width:340px;box-shadow:0 8px 32px var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;margin:auto;padding:2rem 1.5rem;position:relative}.welcome-brand{letter-spacing:.02em;margin-bottom:.35rem;font-size:1.8rem;font-weight:700}.welcome-tagline{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.welcome-actions{flex-direction:column;gap:.6rem;margin-bottom:1rem;display:flex}.welcome-about{margin-top:.25rem}.welcome-backup{border-top:1px solid var(--border);text-align:left;margin-top:1.1rem;padding-top:.9rem}.welcome-backup>summary{cursor:pointer;color:var(--text);text-align:center;min-height:44px;padding:.8rem .5rem;font-size:.85rem}.welcome-backup>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.welcome-backup[open]>summary{margin-bottom:.4rem}.welcome-footer{z-index:2;text-align:center;color:var(--text-muted);padding-top:1rem;font-size:.75rem;line-height:1.5;position:relative}.link-btn{min-width:44px;min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem .5rem;font-family:inherit;font-size:.85rem;display:inline-flex}.link-btn:hover{text-decoration:underline}.about-top{margin-bottom:1.25rem}.about-title{margin-bottom:.75rem;font-size:1.4rem;font-weight:700}.about-lead{color:var(--text);margin-bottom:1.5rem;font-size:.95rem;line-height:1.6}.about-subtitle{margin-bottom:.4rem;font-size:1rem;font-weight:600}.about-text{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem;line-height:1.6}.about-link{color:var(--accent);text-decoration:none}.about-link:hover{text-decoration:underline}@media (width>=768px){.welcome{min-height:calc(100dvh - 3.5rem)}.welcome-vinyl{max-width:620px;bottom:-28%;right:-18%}.welcome-card{max-width:380px;padding:2.5rem 2rem}.welcome-brand{font-size:2.1rem}}.notfound{text-align:center;padding:3rem 1rem}.notfound-icon{margin-bottom:.75rem;font-size:2.5rem}.notfound-title{margin-bottom:.6rem;font-size:1.4rem;font-weight:700}.notfound-body{max-width:34rem;color:var(--text);opacity:.85;margin:0 auto 1.5rem;font-size:.95rem;line-height:1.5}@media (prefers-reduced-motion:reduce){.vinyl-spin{animation:none}}
