:root{--brand:#20361c;--brand-600:#2c4827;--brand-700:#182812;--brand-tint:#e8efe6;--accent:#d39909;--accent-600:#b88308;--accent-tint:#fbf2da;--bg:#f7f8f5;--surface:#fff;--surface-2:#f0f2ec;--border:#e4e7df;--border-strong:#cdd2c5;--text:#1c241a;--text-muted:#5b6356;--text-soft:#8a917f;--success:#16a34a;--danger:#dc2626;--warning:#d97706;--radius:8px;--radius-lg:14px;--radius-pill:999px;--shadow-sm:0 1px 2px #1018280d;--shadow:0 4px 14px #10182814;--shadow-lg:0 12px 40px #10182824;--font-ui:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}body{font-family:var(--font-ui);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}.font-mono{font-family:var(--font-mono)}.text-muted-2{color:var(--text-muted)}.text-soft{color:var(--text-soft)}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--accent-600);font-size:.72rem;font-weight:600}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.panel-pad{padding:1.5rem}.btn-brand{background:var(--brand);border-color:var(--brand);color:#fff;border-radius:var(--radius);font-weight:600;transition:background .15s,transform 50ms}.btn-brand:hover{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.btn-brand:active{transform:translateY(1px)}.btn-brand:focus-visible{outline:3px solid var(--brand-tint);outline-offset:2px}.btn-ghost{border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius);background:0 0;font-weight:500}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.form-control,.form-select{border-radius:var(--radius);border-color:var(--border-strong);color:var(--text)}.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-2);text-align:center;cursor:pointer;padding:2.5rem 1.5rem;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.dragover{border-color:var(--brand);background:var(--brand-tint)}.track-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.65rem .85rem;display:flex}.track-handle{cursor:grab;color:var(--text-soft)}.track-row.dragging{opacity:.5}.toast-stack{z-index:1080;flex-direction:column;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}.toast-item{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--radius);box-shadow:var(--shadow);min-width:240px;padding:.75rem 1rem;animation:.2s toast-in}.toast-item.is-success{border-left-color:var(--success)}.toast-item.is-error{border-left-color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.is-loading{pointer-events:none;opacity:.65;position:relative}.spinner-inline{border:2px solid var(--brand-tint);border-top-color:var(--brand);border-radius:50%;width:1rem;height:1rem;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.player-stage{background:radial-gradient(120% 80% at 50% -10%, var(--brand-tint) 0%, transparent 55%), var(--bg);justify-content:center;align-items:flex-start;min-height:100dvh;padding:2rem 1rem;display:flex}.player{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);margin:auto;overflow:hidden}.player-cover{aspect-ratio:1;background:var(--surface-2);border-radius:20px;width:100%;max-height:420px;position:relative;overflow:hidden}.player-cover img{object-fit:cover;width:100%;height:100%;display:block}.player-cover-fallback{background:var(--brand);color:#ffffffd9;justify-content:center;align-items:center;font-size:3.5rem;display:flex;position:absolute;inset:0}.eq{border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1c241a8c;align-items:flex-end;gap:3px;height:22px;padding:6px 8px;display:none;position:absolute;bottom:.85rem;right:.85rem}.player.is-playing .eq{display:flex}.eq span{background:var(--accent);border-radius:2px;width:3px;height:6px;animation:.9s ease-in-out infinite eq}.eq span:nth-child(2){animation-delay:.15s}.eq span:nth-child(3){animation-delay:.3s}.eq span:nth-child(4){animation-delay:.45s}@keyframes eq{0%,to{height:5px}50%{height:18px}}.player-body{padding:1.25rem 1.35rem 1.5rem}.player-track-title{white-space:nowrap;text-overflow:ellipsis;white-space:nowrap;width:240px;margin:0;font-size:1.1rem;font-weight:600;line-height:1.3;overflow:hidden}.player-body>.d-flex>.overflow-hidden{flex:auto;min-width:0}.player-track-title,.player-body .eyebrow{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.player-counter{font-family:var(--font-mono);color:var(--text-soft);letter-spacing:.04em;font-size:.72rem}.seek-wrap{margin:1.1rem 0 .35rem;padding:8px 0;position:relative}.seek-track{background:var(--surface-2);border-radius:var(--radius-pill);height:7px;position:relative;overflow:hidden}.seek-fill{background:linear-gradient(90deg, var(--accent) 0%, #e9b53d 100%);border-radius:var(--radius-pill);width:0%;height:100%;transition:width .1s linear;position:absolute;top:0;left:0}.seek-wrap.is-seeking .seek-fill{transition:none}.seek-thumb{background:var(--accent);pointer-events:none;border:2px solid #fff;border-radius:50%;width:16px;height:16px;transition:left .1s linear;position:absolute;top:50%;left:0;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000040}.seek-wrap.is-seeking .seek-thumb{transition:none;transform:translate(-50%,-50%)scale(1.25)}.seek-input{opacity:0;cursor:pointer;touch-action:none;width:100%;height:100%;margin:0;position:absolute;top:0;left:0}.seek-input:focus-visible~.seek-track{outline:3px solid var(--accent-tint);outline-offset:2px}.seek-times{font-family:var(--font-mono);color:var(--text-soft);justify-content:space-between;font-size:.7rem;display:flex}.player-controls{justify-content:center;align-items:center;gap:1.75rem;margin-top:1rem;display:flex}.ctrl{cursor:pointer;color:var(--text-muted);background:0 0;border:none;place-items:center;font-size:1.35rem;transition:color .15s,transform 50ms;display:grid}.ctrl:hover{color:var(--text)}.ctrl:active{transform:scale(.92)}.ctrl:focus-visible{outline:3px solid var(--brand-tint);outline-offset:3px;border-radius:50%}.ctrl-play{background:var(--brand);color:#fff;border-radius:50%;width:58px;height:58px;font-size:1.4rem;box-shadow:0 6px 18px #20361c52}.ctrl-play:hover{background:var(--brand-600);color:#fff}.player-list{border-top:1px solid var(--border)}.player-list-head{justify-content:space-between;align-items:center;padding:.9rem 1.35rem .5rem;display:flex}.player-list-head .eyebrow{margin:0}.player-row{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.75rem;width:100%;padding:.6rem 1.35rem;transition:background .12s;display:flex;position:relative}.player-row:before{content:"";background:0 0;width:3px;position:absolute;top:0;bottom:0;left:0}.player-row:hover{background:var(--surface-2)}.player-row.is-active{background:var(--accent-tint)}.player-row.is-active:before{background:var(--accent)}.player-row-num{font-family:var(--font-mono);color:var(--text-soft);flex-shrink:0;width:1.5rem;font-size:.75rem}.player-row.is-active .player-row-num{color:var(--accent-600)}.player-row-name{white-space:nowrap;text-overflow:ellipsis;white-space:nowrap;width:1px;min-width:0;color:var(--text);flex:auto;font-size:.92rem;overflow:hidden}.player-row.is-active .player-row-name{font-weight:600}.player-row-dur{font-family:var(--font-mono);color:var(--text-soft);flex-shrink:0;font-size:.72rem}.player-footer{text-align:center;color:var(--text-soft);padding:1rem;font-size:.72rem}.dash-head{border-bottom:1px solid var(--border);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-soft);align-items:center;gap:1rem;padding:.75rem 1.25rem;font-size:.72rem}.dash-row{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex}.dash-row:last-of-type{border-bottom:0}.dash-main{flex-grow:1;align-items:center;gap:.85rem;min-width:0;display:flex}.dash-cover{border-radius:var(--radius);background:var(--surface-2);width:44px;height:44px;color:var(--text-soft);flex-shrink:0;place-items:center;display:grid;overflow:hidden}.dash-cover img{object-fit:cover;width:100%;height:100%}.dash-title{font-size:.95rem;font-weight:600}.dash-link{color:var(--text-soft);max-width:260px;font-size:.75rem;text-decoration:none}.dash-link:hover{color:var(--brand);text-decoration:underline}.dash-meta{color:var(--text-muted);font-size:.85rem}.dash-actions{flex-shrink:0;justify-content:flex-end;gap:.35rem;width:160px;display:flex}.dash-actions .btn{padding:.35rem .55rem}@media (width<=767.98px){.dash-row{flex-wrap:wrap;gap:.5rem .75rem;padding:1rem 1.15rem}.dash-main{flex-basis:100%}.dash-meta{width:auto!important}.dash-actions{border-top:1px solid var(--border);justify-content:flex-start;width:100%;margin-top:.35rem;padding-top:.65rem}.dash-link{max-width:75vw}}.player-cover.is-logo{background:#fff}.player-cover.is-logo img{object-fit:cover}.dash-cover.is-logo{background:#fff}.dash-cover.is-logo img{object-fit:cover}.cover-thumb{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);flex-shrink:0;width:72px;height:72px;overflow:hidden}.cover-thumb img{object-fit:cover;width:100%;height:100%;display:block}.cover-thumb.is-logo{background:#fff}:root{--topbar-h:56px}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:1030;align-items:center;padding:0 1.25rem;display:flex;position:fixed;top:0;left:0;right:0}.topbar-logo{width:auto;height:32px;display:block}.player-stage{min-height:calc(100dvh - var(--topbar-h))}
