.pwa-status{right:max(16px, calc(var(--safe-area-right) + 12px));bottom:max(16px, calc(var(--safe-area-bottom) + 12px));left:max(16px, calc(var(--safe-area-left) + 12px));z-index:1000;border:1px solid var(--glass-border);border-radius:var(--radius-large);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);background:linear-gradient(145deg,#ffffff17,#0000 50%),#19191ff0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;width:min(100% - 32px,560px);margin-inline:auto;padding:14px;animation:.22s ease-out pwa-status-enter;display:grid;position:fixed;box-shadow:0 22px 70px #00000094,inset 0 1px #ffffff1a}.pwa-status-icon{border:1px solid var(--glass-border);background:#ffffff0f;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.pwa-status-icon svg{width:20px;height:20px}.pwa-status-copy{min-width:0}.pwa-status-copy h2{letter-spacing:-.015em;font-size:.9rem;font-weight:720}.pwa-status-copy p{color:var(--color-text-secondary);margin-top:3px;font-size:.76rem;line-height:1.4}.pwa-status[data-kind=ready] .pwa-status-icon{color:var(--color-success);background:#30d1581c;border-color:#30d15847}.pwa-status[data-kind=offline] .pwa-status-icon{color:#ff9f0a;background:#ff9f0a1c;border-color:#ff9f0a4d}.pwa-status[data-kind=update] .pwa-status-icon{background:var(--color-accent-soft);color:var(--color-accent-strong);border-color:#ff2d724d}.pwa-status[data-kind=error] .pwa-status-icon{color:var(--color-danger);background:#ff453a1c;border-color:#ff453a4d}.pwa-status-close{width:34px;height:34px;color:var(--color-text-secondary);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:8px;right:8px}.pwa-status-close svg{width:18px;height:18px}.pwa-status:has(.pwa-status-close){padding-right:48px}.pwa-status-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:8px;display:grid}.pwa-status-actions button{min-height:var(--touch-target);border-radius:var(--radius-pill);justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:.82rem;font-weight:700;display:inline-flex}.pwa-status-secondary{border:1px solid var(--glass-border);background:var(--glass-background);color:var(--color-text)}.pwa-status-primary{background:linear-gradient(135deg, var(--color-accent-strong), var(--color-accent));color:#fff;border:1px solid #ff2d7252}.pwa-status-actions button:disabled{cursor:wait;opacity:.62}.pwa-status-spinner{width:17px;height:17px;animation:.85s linear infinite pwa-status-spin}@keyframes pwa-status-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pwa-status-spin{to{transform:rotate(360deg)}}@media (width>=560px){.pwa-status{left:50%;transform:translate(-50%)}@keyframes pwa-status-enter{0%{opacity:0;transform:translate(-50%)translateY(12px)scale(.98)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}}.album-detail-page{min-height:100dvh;padding:calc(var(--safe-area-top) + 18px) calc(var(--safe-area-right) + 18px) calc(var(--safe-area-bottom) + 44px) calc(var(--safe-area-left) + 18px);background:linear-gradient(to bottom, #07070933, var(--color-background) 620px);isolation:isolate;position:relative;overflow:hidden}.album-detail-backdrop{z-index:-1;opacity:.28;pointer-events:none;height:760px;position:absolute;top:-120px;left:-100px;right:-100px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 40%,#0000 95%);mask-image:linear-gradient(#000 40%,#0000 95%)}.album-detail-backdrop img{object-fit:cover;filter:blur(82px)saturate(.85);width:100%;height:100%;transform:scale(1.25)}.album-detail-content{width:min(100%,920px);margin-inline:auto}.album-detail-navigation{justify-content:space-between;align-items:center;gap:16px;margin-bottom:30px;display:flex}.album-detail-back,.album-detail-edit{border:1px solid var(--glass-border);background:linear-gradient(145deg, var(--glass-highlight), transparent 58%), var(--glass-background-strong);min-height:48px;box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));justify-content:center;align-items:center;display:inline-flex}.album-detail-back{border-radius:50%;width:48px;padding:0}.album-detail-edit{border-radius:var(--radius-pill);gap:8px;padding:8px 16px;font-size:.88rem;font-weight:680}.album-detail-back svg,.album-detail-edit svg{width:20px;height:20px}.album-detail-hero{justify-items:center;gap:26px;margin-bottom:34px;display:grid}.album-detail-cover{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius-large);background:var(--color-surface);width:min(100%,360px);box-shadow:var(--shadow-large);overflow:hidden}.album-detail-cover img{object-fit:cover;width:100%;height:100%}.album-detail-cover-placeholder{background:radial-gradient(circle, var(--color-accent-soft), transparent 68%), var(--color-surface);width:100%;height:100%;color:var(--color-text-muted);place-items:center;display:grid}.album-detail-cover-placeholder svg{stroke-width:1.2px;width:36%;height:36%}.album-detail-information{text-align:center;width:100%}.album-detail-kicker{color:var(--color-accent-strong);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px;font-size:.76rem;font-weight:750}.album-detail-information h1{overflow-wrap:anywhere;letter-spacing:-.06em;font-size:clamp(2.2rem,10vw,4.8rem);font-weight:780;line-height:.98}.album-detail-artist{color:var(--color-text-secondary);margin-top:10px;font-size:clamp(1.15rem,5vw,1.55rem);font-weight:560}.album-detail-song-count{color:var(--color-text-muted);margin-top:5px;font-size:.84rem}.album-detail-score{border-radius:var(--radius-pill);background:linear-gradient(145deg, #ffffff1c, transparent 58%), var(--color-accent-soft);min-width:134px;min-height:64px;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid #ff2d7257;justify-content:center;align-items:baseline;gap:4px;margin-top:22px;padding:10px 20px;display:inline-flex;box-shadow:0 18px 48px #ff2d722e,inset 0 1px #ffffff26}.album-detail-score strong{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:780;line-height:1}.album-detail-score span{color:var(--color-text-secondary);font-size:.86rem;font-weight:650}.album-detail-score[data-unrated=true]{flex-direction:column;align-items:center;gap:3px}.album-detail-score[data-unrated=true] strong{font-size:1.5rem}.album-detail-tracks{border:1px solid var(--color-border);border-radius:var(--radius-large);background:linear-gradient(145deg, #ffffff0d, transparent 45%), var(--glass-background-strong);box-shadow:var(--shadow-large);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));padding:22px}.album-detail-tracks-heading{justify-content:space-between;align-items:flex-end;gap:18px;padding-bottom:18px;display:flex}.album-detail-tracks-heading p{color:var(--color-accent-strong);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:720}.album-detail-tracks-heading h2{letter-spacing:-.035em;margin-top:2px;font-size:1.5rem;font-weight:740}.album-detail-tracks-heading>span{color:var(--color-text-muted);font-size:.78rem}.album-detail-update-error{border-radius:var(--radius-small);color:var(--color-danger);background:#ff453a17;border:1px solid #ff453a40;margin-bottom:12px;padding:10px 13px;font-size:.8rem;font-weight:620}.album-detail-track-list{border-top:1px solid var(--color-border)}.album-song-row{border-bottom:1px solid var(--color-border);padding:20px 0}.album-song-row:last-child{border-bottom:0}.album-song-heading{grid-template-columns:30px minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.album-song-heading>span{color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:center;font-weight:650}.album-song-heading h3{overflow-wrap:anywhere;font-size:1rem;font-weight:680}.album-song-rating{margin-top:13px;margin-left:40px}.album-detail-status{min-height:100dvh;color:var(--color-text-secondary);text-align:center;place-content:center;justify-items:center;gap:14px;padding:24px;display:grid}.album-detail-status button{min-height:var(--touch-target);border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:var(--glass-background);padding:8px 16px}.album-detail-spinner{animation:.9s linear infinite album-detail-spin}@keyframes album-detail-spin{to{transform:rotate(360deg)}}@media (width<=480px){.album-detail-tracks{padding:18px 16px}.album-song-rating{margin-left:0}}@media (width>=760px){.album-detail-page{padding:calc(var(--safe-area-top) + 32px) calc(var(--safe-area-right) + 32px) calc(var(--safe-area-bottom) + 64px) calc(var(--safe-area-left) + 32px)}.album-detail-hero{grid-template-columns:minmax(280px,360px) minmax(0,1fr);place-items:center stretch;gap:46px;min-height:440px}.album-detail-information{text-align:left}.album-detail-information h1{font-size:clamp(3rem,7vw,5rem)}.album-detail-tracks{padding:28px}}.album-detail-action-group{align-items:center;gap:8px;display:flex}.album-detail-delete{border-radius:var(--radius-pill);min-height:48px;color:var(--color-danger);box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));background:linear-gradient(145deg,#ffffff14,#0000 58%),#ff453a14;border:1px solid #ff453a3d;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:.88rem;font-weight:680;display:inline-flex}.album-detail-delete:hover:not(:disabled){background-color:#ff453a21;border-color:#ff453a6b}.album-detail-delete svg{width:20px;height:20px}.album-detail-delete-error{border-radius:var(--radius-small);color:var(--color-danger);text-align:center;background:#ff453a1a;border:1px solid #ff453a47;margin:-12px 0 20px;padding:11px 14px;font-size:.82rem;font-weight:620}.confirm-dialog{border:1px solid var(--glass-border);border-radius:var(--radius-large);width:min(100% - 32px,420px);color:var(--color-text);text-align:center;-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);background:linear-gradient(145deg,#ffffff17,#0000 48%),#19191ef5;padding:24px;animation:.18s ease-out confirm-dialog-enter;box-shadow:0 30px 90px #000000a6,inset 0 1px #ffffff1a}.confirm-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000ad}.confirm-dialog-icon{width:54px;height:54px;color:var(--color-danger);background:#ff453a1f;border:1px solid #ff453a4d;border-radius:50%;place-items:center;margin:0 auto 16px;display:grid}.confirm-dialog-icon svg{width:25px;height:25px}.confirm-dialog h2{letter-spacing:-.035em;font-size:1.35rem;font-weight:750;line-height:1.15}.confirm-dialog p{color:var(--color-text-secondary);margin-top:10px;font-size:.92rem;line-height:1.5}.confirm-dialog-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:24px;display:grid}.confirm-dialog-actions button{border-radius:var(--radius-pill);justify-content:center;align-items:center;gap:7px;min-height:48px;padding:9px 14px;font-size:.9rem;font-weight:700;display:inline-flex}.confirm-dialog-cancel{border:1px solid var(--glass-border);background:var(--glass-background);color:var(--color-text)}.confirm-dialog-confirm{background:var(--color-danger);color:#fff;border:1px solid #ff453a61;box-shadow:0 12px 30px #ff453a38}.confirm-dialog-actions button:disabled{cursor:wait;opacity:.65}.confirm-dialog-spinner{width:18px;height:18px;animation:.85s linear infinite confirm-dialog-spin}@keyframes confirm-dialog-enter{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes confirm-dialog-spin{to{transform:rotate(360deg)}}@media (width<=380px){.album-detail-edit,.album-detail-delete{width:48px;padding-inline:0}.album-detail-edit span,.album-detail-delete span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.confirm-dialog-actions{grid-template-columns:1fr}}.cover-picker{gap:22px;display:grid}.cover-preview{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius-large);background:linear-gradient(145deg, #ffffff12, #ffffff05), var(--color-surface);width:min(100%,320px);box-shadow:var(--shadow-large);justify-self:center;position:relative;overflow:hidden}.cover-preview img{object-fit:cover;width:100%;height:100%}.cover-placeholder{width:100%;height:100%;color:var(--color-text-muted);place-content:center;justify-items:center;gap:10px;display:grid}.cover-placeholder svg{stroke-width:1.4px;width:48px;height:48px}.cover-placeholder span{font-size:.88rem;font-weight:650}.cover-processing{color:var(--color-text);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#070709c7;place-content:center;justify-items:center;gap:10px;font-size:.88rem;font-weight:680;display:grid;position:absolute;inset:0}.cover-processing svg{width:30px;height:30px;color:var(--color-accent-strong);animation:.9s linear infinite cover-spinner}.cover-picker-controls{flex-wrap:wrap;place-content:flex-start center;gap:10px;display:flex}.cover-picker-button{min-height:var(--touch-target);border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:var(--glass-background);color:var(--color-text);cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));justify-content:center;align-items:center;gap:8px;padding:8px 15px;font-size:.86rem;font-weight:680;display:inline-flex}.cover-picker-button-primary{background:var(--color-accent-soft);color:var(--color-accent-strong);border-color:#ff2d7259}.cover-picker-button svg{width:18px;height:18px}.cover-picker-button:hover,.cover-picker-button:focus-visible{background-color:var(--color-surface-hover)}.cover-picker-button:disabled{cursor:not-allowed;opacity:.55}.cover-picker-button:has(input:disabled){cursor:not-allowed;opacity:.55}.cover-picker-hint{max-width:420px;color:var(--color-text-muted);text-align:center;flex-basis:100%;font-size:.78rem}.cover-picker-error{min-height:1.25rem;color:var(--color-danger);text-align:center;flex-basis:100%;font-size:.8rem;font-weight:620}@keyframes cover-spinner{to{transform:rotate(360deg)}}@media (width>=720px){.cover-picker{grid-template-columns:minmax(240px,320px) 1fr;align-items:center}.cover-picker-controls{justify-content:flex-start}.cover-picker-hint,.cover-picker-error{text-align:left}}.song-editor-row{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:linear-gradient(145deg, #ffffff0d, transparent 55%), var(--glass-background-strong);box-shadow:var(--shadow-small);padding:16px}.song-editor-header{grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.song-editor-number{color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:center;font-size:1rem;font-weight:700}.song-editor-title{min-width:0}.song-editor-title input{width:100%;min-height:var(--touch-target);border-radius:var(--radius-small);color:var(--color-text);transition:border-color var(--transition-fast), background var(--transition-fast);background:#ffffff0f;border:1px solid #0000;outline:0;padding:9px 12px;font-size:1rem;font-weight:650}.song-editor-title input::placeholder{color:var(--color-text-muted);font-weight:520}.song-editor-title input:hover{background:#ffffff17}.song-editor-title input:focus{border-color:var(--color-accent-strong);background:#ffffff1a}.song-editor-title input[aria-invalid=true]{border-color:var(--color-danger)}.song-editor-controls{gap:5px;display:flex}.song-editor-controls button{width:var(--touch-target);height:var(--touch-target);border:1px solid var(--color-border);color:var(--color-text-secondary);transition:background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);background:#ffffff0d;border-radius:50%;place-items:center;padding:0;display:grid}.song-editor-controls button svg{width:19px;height:19px}.song-editor-controls button:hover:not(:disabled),.song-editor-controls button:focus-visible:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.song-editor-controls button:active:not(:disabled){transform:scale(.94)}.song-editor-controls button:disabled{cursor:not-allowed;opacity:.3}.song-editor-controls .song-editor-remove:hover:not(:disabled),.song-editor-controls .song-editor-remove:focus-visible:not(:disabled){color:var(--color-danger);background:#ff453a1f;border-color:#ff453a59}.song-editor-error{color:var(--color-danger);margin-top:8px;margin-left:42px;font-size:.78rem;font-weight:620}.song-editor-rating{border-top:1px solid var(--color-border);margin-top:16px;margin-left:42px;padding-top:14px}@media (width<=560px){.song-editor-header{grid-template-columns:32px minmax(0,1fr)}.song-editor-controls{grid-column:2;justify-content:flex-start}.song-editor-error,.song-editor-rating{margin-left:0}}.rating-fieldset{border:0;min-width:0;margin:0;padding:0}.rating-label{color:var(--color-text-secondary);margin-bottom:8px;padding:0;font-size:.78rem;font-weight:650}.rating-control{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rating-stars{align-items:center;gap:2px;display:flex}.rating-star{border-radius:8px;width:30px;height:38px;display:block;position:relative}.rating-star-visual{pointer-events:none;position:absolute;inset:4px 1px}.rating-star-visual svg{stroke-width:1.8px;width:28px;height:28px}.rating-star-base{color:#ffffff47}.rating-star-fill{height:28px;color:var(--color-accent-strong);pointer-events:none;position:absolute;top:0;left:0;overflow:hidden}.rating-star-fill svg{fill:currentColor;width:28px;max-width:none}.rating-star-half{z-index:1;cursor:pointer;width:50%;position:absolute;top:0;bottom:0}.rating-star-half-left{left:0}.rating-star-half-right{right:0}.rating-star-half input{cursor:pointer;opacity:0;width:100%;height:100%;margin:0;position:absolute;inset:0}.rating-star:focus-within{outline:3px solid var(--color-accent-strong);outline-offset:2px}.rating-value{min-width:88px;color:var(--color-text);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:680}.rating-actions{flex-wrap:wrap;gap:8px;margin-top:9px;display:flex}.rating-action-button{border:1px solid var(--color-border);border-radius:var(--radius-pill);min-height:34px;color:var(--color-text-secondary);transition:border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);background:#ffffff0d;padding:5px 11px;font-size:.75rem;font-weight:650}.rating-action-button[aria-pressed=true]{background:var(--color-accent-soft);color:var(--color-accent-strong);border-color:#ff2d7273}.rating-action-button:hover,.rating-action-button:focus-visible{border-color:var(--glass-border);color:var(--color-text);background:#ffffff1a}.rating-fieldset:disabled{cursor:not-allowed;opacity:.55}.rating-fieldset:disabled .rating-star-half,.rating-fieldset:disabled .rating-star-half input{cursor:not-allowed}.album-form-page{min-height:100dvh;padding:calc(var(--safe-area-top) + 20px) calc(var(--safe-area-right) + 18px) calc(var(--safe-area-bottom) + 36px) calc(var(--safe-area-left) + 18px)}.album-form-content{width:min(100%,900px);margin-inline:auto}.album-form-header{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;margin-bottom:26px;display:grid}.album-form-back{border:1px solid var(--glass-border);background:var(--glass-background);width:48px;height:48px;box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:50%;place-items:center;padding:0;display:grid}.album-form-back svg{width:22px;height:22px}.album-form-eyebrow{color:var(--color-accent-strong);letter-spacing:.11em;text-transform:uppercase;font-size:.76rem;font-weight:750}.album-form-header h1{letter-spacing:-.05em;font-size:clamp(2rem,8vw,3.8rem);font-weight:760;line-height:1}.album-form{gap:20px;display:grid}.album-form-section{border:1px solid var(--color-border);border-radius:var(--radius-large);background:linear-gradient(145deg, #ffffff0d, transparent 48%), var(--glass-background-strong);box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));padding:22px}.album-form-section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.album-form-section-heading>div{align-items:baseline;gap:10px;display:flex}.album-form-section-heading>p{color:var(--color-text-muted);font-size:.76rem;font-weight:620}.album-form-section-number{color:var(--color-accent-strong);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:750}.album-form-section h2{letter-spacing:-.025em;font-size:1.25rem;font-weight:720}.album-form-fields{gap:16px;display:grid}.album-form-field{gap:7px;display:grid}.album-form-field>span{color:var(--color-text-secondary);font-size:.82rem;font-weight:650}.album-form-field input{border:1px solid var(--color-border);border-radius:var(--radius-small);width:100%;min-height:50px;color:var(--color-text);transition:border-color var(--transition-fast), background var(--transition-fast);background:#ffffff0f;outline:0;padding:11px 14px;font-size:1rem}.album-form-field input::placeholder{color:var(--color-text-muted)}.album-form-field input:hover{background:#ffffff17}.album-form-field input:focus{border-color:var(--color-accent-strong);background:#ffffff1a}.album-form-field input[aria-invalid=true]{border-color:var(--color-danger)}.album-form-field small,.album-form-section-error,.album-form-save-error{color:var(--color-danger);font-size:.78rem;font-weight:620}.album-form-add-song{min-height:var(--touch-target);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent-strong);border:1px solid #ff2d7259;align-items:center;gap:7px;padding:7px 13px;font-size:.82rem;font-weight:680;display:inline-flex}.album-form-add-song svg{width:17px;height:17px}.album-form-song-list{gap:12px;display:grid}.album-form-section-error{margin-bottom:12px}.album-form-empty-songs{border:1px dashed var(--color-border);border-radius:var(--radius-medium);min-height:180px;color:var(--color-text-secondary);text-align:center;place-content:center;justify-items:center;gap:14px;display:grid}.album-form-empty-songs button{min-height:var(--touch-target);border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:var(--glass-background);align-items:center;gap:7px;padding:8px 14px;display:inline-flex}.album-form-empty-songs button svg{width:18px;height:18px}.album-form-save-error{border-radius:var(--radius-medium);text-align:center;background:#ff453a17;border:1px solid #ff453a47;padding:13px 16px}.album-form-actions{bottom:calc(var(--safe-area-bottom) + 12px);z-index:5;border:1px solid var(--glass-border);border-radius:var(--radius-large);background:var(--glass-background-strong);box-shadow:var(--shadow-large);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));gap:10px;padding:10px;display:flex;position:sticky}.album-form-actions button{border-radius:var(--radius-pill);justify-content:center;align-items:center;gap:8px;min-height:50px;font-weight:700;display:inline-flex}.album-form-cancel{border:1px solid var(--color-border);color:var(--color-text-secondary);background:#ffffff0f;flex:1}.album-form-save{background:linear-gradient(135deg, var(--color-accent-strong), var(--color-accent));color:#fff;border:0;flex:2;box-shadow:0 12px 30px #ff2d723d,inset 0 1px #ffffff3d}.album-form-actions svg{width:19px;height:19px}.album-form-actions button:disabled,.album-form-add-song:disabled,.album-form-empty-songs button:disabled{cursor:not-allowed;opacity:.55}.album-form-status{min-height:100dvh;color:var(--color-text-secondary);text-align:center;place-content:center;justify-items:center;gap:14px;padding:24px;display:grid}.album-form-status button{min-height:var(--touch-target);border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:var(--glass-background);padding:8px 16px}.album-form-spinner{animation:.9s linear infinite album-form-spin}@keyframes album-form-spin{to{transform:rotate(360deg)}}@media (width>=720px){.album-form-page{padding:calc(var(--safe-area-top) + 36px) calc(var(--safe-area-right) + 32px) calc(var(--safe-area-bottom) + 56px) calc(var(--safe-area-left) + 32px)}.album-form-section{padding:28px}.album-form-fields{grid-template-columns:1fr 1fr}.album-form-actions{width:min(100%,520px);margin-left:auto}}.library-page{min-height:100dvh;padding:calc(var(--safe-area-top) + 24px) calc(var(--safe-area-right) + 20px) calc(var(--safe-area-bottom) + 40px) calc(var(--safe-area-left) + 20px)}.library-content{width:min(100%, var(--content-width));margin-inline:auto}.library-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.library-eyebrow{color:var(--color-accent-strong);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:.78rem;font-weight:750}.library-header h1{letter-spacing:-.055em;font-size:clamp(2.35rem,9vw,4.5rem);font-weight:760;line-height:.98}.library-count{color:var(--color-text-secondary);margin-top:10px;font-size:.95rem}.glass-icon-button{border:1px solid var(--glass-border);background:linear-gradient(145deg, var(--glass-highlight), transparent 55%), var(--glass-background);width:48px;height:48px;box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));transition:background var(--transition-fast), transform var(--transition-fast);border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.glass-icon-button svg{width:21px;height:21px}.library-toolbar{justify-content:space-between;align-items:stretch;gap:12px;margin-bottom:24px;display:flex}.glass-select{min-height:var(--touch-target);border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:var(--glass-background);box-shadow:var(--shadow-small);color:var(--color-text-secondary);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));align-items:center;gap:8px;padding:0 12px;display:flex}.glass-select svg{flex:none;width:17px;height:17px}.glass-select>span{font-size:.86rem;font-weight:650;display:none}.glass-select select{min-width:0;color:var(--color-text);background:0 0;border:0;outline:0;font-size:.88rem;font-weight:650}.glass-select option{background:var(--color-surface);color:var(--color-text)}.primary-button,.empty-library-button{min-height:var(--touch-target);border-radius:var(--radius-pill);background:linear-gradient(135deg, var(--color-accent-strong), var(--color-accent));color:#fff;transition:filter var(--transition-fast), transform var(--transition-fast);border:0;justify-content:center;align-items:center;gap:8px;font-weight:720;display:inline-flex;box-shadow:0 12px 30px #ff2d7240,inset 0 1px #ffffff3d}.primary-button{padding:0 17px}.primary-button svg,.empty-library-button svg{width:19px;height:19px}.empty-library{border:1px solid var(--color-border);border-radius:var(--radius-large);background:radial-gradient(circle at 50% 25%, var(--color-accent-soft), transparent 15rem), linear-gradient(145deg, #ffffff0d, #ffffff03), var(--glass-background-strong);min-height:clamp(390px,59dvh,650px);box-shadow:var(--shadow-large);text-align:center;isolation:isolate;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));place-content:center;justify-items:center;padding:42px 24px;display:grid;position:relative;overflow:hidden}.empty-library:before{content:"";filter:blur(.2px);z-index:-1;background:#ffffff05;border:1px solid #ffffff12;border-radius:50%;width:210px;height:210px;position:absolute}.empty-library-icon{border:1px solid var(--glass-border);background:linear-gradient(145deg, #ffffff21, transparent), var(--color-accent-soft);border-radius:50%;place-items:center;width:84px;height:84px;margin-bottom:26px;display:grid;box-shadow:0 18px 50px #ff2d7233,inset 0 1px #ffffff2e}.empty-library-icon svg{width:40px;height:40px;color:var(--color-accent-strong)}.empty-library h2{letter-spacing:-.035em;max-width:460px;font-size:clamp(1.55rem,6vw,2.3rem);font-weight:740;line-height:1.08}.empty-library p{max-width:480px;color:var(--color-text-secondary);margin-top:14px;font-size:.98rem}.empty-library-button{margin-top:28px;padding:0 20px}.glass-icon-button:hover,.glass-icon-button:focus-visible{background-color:var(--color-surface-hover)}.primary-button:hover,.primary-button:focus-visible,.empty-library-button:hover,.empty-library-button:focus-visible{filter:brightness(1.1)}.glass-icon-button:active,.primary-button:active,.empty-library-button:active{transform:scale(.96)}@media (width>=560px){.library-page{padding-right:calc(var(--safe-area-right) + 32px);padding-left:calc(var(--safe-area-left) + 32px)}.glass-select>span{display:inline}.empty-library{padding:64px 40px}}@media (width>=900px){.library-page{padding-top:calc(var(--safe-area-top) + 48px)}.library-header{align-items:center}}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 13px;display:grid}.album-card{min-width:0}.album-card-link{border-radius:var(--radius-medium);display:block}.album-card-cover{aspect-ratio:1;border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);box-shadow:var(--shadow-small);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-normal);position:relative;overflow:hidden}.album-card-cover img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-normal)}.album-card-placeholder{background:radial-gradient(circle at 50% 40%, var(--color-accent-soft), transparent 65%), linear-gradient(145deg, #ffffff14, #ffffff05);width:100%;height:100%;color:var(--color-text-muted);place-items:center;display:grid}.album-card-placeholder svg{stroke-width:1.25px;width:34%;height:34%}.album-card-rating{border:1px solid var(--glass-border);border-radius:var(--radius-pill);min-width:48px;min-height:32px;box-shadow:var(--shadow-small);color:#fff;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f0f13c2;justify-content:center;align-items:baseline;gap:2px;padding:5px 9px;display:inline-flex;position:absolute;bottom:8px;right:8px}.album-card-rating strong{font-size:.84rem;font-weight:760}.album-card-rating small{color:var(--color-text-secondary);font-size:.62rem;font-weight:650}.album-card-rating[data-unrated=true]{color:var(--color-text-secondary);font-size:1rem;font-weight:700}.album-card-information{min-width:0;padding:10px 2px 0}.album-card-information h2{color:var(--color-text);letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;font-size:.94rem;font-weight:700;line-height:1.25;overflow:hidden}.album-card-information p{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:.82rem;line-height:1.25;overflow:hidden}.album-card-link:hover .album-card-cover,.album-card-link:focus-visible .album-card-cover{box-shadow:var(--shadow-large), 0 0 0 1px #ff2d7224;border-color:#fff3;transform:translateY(-3px)}.album-card-link:hover .album-card-cover img{transform:scale(1.025)}.library-loading,.library-error{border:1px solid var(--color-border);border-radius:var(--radius-large);background:var(--glass-background-strong);min-height:360px;color:var(--color-text-secondary);text-align:center;place-content:center;justify-items:center;gap:12px;padding:28px;display:grid}.library-loading svg{width:30px;height:30px;color:var(--color-accent-strong);animation:.9s linear infinite library-spinner}.library-error{color:var(--color-danger);border-color:#ff453a40}@keyframes library-spinner{to{transform:rotate(360deg)}}@media (width<=420px){.library-toolbar{grid-template-columns:minmax(0,1fr) auto;display:grid}.glass-select{min-width:0}.glass-select select{width:100%}.primary-button{white-space:nowrap;flex-shrink:0;padding-inline:14px}}@media (width>=640px){.album-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 18px}}@media (width>=900px){.album-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 22px}.album-card-information h2{font-size:1rem}}@media (width>=1180px){.album-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.settings-page{min-height:100dvh;padding:calc(var(--safe-area-top) + 18px) calc(var(--safe-area-right) + 18px) calc(var(--safe-area-bottom) + 44px) calc(var(--safe-area-left) + 18px);background:radial-gradient(circle at 85% 5%, #ff2d7221, transparent 24rem), var(--color-background)}.settings-content{width:min(100%,780px);margin-inline:auto}.settings-navigation{margin-bottom:28px}.settings-back{border:1px solid var(--glass-border);background:linear-gradient(145deg, var(--glass-highlight), transparent 55%), var(--glass-background);width:48px;height:48px;box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));transition:background var(--transition-fast), transform var(--transition-fast);border-radius:50%;place-items:center;padding:0;display:grid}.settings-back svg{width:21px;height:21px}.settings-header{margin-bottom:28px}.settings-header>p{color:var(--color-accent-strong);letter-spacing:.12em;text-transform:uppercase;margin-bottom:5px;font-size:.76rem;font-weight:750}.settings-header h1{letter-spacing:-.055em;font-size:clamp(2.5rem,11vw,4.5rem);font-weight:770;line-height:.98}.settings-header>span{color:var(--color-text-secondary);margin-top:11px;font-size:.95rem;line-height:1.45;display:block}.settings-privacy,.settings-section{border:1px solid var(--color-border);background:linear-gradient(145deg, #ffffff0f, transparent 48%), var(--glass-background-strong);box-shadow:var(--shadow-large);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}.settings-privacy{border-radius:var(--radius-large);grid-template-columns:auto minmax(0,1fr);gap:16px;margin-bottom:18px;padding:20px;display:grid}.settings-privacy-icon,.settings-section-icon,.settings-action-icon{border:1px solid var(--glass-border);background:linear-gradient(145deg, #ffffff1f, transparent), var(--color-accent-soft);color:var(--color-accent-strong);flex:none;place-items:center;display:grid}.settings-privacy-icon{border-radius:50%;width:48px;height:48px}.settings-privacy-icon svg{width:23px;height:23px}.settings-privacy h2{letter-spacing:-.02em;font-size:1.05rem;font-weight:720}.settings-privacy p{color:var(--color-text-secondary);margin-top:6px;font-size:.86rem;line-height:1.5}.settings-section{border-radius:var(--radius-large);padding:20px}.settings-section-heading{border-bottom:1px solid var(--color-border);align-items:center;gap:13px;padding-bottom:18px;display:flex}.settings-section-icon{border-radius:var(--radius-medium);width:44px;height:44px}.settings-section-icon svg{width:21px;height:21px}.settings-section-heading p{color:var(--color-accent-strong);letter-spacing:.09em;text-transform:uppercase;font-size:.68rem;font-weight:730}.settings-section-heading h2{letter-spacing:-.03em;margin-top:2px;font-size:1.35rem;font-weight:740}.settings-feedback{border-radius:var(--radius-medium);border:1px solid;align-items:flex-start;gap:10px;margin-top:18px;padding:12px 14px;font-size:.82rem;font-weight:600;line-height:1.45;display:flex}.settings-feedback svg{flex:none;width:19px;height:19px;margin-top:1px}.settings-feedback[data-type=success]{color:var(--color-success);background:#30d15817;border-color:#30d15847}.settings-feedback[data-type=error]{color:var(--color-danger);background:#ff453a17;border-color:#ff453a47}.settings-action-list{gap:12px;margin-top:18px;display:grid}.settings-action-card{border:1px solid var(--color-border);border-radius:var(--radius-medium);background:#ffffff08;grid-template-columns:auto minmax(0,1fr);gap:13px;padding:16px;display:grid}.settings-action-icon{border-radius:50%;width:42px;height:42px}.settings-action-icon svg{width:19px;height:19px}.settings-action-text h3{letter-spacing:-.015em;font-size:.98rem;font-weight:690}.settings-action-text p{color:var(--color-text-secondary);margin-top:5px;font-size:.8rem;line-height:1.45}.settings-file-input{display:none}.settings-action-button{min-height:var(--touch-target);border:1px solid var(--glass-border);border-radius:var(--radius-pill);background:var(--glass-background);color:var(--color-text);transition:background var(--transition-fast), filter var(--transition-fast), transform var(--transition-fast);grid-column:1/-1;justify-content:center;align-items:center;gap:7px;padding:8px 17px;font-size:.88rem;font-weight:680;display:inline-flex}.settings-action-button-primary{background:linear-gradient(135deg, var(--color-accent-strong), var(--color-accent));color:#fff;border-color:#ff2d7247;box-shadow:0 10px 25px #ff2d7233}.settings-action-button svg{width:18px;height:18px}.settings-action-button:hover:not(:disabled),.settings-action-button:focus-visible:not(:disabled){filter:brightness(1.1)}.settings-action-button:active:not(:disabled){transform:scale(.97)}.settings-action-button:disabled{cursor:wait;opacity:.58}.settings-button-spinner{animation:.85s linear infinite settings-button-spin}.settings-format{border-top:1px solid var(--color-border);color:var(--color-text-secondary);margin-top:18px}.settings-format summary{min-height:var(--touch-target);color:var(--color-text);cursor:pointer;align-items:center;gap:8px;padding-top:14px;font-size:.84rem;font-weight:680;list-style:none;display:flex}.settings-format summary::-webkit-details-marker{display:none}.settings-format summary svg{width:18px;height:18px;color:var(--color-accent-strong)}.settings-format>p{margin-top:8px;font-size:.78rem;line-height:1.5}.settings-format dl{gap:8px;margin-top:12px;display:grid}.settings-format dl>div{border:1px solid var(--color-border);border-radius:var(--radius-small);background:#ffffff08;padding:10px 12px}.settings-format dt{color:var(--color-accent-strong);font-family:ui-monospace,Cascadia Code,monospace;font-size:.75rem;font-weight:700}.settings-format dd{color:var(--color-text-secondary);margin-top:3px;font-size:.75rem;line-height:1.4}.settings-back:hover,.settings-back:focus-visible{background-color:var(--color-surface-hover)}.settings-back:active{transform:scale(.96)}@keyframes settings-button-spin{to{transform:rotate(360deg)}}@media (width>=640px){.settings-page{padding:calc(var(--safe-area-top) + 36px) calc(var(--safe-area-right) + 32px) calc(var(--safe-area-bottom) + 64px) calc(var(--safe-area-left) + 32px)}.settings-privacy,.settings-section{padding:26px}.settings-action-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.settings-action-button{grid-column:auto;min-width:124px}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#070709;--color-background-soft:#0e0e12;--color-surface:#16161c;--color-surface-hover:#202028;--color-text:#f7f7fa;--color-text-secondary:#a3a3ad;--color-text-muted:#72727d;--color-border:#ffffff1a;--color-accent:#ff2d72;--color-accent-strong:#ff4d86;--color-accent-soft:#ff2d722e;--color-danger:#ff453a;--color-success:#30d158;--glass-background:#23232aad;--glass-background-strong:#18181ed6;--glass-border:#ffffff24;--glass-highlight:#ffffff14;--glass-blur:24px;--shadow-small:0 8px 24px #0000003d;--shadow-large:0 24px 70px #0000007a;--radius-small:10px;--radius-medium:16px;--radius-large:24px;--radius-pill:999px;--content-width:1200px;--touch-target:44px;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-right:env(safe-area-inset-right,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--transition-fast:.16s ease;--transition-normal:.26s ease;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,sans-serif}*,:before,:after{box-sizing:border-box}html{background:var(--color-background);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-width:320px;min-height:100%}body{background:radial-gradient(circle at 50% -20%, #ff2d721a, transparent 38rem), var(--color-background);min-width:320px;min-height:100dvh;color:var(--color-text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:inherit;line-height:1.5;overflow-x:hidden}button,input,textarea,select{color:inherit;font:inherit}button,select{cursor:pointer}button{touch-action:manipulation}img,picture{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-block:0}#root{min-height:100dvh}::selection{background:var(--color-accent);color:#fff}:focus-visible{outline:3px solid var(--color-accent-strong);outline-offset:3px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
