:root{--background-dark:#0f1115;--background-light:#1a1d24;--glass-bg:#1a1d2499;--glass-border:#ffffff14;--primary-accent:#e5a00d;--primary-hover:#f5b01d;--text-main:#fff;--text-muted:#9ca3af;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius-sm:8px;--radius-md:8px;--radius-lg:8px;--danger:#ef4444;--success:#10b981}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--background-dark);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:linear-gradient(#e5a00d14,#0f111500 360px);background-attachment:fixed;flex-direction:column;min-height:100vh;display:flex}#root,.app-layout{min-height:100vh}.app-main{max-width:1000px;margin:0 auto}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:2rem;box-shadow:0 8px 32px #0000004d}h1,h2,h3,h4,h5,h6{letter-spacing:0;font-weight:700}h1{margin-bottom:1rem;font-size:2.5rem}p{color:var(--text-muted);line-height:1.6}.btn{background:var(--primary-accent);color:#111;border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s ease-in-out;display:inline-flex}.btn:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #e5a00d4d}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:var(--text-main);border:1px solid var(--glass-border);background:#ffffff1a}.btn-secondary:hover:not(:disabled){background:#ffffff26;box-shadow:0 4px 12px #0003}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 12px #ef44444d}input,select,textarea{border:1px solid var(--glass-border);border-radius:var(--radius-sm);width:100%;color:var(--text-main);font-family:var(--font-family);background:#0003;padding:.75rem 1rem;font-size:.95rem;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--primary-accent);outline:none;box-shadow:0 0 0 3px #e5a00d1a}textarea{resize:vertical;min-height:80px}.form-group{margin-bottom:1.5rem}.form-label{margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:100;background:#000000b3;justify-content:center;align-items:center;animation:.2s ease-out forwards overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal{border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:#1a1d24;width:100%;max-width:520px;margin:1rem;padding:2rem;animation:.25s cubic-bezier(.16,1,.3,1) forwards modalIn;box-shadow:0 24px 60px #0009}@keyframes modalIn{0%{opacity:0;transform:scale(.94)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h2{margin:0;font-size:1.35rem}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:.25rem;transition:color .15s;display:flex}.modal-close:hover{color:var(--text-main)}.segmented-control{border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:#0003;gap:.25rem;padding:.25rem;display:flex}.segment-btn{color:var(--text-muted);border-radius:calc(var(--radius-sm) - 2px);cursor:pointer;background:0 0;border:none;flex:1;padding:.5rem;font-size:.95rem;font-weight:500;transition:all .2s}.segment-btn:hover:not(.active):not(:disabled){color:var(--text-main);background:#ffffff0d}.segment-btn.active{background:var(--primary-accent);color:#111;box-shadow:0 2px 8px #e5a00d40}.segment-btn:disabled{opacity:.6;cursor:not-allowed}.setting-row{border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;background:#0003;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1rem;transition:all .2s;display:flex}.setting-row:hover:not(.disabled){background:#ffffff08;border-color:#ffffff26}.setting-row.active{background:#e5a00d0d;border-color:#e5a00d4d}.setting-row.disabled{opacity:.6;cursor:not-allowed}.setting-content{flex-direction:column;gap:.25rem;padding-right:1rem;display:flex}.setting-title{color:var(--text-main);font-size:.95rem;font-weight:600}.setting-row.active .setting-title{color:var(--primary-accent)}.setting-description{color:var(--text-muted);font-size:.8rem;line-height:1.4}.toggle-switch{background:#ffffff1a;border-radius:12px;flex-shrink:0;width:44px;height:24px;transition:background .3s;position:relative}.toggle-switch.on{background:var(--primary-accent)}.toggle-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .3s cubic-bezier(.175,.885,.32,1.275);position:absolute;top:3px;left:3px;box-shadow:0 2px 4px #0003}.toggle-switch.on .toggle-knob{transform:translate(20px)}.banner{border-radius:var(--radius-sm);margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.banner-error{color:#fca5a5;background:#ef44441f;border:1px solid #ef44444d}.banner-success{color:#6ee7b7;background:#10b9811f;border:1px solid #10b9814d}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid #00000040;border-top-color:#111;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}.spinner-light{border-color:#fff3;border-top-color:var(--primary-accent)}.nav-link{border-radius:var(--radius-sm);color:var(--text-main);align-items:center;gap:.75rem;padding:.75rem 1rem;text-decoration:none;transition:background .15s;display:flex}.nav-link:hover{background:#ffffff12}.nav-link.active{color:var(--primary-accent);background:#e5a00d1f}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}.reasoning-box{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-muted);background:#0003;margin-top:.75rem;padding:.75rem 1rem;font-size:.85rem;font-style:italic}.flex{display:flex}.flex-column{flex-direction:column;display:flex}.flex-center{align-items:center;display:flex}.flex-between{justify-content:space-between;display:flex}.align-start{align-items:flex-start}.align-center{align-items:center}.sidebar{justify-content:space-between;width:260px;height:calc(100vh - 2rem);margin-left:1rem;position:sticky;top:1rem;overflow-y:auto}.sidebar-account{border-top:1px solid var(--glass-border);margin-top:2rem;padding-top:1rem}.sidebar-user{flex-direction:column;gap:.2rem;min-width:0;margin-bottom:.85rem;display:flex}.sidebar-user span{color:var(--text-muted);font-size:.78rem}.sidebar-user strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-logout{width:100%;padding-left:.8rem;padding-right:.8rem}.auth-shell{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{width:min(100%,420px)}.auth-brand{align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.auth-brand h1{margin-bottom:.35rem;font-size:2rem;line-height:1}.auth-form{gap:.25rem;display:grid}.auth-submit{width:100%;margin-top:.5rem}.gap-xs{gap:.5rem}.gap-sm{gap:.75rem}.gap-md{gap:1rem}.margin-bottom-none{margin-bottom:0}.margin-bottom-xs{margin-bottom:.25rem}.margin-bottom-sm{margin-bottom:.5rem}.margin-bottom-md{margin-bottom:1rem}.margin-bottom-lg{margin-bottom:1.5rem}.margin-bottom-xl{margin-bottom:3rem}.margin-top-sm{margin-top:.5rem}.margin-top-md{margin-top:1rem}.margin-y-sm{margin-top:.4rem;margin-bottom:.4rem}.no-margin{margin:0}.padding-sm{padding:.5rem}.padding-md{padding:1rem}.padding-y-md{padding-top:1rem;padding-bottom:1rem}.padding-sidebar{padding:2rem 1.5rem}.text-sm{font-size:.85rem}.text-md{font-size:1.1rem}.text-lg{font-size:1.25rem}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-main{color:var(--text-main)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-accent{color:var(--primary-accent)}.w-full{width:100%}.shrink-0{flex-shrink:0}.flex-1{flex:1}.flex-2{flex:2}.min-w-0{min-width:0}.btn-sm{gap:.3rem;padding:.3rem .65rem;font-size:.78rem}.btn-icon{cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:.3rem;transition:color .15s;display:flex}.hover-danger:hover{color:var(--danger)}.btn-icon-text{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:.3rem;padding:.4rem 0;font-size:.8rem;display:flex}.icon-box-accent{border-radius:var(--radius-sm);background:#e5a00d33;padding:.75rem}.icon-box-round{border-radius:50%;display:inline-flex}.badge-mix{background:#ffffff1a;border-radius:1rem;padding:.25rem .75rem;font-size:.8rem}.page-header{gap:1rem}.playlist-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.playlist-card{padding:1.5rem;transition:transform .2s,box-shadow .2s}.playlist-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px #0006}.playlist-card-header{justify-content:flex-end}.refresh-badge{background:var(--primary-accent);color:#111}.playlist-cover{aspect-ratio:1;border-radius:var(--radius-sm);width:100%;overflow:hidden}.playlist-cover img{object-fit:cover;width:100%;height:100%}.playlist-actions{gap:.65rem;display:grid}.spinner-light-border{border-color:#fff #ffffff4d #ffffff4d}.banner-loading{color:var(--primary-accent);background:#e5a00d14;border:1px solid #e5a00d33;align-items:center;gap:.75rem;display:flex}.pin-display{border-radius:var(--radius-md);border:1px dashed var(--primary-accent);background:#0000004d;margin-bottom:2rem;padding:2rem}.pin-code{letter-spacing:.2em;font-size:3rem;font-weight:700}.server-option{border-radius:var(--radius-sm);border:1px solid var(--glass-border);cursor:pointer;text-align:left;background:#00000026;align-items:center;gap:.85rem;width:100%;padding:.9rem 1.1rem;transition:all .15s;display:flex}.server-option.selected{border-color:var(--primary-accent);background:#e5a00d14}.radio-dot{border:2px solid var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.radio-dot.selected{border-color:var(--primary-accent)}.radio-dot-inner{background:var(--primary-accent);border-radius:50%;width:8px;height:8px}.server-label{margin-bottom:.15rem;font-size:.9rem;font-weight:600}.server-url{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.min-w-\[8rem\]{min-width:8rem}.min-w-\[9rem\]{min-width:9rem}.animate-spin{animation:.7s linear infinite spin}.narrow-page,.settings-page{margin:0 auto;padding-bottom:4rem}.narrow-page{max-width:640px}.connect-page{padding-top:2rem}.settings-page{max-width:960px}.settings-section-title{border-bottom:1px solid var(--glass-border);padding-bottom:1rem}.settings-section{margin-bottom:1.5rem}.settings-header{max-width:720px}.settings-form-grid,.settings-status-grid{gap:1rem;display:grid}.settings-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-status-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.settings-status-pill{border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:#00000029;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.25rem .65rem;min-width:0;padding:.85rem;display:grid}.settings-status-pill.is-active{background:#22c55e14;border-color:#22c55e6b}.settings-status-icon{color:var(--primary-accent);grid-row:span 2;display:flex}.settings-status-pill span:not(.settings-status-icon){color:var(--text-muted);font-size:.78rem}.settings-status-pill strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-actions{flex-wrap:wrap}.settings-account-actions{justify-content:flex-end;margin-top:1rem;display:flex}.auth-output{border:1px solid var(--glass-border);border-radius:var(--radius-sm);max-height:260px;color:var(--text-main);white-space:pre-wrap;background:#00000057;margin-bottom:0;padding:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.5;overflow:auto}.select-control{background:#0006;padding:.75rem}.input-icon-wrap{position:relative}.input-icon{color:var(--text-muted);position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.input-with-icon{padding-left:2.75rem}.downloads-page{padding-bottom:4rem}.downloads-header{gap:1rem}.download-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.download-stat{border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:#0000002e;padding:1rem}.download-stat span,.catalog-section-head span,.artist-card p,.followed-card p,.followed-card span,.catalog-card span,.download-queue-row span{color:var(--text-muted);font-size:.82rem}.download-stat strong{margin-top:.25rem;font-size:1.7rem;display:block}.download-search{grid-template-columns:minmax(0,1fr) auto;gap:.75rem;display:grid}.search-input-wrap{border:1px solid var(--glass-border);border-radius:var(--radius-sm);min-width:0;color:var(--text-muted);background:#0003;align-items:center;gap:.75rem;padding:0 .85rem;display:flex}.search-input-wrap input{background:0 0;border:none;padding-left:0}.search-input-wrap input:focus{box-shadow:none}.catalog-stack,.queue-stack,.sync-stack,.history-stack{gap:.75rem;display:grid}.catalog-stack{margin-top:1rem}.catalog-section{gap:.75rem;display:grid}.catalog-section+.catalog-section{border-top:1px solid var(--glass-border);padding-top:1rem}.catalog-section-head,.list-head{min-width:0}.catalog-section-head{justify-content:space-between;gap:1rem;display:flex}.artist-grid,.followed-grid,.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.artist-card,.followed-card,.catalog-card{border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:#00000024;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:.75rem;min-height:88px;padding:.75rem;display:grid}.artist-card.is-followed{border-color:#10b98159}.followed-card{align-items:start}.followed-card span{align-items:center;gap:.35rem;display:inline-flex}.followed-card-actions{grid-column:1/-1;gap:.5rem;display:grid}.artist-card .btn,.followed-card .btn{grid-column:1/-1;width:100%}.artist-avatar,.catalog-card img,.sync-row img{object-fit:cover;background:#00000040;border-radius:50%;width:56px;height:56px}.catalog-card img.artist-cover,.sync-row img{border-radius:50%}.artist-card h3,.followed-card h3,.catalog-card h3{text-overflow:ellipsis;white-space:nowrap;margin:0 0 .2rem;font-size:.98rem;overflow:hidden}.artist-card p,.followed-card p,.catalog-card p{text-overflow:ellipsis;white-space:nowrap;margin:0 0 .2rem;font-size:.85rem;overflow:hidden}.catalog-actions{grid-column:1/-1;justify-content:flex-end;display:flex}.download-lists{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:start;gap:1rem;display:grid}.download-queue-row,.sync-row,.history-row{border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:#00000024;align-items:center;gap:.7rem;min-width:0;padding:.75rem;display:grid}.download-queue-row{grid-template-columns:10px minmax(0,1fr) auto}.download-queue-row a,.download-queue-row strong,.sync-row strong,.history-row strong{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;display:block;overflow:hidden}.queue-status-dot{background:var(--text-muted);border-radius:50%;width:8px;height:8px}.queue-status-dot[data-status=download],.queue-status-dot[data-status=processing],.queue-status-dot[data-status=queue_download],.queue-status-dot[data-status=queue_processing]{background:var(--primary-accent);box-shadow:0 0 0 4px #e5a00d21}.queue-status-dot[data-status=finished]{background:var(--success)}.queue-status-dot[data-status=error]{background:var(--danger)}.queue-row-actions{gap:.35rem;display:flex}.sync-row{grid-template-columns:44px minmax(0,1fr)}.sync-row img{width:44px;height:44px}.history-row{display:block}.history-row+.history-row{margin-top:.65rem}.empty-state{border:1px dashed var(--glass-border);border-radius:var(--radius-sm);color:var(--text-muted);text-align:center;padding:1rem}@media (width<=900px){.app-layout{display:block}.sidebar{width:auto;height:auto;margin:1rem;position:static}.download-stat-grid,.download-lists,.settings-status-grid{grid-template-columns:1fr}}@media (width<=620px){.padding-sidebar{padding:1.25rem}.downloads-header,.list-head{flex-direction:column;align-items:flex-start}.download-search,.artist-grid,.followed-grid,.catalog-grid,.settings-form-grid{grid-template-columns:1fr}.download-search .btn,.catalog-actions .btn{width:100%}}
