:root{--bg:#0d0e13;--bg-soft:#12141b;--surface:#1a1d26;--surface-hover:#22262f;--border:#2a2f3b;--border-soft:#1f232c;--text:#f2f3f5;--text-muted:#9aa0ac;--text-dim:#6d7481;--accent:#e5c675;--accent-hover:#f1d78f;--accent-ink:#1c1608;--danger:#ff4368;--danger-soft:#2a1520;--radius-sm:8px;--radius:14px;--radius-lg:22px;--radius-pill:999px;--shadow-sm:0 2px 8px rgba(0,0,0,.25);--shadow:0 10px 30px rgba(0,0,0,.35);--shadow-lg:0 24px 60px rgba(0,0,0,.45);--sidebar-width:264px;--header-height:68px;--content-max:1180px;--transition:180ms ease;--font-sans:"Poppins",system-ui,sans-serif}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:#2a2f3b transparent;scrollbar-color:var(--border) transparent;scrollbar-width:thin}body{background-color:#0d0e13;background-color:var(--bg);background-image:radial-gradient(70rem 35rem at 15% -5%,#e5c67514,transparent);background-repeat:no-repeat;color:#f2f3f5;color:var(--text);font-family:Poppins,system-ui,sans-serif;font-family:var(--font-sans);font-size:16px;line-height:1.5;min-height:100vh;text-rendering:optimizelegibility}h1,h2,h3,h4{font-weight:600;line-height:1.2}ol,ul{list-style:none}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}button{background:none;border:none;color:inherit}button:enabled{cursor:pointer}:focus-visible{border-radius:8px;border-radius:var(--radius-sm);outline:2px solid #e5c675;outline:2px solid var(--accent);outline-offset:2px}.btn{align-items:center;border-radius:999px;border-radius:var(--radius-pill);display:inline-flex;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;letter-spacing:.01em;padding:.7rem 1.4rem;transition:background-color .18s ease,-webkit-transform .18s ease;transition:background-color .18s ease,transform .18s ease;transition:background-color .18s ease,transform .18s ease,-webkit-transform .18s ease;transition:background-color var(--transition),-webkit-transform var(--transition);transition:background-color var(--transition),transform var(--transition);transition:background-color var(--transition),transform var(--transition),-webkit-transform var(--transition);white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.45}.btn:enabled:active{-webkit-transform:scale(.97);transform:scale(.97)}.btn--primary{background-color:#e5c675;background-color:var(--accent);color:#1c1608;color:var(--accent-ink)}.btn--primary:enabled:hover{background-color:#f1d78f;background-color:var(--accent-hover)}.btn--ghost{background-color:#1a1d26;background-color:var(--surface);border:1px solid #2a2f3b;border:1px solid var(--border);color:#f2f3f5;color:var(--text)}.btn--ghost:enabled:hover{background-color:#22262f;background-color:var(--surface-hover)}.btn--icon{border-radius:999px;border-radius:var(--radius-pill);height:42px;padding:0;width:42px}.field{display:flex;flex-direction:column;gap:.4rem;text-align:left;width:100%}.field__label{color:#9aa0ac;color:var(--text-muted);font-size:.8rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.input,.textarea{background-color:#12141b;background-color:var(--bg-soft);border:1px solid #2a2f3b;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius-sm);color:#f2f3f5;color:var(--text);padding:.75rem 1rem;transition:border-color .18s ease,background-color .18s ease;transition:border-color var(--transition),background-color var(--transition);width:100%}.textarea{min-height:120px;resize:vertical}.input::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:#6d7481;color:var(--text-dim)}.input::placeholder,.textarea::placeholder{color:#6d7481;color:var(--text-dim)}.input:hover,.textarea:hover{border-color:#6d7481;border-color:var(--text-dim)}.input:focus,.textarea:focus{border-color:#e5c675;border-color:var(--accent);outline:none}.field__hint{color:#6d7481;color:var(--text-dim);font-size:.78rem}.field__error{color:#ff4368;color:var(--danger);font-size:.78rem;min-height:1.2em}.card{background-color:#1a1d26;background-color:var(--surface);border:1px solid #1f232c;border:1px solid var(--border-soft);border-radius:22px;border-radius:var(--radius-lg);box-shadow:0 10px 30px rgba(0,0,0,.35);box-shadow:var(--shadow)}.sr-only{-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (prefers-reduced-motion:reduce){*,:after,:before{-webkit-animation-duration:0s;animation-duration:0s;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-duration:0s}}.brand{align-items:center;display:flex;gap:.65rem;padding:.5rem .6rem}.brand__mark{background-image:linear-gradient(140deg,var(--accent),#b9853f);border-radius:30% 70% 70% 30%/30% 30% 70% 70%;flex-shrink:0;height:26px;width:26px}.brand__text{font-size:1.3rem;font-weight:400;letter-spacing:-.02em}.brand__text-strong{font-weight:700}.album-skeleton{display:flex;flex-direction:column;gap:.6rem;padding:.6rem}.skeleton{-webkit-animation:pulse 1.4s ease-in-out infinite;animation:pulse 1.4s ease-in-out infinite;background-color:var(--surface);border-radius:var(--radius-sm);display:block}.skeleton--art{aspect-ratio:1;width:100%}.skeleton--line{height:.8rem;width:80%}.skeleton--short{width:45%}@-webkit-keyframes pulse{50%{opacity:.4}}@keyframes pulse{50%{opacity:.4}}.sidebar{background-color:var(--bg-soft);border-right:1px solid var(--border-soft);display:flex;flex-direction:column;gap:1.5rem;height:100vh;left:0;padding:1.25rem 1rem;position:fixed;top:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);transition:-webkit-transform var(--transition);transition:transform var(--transition);transition:transform var(--transition),-webkit-transform var(--transition);width:var(--sidebar-width);z-index:40}.sidebar.is-open{box-shadow:var(--shadow-lg);-webkit-transform:translateX(0);transform:translateX(0)}.side-top{justify-content:space-between}.side-close,.side-top{align-items:center;display:flex}.side-close{border-radius:var(--radius-sm);color:var(--text-dim);height:38px;justify-content:center;width:38px}.side-close:hover{background-color:var(--surface);color:var(--text)}.side-nav{display:flex;flex-direction:column;gap:.35rem}.side-link{align-items:center;border-radius:var(--radius);color:var(--text-muted);display:flex;font-size:.95rem;font-weight:500;gap:.85rem;padding:.7rem .9rem;transition:background-color var(--transition),color var(--transition)}.side-link:hover{background-color:var(--surface);color:var(--text)}.side-link.is-active{background-color:var(--surface);color:var(--accent)}.side-foot{border-top:1px solid var(--border-soft);gap:.5rem;margin-top:auto;padding-top:1rem}.side-foot,.side-logout{align-items:center;display:flex}.side-logout{border-radius:var(--radius-sm);color:var(--text-dim);flex-shrink:0;height:38px;justify-content:center;transition:background-color var(--transition),color var(--transition);width:38px}.side-logout:hover{background-color:var(--danger-soft);color:var(--danger)}.user-badge{align-items:center;display:flex;gap:.7rem;min-width:0}.user-badge__avatar{border:1px solid var(--border);border-radius:50%;flex-shrink:0;height:40px;object-fit:cover;width:40px}.user-badge__info{min-width:0}.user-badge__name{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-badge__label{color:var(--text-dim);font-size:.72rem}.user-badge__skeleton{height:.85rem;margin-bottom:.25rem;width:6rem}@media screen and (min-width:992px){.sidebar{-webkit-transform:translateX(0);transform:translateX(0)}.side-close{display:none}}.app-shell{display:flex;min-height:100vh}.app-main{display:flex;flex:1 1;flex-direction:column;min-width:0}.app-overlay{background-color:rgba(5,6,9,.65);inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity var(--transition);z-index:30}.app-overlay.is-visible{opacity:1;pointer-events:auto}.page-head{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background-color:rgba(13,14,19,.82);border-bottom:1px solid var(--border-soft);display:flex;gap:.85rem;min-height:var(--header-height);padding:.75rem clamp(1rem,3vw,2rem);position:-webkit-sticky;position:sticky;top:0;z-index:20}.page-head__titles{min-width:0}.page-title{font-size:clamp(1.25rem,1rem + 1.5vw,1.75rem);letter-spacing:-.01em}.page-subtitle{color:var(--text-muted);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-head__actions{gap:.5rem;margin-left:auto}.menu-btn,.page-head__actions{align-items:center;display:flex}.menu-btn{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);flex-shrink:0;height:40px;justify-content:center;transition:background-color var(--transition);width:40px}.menu-btn:hover{background-color:var(--surface-hover)}.page-body{flex:1 1;margin-inline:auto;max-width:var(--content-max);padding:clamp(1.25rem,3vw,2.25rem) clamp(1rem,3vw,2rem) 4rem;width:100%}.is-menu-open{overflow:hidden}@media screen and (min-width:992px){.app-main{margin-left:var(--sidebar-width)}.app-overlay,.menu-btn{display:none}}.loader{align-items:center;display:flex;justify-content:center;padding:3.5rem 0;width:100%}.loader__spinner{-webkit-animation:spin .9s linear infinite;animation:spin .9s linear infinite;border:3px solid var(--border);border-radius:50%;border-top-color:var(--accent);height:38px;width:38px}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.empty-state{align-items:center;display:flex;flex-direction:column;gap:.85rem;margin-inline:auto;max-width:26rem;padding:3.5rem 1rem;text-align:center}.empty-state__icon{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:50%;color:var(--accent);display:flex;height:64px;justify-content:center;width:64px}.empty-state__title{font-size:1.15rem}.empty-state__text{color:var(--text-muted);font-size:.9rem}.player{flex:1 1 15rem;gap:.65rem;max-width:22rem}.player,.player__toggle{align-items:center;display:flex}.player__toggle{background-color:var(--accent);border-radius:50%;color:var(--accent-ink);flex-shrink:0;height:36px;justify-content:center;transition:background-color var(--transition),-webkit-transform var(--transition);transition:background-color var(--transition),transform var(--transition);transition:background-color var(--transition),transform var(--transition),-webkit-transform var(--transition);width:36px}.player__toggle:hover{background-color:var(--accent-hover);-webkit-transform:scale(1.07);transform:scale(1.07)}.player__seek{accent-color:var(--accent);cursor:pointer;flex:1 1;min-width:4rem}.player__time{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:var(--text-dim);font-size:.78rem;font-variant-numeric:tabular-nums;min-width:2.2rem;text-align:right}.fav-btn{align-items:center;border-radius:50%;color:var(--text-dim);display:flex;flex-shrink:0;height:38px;justify-content:center;margin-left:auto;transition:background-color var(--transition),color var(--transition);width:38px}.fav-btn:hover{background-color:var(--surface-hover);color:var(--danger)}.fav-btn:disabled{cursor:progress;opacity:.5}.fav-btn.is-active{color:var(--danger)}.fav-btn.is-active svg{-webkit-animation:pop .26s ease;animation:pop .26s ease}.fav-btn.is-active:hover{background-color:var(--danger-soft)}@-webkit-keyframes pop{50%{-webkit-transform:scale(1.25);transform:scale(1.25)}}@keyframes pop{50%{-webkit-transform:scale(1.25);transform:scale(1.25)}}.track-list{display:flex;flex-direction:column;gap:.25rem}.track{align-items:center;border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:.75rem;padding:.6rem .7rem;transition:background-color var(--transition)}.track:hover{background-color:var(--surface)}.track__index{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:var(--text-dim);font-size:.85rem;font-variant-numeric:tabular-nums;text-align:right;width:1.4rem}.track__art{border-radius:10px;flex-shrink:0;height:46px;object-fit:cover;width:46px}.track__meta{flex:1 1 40%;min-width:0}.track__name{font-size:.95rem;font-weight:500}.track__name,.track__sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track__sub{color:var(--text-muted);font-size:.8rem}.track__dot{margin-inline:.4rem}.album-page{gap:2rem}.album-head,.album-page{display:flex;flex-direction:column}.album-head{align-items:center;gap:1.25rem;text-align:center}.album-head__art{border-radius:var(--radius);box-shadow:var(--shadow-lg);width:min(65%,13rem)}.album-head__kind{color:var(--text-dim);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}.album-head__title{font-size:clamp(1.45rem,1rem + 2vw,2.3rem);letter-spacing:-.02em}.album-head__artist{color:var(--accent);font-weight:500}.album-head__meta{color:var(--text-muted);font-size:.85rem}@media screen and (min-width:768px){.album-head{align-items:flex-end;flex-direction:row;gap:1.75rem;text-align:left}.album-head__art{width:13rem}}.login-page{grid-gap:2.5rem;align-items:center;display:grid;gap:2.5rem;justify-items:center;margin-inline:auto;max-width:64rem;min-height:100vh;padding:2.5rem 1.25rem}.login-hero{display:flex;flex-direction:column;gap:.75rem;max-width:26rem;text-align:center}.login-hero .brand{align-self:center}.login-hero__title{font-size:clamp(1.6rem,1rem + 2.5vw,2.6rem);letter-spacing:-.02em}.login-hero__text{color:var(--text-muted)}.login-hero__art{border-radius:var(--radius-lg);margin-inline:auto;width:min(70%,15rem)}.login-card{display:flex;flex-direction:column;gap:1rem;max-width:24rem;padding:2rem;width:100%}.login-card__title{font-size:1.5rem}.login-card__text{color:var(--text-muted);font-size:.9rem;margin-top:-.5rem}@media screen and (min-width:992px){.login-page{gap:4rem;grid-template-columns:1.1fr 1fr;justify-items:stretch}.login-hero{text-align:left}.login-hero .brand{align-self:flex-start;padding-left:0}.login-hero__art{margin-inline:0}.login-card{justify-self:end;padding:2.5rem}}.notfound{align-items:center;display:flex;flex-direction:column;gap:.6rem;justify-content:center;min-height:100vh;padding:2rem 1.25rem;text-align:center}.notfound__code{color:var(--accent);font-size:clamp(3.5rem,12vw,6rem);font-weight:700;line-height:1}.notfound__title{font-size:clamp(1.25rem,4vw,1.75rem)}.notfound__text{color:var(--text-muted);margin-bottom:.75rem}.profile-card{margin-inline:auto;max-width:30rem;overflow:hidden;padding-bottom:2rem;text-align:center}.profile-card__cover{background-image:linear-gradient(120deg,#e5c67559,#788cff40);height:8.5rem}.profile-card__avatar{border:4px solid var(--surface);border-radius:50%;height:7rem;margin:-3.5rem auto 1rem;object-fit:cover;width:7rem}.profile-card__name{font-size:1.5rem}.profile-card__email{color:var(--text-muted);font-size:.9rem}.profile-card__bio{border-top:1px solid var(--border-soft);color:var(--text-muted);margin:1.25rem 1.5rem 0;padding-top:1.25rem;text-align:left;white-space:pre-wrap;word-break:break-word}.edit-grid{grid-gap:1.5rem;display:grid;gap:1.5rem}.edit-preview{align-items:center;display:flex;flex-direction:column;gap:.3rem;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:1.75rem}.edit-preview__avatar{border:1px solid var(--border);border-radius:50%;height:6.5rem;margin-bottom:.6rem;object-fit:cover;width:6.5rem}.edit-preview__name{font-weight:600}.edit-preview__email{color:var(--text-muted);font-size:.85rem}.edit-form{display:flex;flex-direction:column;gap:1rem;padding:1.75rem}.edit-form__actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}@media screen and (min-width:992px){.edit-grid{align-items:start;grid-template-columns:18rem 1fr}}.album-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.album-card{border-radius:var(--radius);display:block;padding:.6rem;transition:background-color var(--transition)}.album-card__art{aspect-ratio:1;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);margin-bottom:.75rem;overflow:hidden;position:relative}.album-card__art img{height:100%;object-fit:cover;transition:-webkit-transform var(--transition);transition:transform var(--transition);transition:transform var(--transition),-webkit-transform var(--transition);width:100%}.album-card__play{align-items:center;background-color:var(--accent);border-radius:50%;bottom:.6rem;box-shadow:var(--shadow);color:var(--accent-ink);display:flex;height:42px;justify-content:center;opacity:0;position:absolute;right:.6rem;-webkit-transform:translateY(.5rem);transform:translateY(.5rem);transition:opacity var(--transition),-webkit-transform var(--transition);transition:opacity var(--transition),transform var(--transition);transition:opacity var(--transition),transform var(--transition),-webkit-transform var(--transition);width:42px}.album-card__title{font-size:.95rem}.album-card__artist,.album-card__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-card__artist{color:var(--text-muted);font-size:.85rem}.album-card__meta{color:var(--text-dim);font-size:.75rem}.album-card:hover{background-color:var(--surface)}.album-card:hover .album-card__art img{-webkit-transform:scale(1.06);transform:scale(1.06)}.album-card:focus-visible .album-card__play,.album-card:hover .album-card__play{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.search-form{display:flex;gap:.6rem;margin-bottom:1.75rem}.search-field{align-items:center;background-color:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-dim);display:flex;flex:1 1;gap:.6rem;max-width:30rem;padding:0 1.1rem;transition:border-color var(--transition)}.search-field:focus-within{border-color:var(--accent);color:var(--accent)}.search-field__input{background:none;border:none;color:var(--text);flex:1 1;min-width:0;outline:none;padding:.75rem 0}.search-field__input::-webkit-input-placeholder{color:var(--text-dim)}.search-field__input::placeholder{color:var(--text-dim)}.search-results__count{color:var(--text-muted);font-size:.9rem;margin-bottom:1rem}
/*# sourceMappingURL=main.aae48af4.css.map*/