@font-face{font-family:q;src:url(Quicksand-VariableFont_wght.ttf)}:root{--bg:#090b10;--panel:#11151d;--panel2:#171c26;--line:#252c39;--text:#f5f7fb;--muted:#8d96a8;--accent:#7c5cff;--green:#35d07f;--red:#ff5d68;--yellow:#f2b94b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px q,system-ui}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}aside{position:sticky;top:0;height:100vh;background:#0d1016;border-right:1px solid var(--line);padding:22px 15px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 25px;color:white;text-decoration:none}.brand i{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--accent),#aa62ff);font-style:normal;font-weight:800}.brand b{font-size:16px}.brand small,.song small,.block{display:block;color:var(--muted);font-size:12px;margin-top:3px}aside nav{display:grid;gap:4px}aside nav a{padding:11px 13px;border-radius:9px;color:#aeb6c5;text-decoration:none;font-weight:650}aside nav a:hover,aside nav a.on{background:#1b2030;color:#fff}aside nav em{float:right;background:var(--accent);padding:1px 7px;border-radius:20px;font-style:normal}.nav-title{display:flex;justify-content:space-between;color:#687185;font-size:11px;font-weight:800;padding:28px 10px 9px}.nav-title button,.actions button,.actions a,.close{border:0;background:none;color:inherit;cursor:pointer}.playlists{overflow:auto}.playlists span{display:inline-block;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.worker-mini{margin-top:auto;border:1px solid var(--line);border-radius:10px;padding:11px;display:flex;align-items:center;gap:9px}.worker-mini>i,.status i{width:7px;height:7px;background:var(--green);border-radius:50%}.worker-mini>i.bad{background:var(--red)}.worker-mini b{font-size:12px}.worker-mini small{display:block;color:var(--muted)}.worker-mini a{margin-left:auto;color:#a99aff;font-size:11px}main{min-width:0}header{height:70px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;position:sticky;top:0;background:rgba(9,11,16,.9);backdrop-filter:blur(15px);z-index:4}header form{max-width:720px;flex:1;display:flex;align-items:center;gap:10px}header input{width:100%;background:transparent;border:0;color:white;font:inherit;outline:0}.content{padding:34px;max-width:1600px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:25px}.heading small,.hero small,dialog small{color:#8975ff;font-weight:800;letter-spacing:.12em}.heading h1,.hero h1{font-size:32px;margin:5px 0}.heading p,.hero p,.form-section p{color:var(--muted);margin:0}.btn{border:0;border-radius:9px;padding:10px 15px;background:var(--accent);color:#fff;text-decoration:none;font:700 13px q;cursor:pointer}.btn.ghost{background:var(--panel2);border:1px solid var(--line)}.filters,.selection{display:flex;gap:10px;align-items:center;margin:15px 0;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:11px}.filters input,.filters select,.selection select,input,select{background:#0c0f15;color:white;border:1px solid var(--line);border-radius:8px;padding:10px 12px}.filters input{flex:1}.selection b{margin-right:auto}.selection small{color:var(--muted);margin-left:8px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}table{border-collapse:collapse;width:100%}th{text-align:left;color:#737d90;font-size:11px;letter-spacing:.08em;padding:12px 14px;border-bottom:1px solid var(--line)}td{padding:12px 14px;border-bottom:1px solid #1e2430}tbody tr:hover{background:#151a24}.song{display:flex;gap:12px;align-items:center;min-width:230px}.song a{color:#fff;text-decoration:none;font-weight:750}.cover{width:42px;height:42px;border-radius:7px;background:#252c39;display:grid;place-items:center;overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover}.mono{font-family:ui-monospace,monospace;font-size:12px}.muted{color:var(--muted)}.status{display:inline-flex;gap:7px;align-items:center;padding:5px 8px;border-radius:20px;background:#202631;white-space:nowrap;font-size:11px}.status.downloaded{color:var(--green);background:#123022}.status.failed{color:#ff8b93;background:#351b21}.status.queued,.status.downloading{color:var(--yellow);background:#332a17}.status.missing{color:#9aa3b3}.actions{display:flex;gap:5px}.actions>*{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:7px;color:#b8c0ce;text-decoration:none}.actions .danger{color:var(--red)}.table-foot{display:flex;justify-content:space-between;align-items:center;color:var(--muted);padding:16px 3px}.pager{display:flex;gap:5px}.pager a{padding:7px 10px;border:1px solid var(--line);border-radius:7px;color:#aaa;text-decoration:none}.pager a.on{background:var(--accent);color:#fff}.empty{text-align:center;padding:55px;color:var(--muted)}.empty h3{color:white}.hero{display:flex;gap:24px;align-items:center;margin-bottom:30px}.hero-cover{width:150px;height:150px;border-radius:15px;background:linear-gradient(145deg,#744dff,#2f1b60);display:grid;place-items:center;font-size:45px}.hero .btn{display:inline-block;margin-top:18px;margin-right:7px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.stats article,.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}.stats small{display:block;color:var(--muted)}.stats b{font-size:25px}.stats .error b,.bad{color:var(--red)}.ok{color:var(--green)}.panel h2{margin-top:0}.panel>.table-wrap{margin:0 -20px -20px;border-radius:0;border-width:1px 0 0}.song-form{padding:0}.form-section{display:grid;grid-template-columns:220px 1fr;gap:35px;padding:26px;border-bottom:1px solid var(--line)}.form-section h3{margin:0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.grid label,dialog label{display:grid;gap:7px;color:#aeb6c5;font-weight:650}.grid .wide{grid-column:1/-1}.grid input{width:100%}.input-action{display:flex;gap:8px}.input-action input{flex:1}.check{display:flex!important;align-items:center}.song-form footer,dialog footer{display:flex;justify-content:flex-end;gap:8px;padding:20px}dialog{background:var(--panel);color:white;border:1px solid var(--line);border-radius:14px;width:min(430px,90vw)}dialog::backdrop{background:#000a;backdrop-filter:blur(3px)}dialog .close{float:right;font-size:25px}.toast{background:#18231e;border:1px solid #285d42;border-radius:9px;padding:12px 16px;box-shadow:0 10px 40px #0008}.toast.bad{background:#321a20;border-color:#73303b}#toasts{position:fixed;right:20px;bottom:20px;display:grid;gap:8px;z-index:20}.mobile{display:none;background:none;border:0;color:white;font-size:20px}@media(max-width:800px){.shell{grid-template-columns:1fr}aside{position:fixed;z-index:10;width:270px;transform:translateX(-100%);transition:.2s}aside.open{transform:none}.mobile{display:block}.content{padding:20px}header{padding:0 15px}.stats{grid-template-columns:1fr 1fr}.form-section{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.heading h1{font-size:26px}.hero-cover{width:90px;height:90px}.selection{overflow:auto}}

.song-id{font-weight:800;color:#a99aff;white-space:nowrap}.filters.is-loading{opacity:.62;pointer-events:none}.filters.is-loading:after{content:'Hľadám…';color:var(--muted);font-size:12px;white-space:nowrap}

.btn.danger{background:#351b21;border:1px solid #70303a;color:#ff8b93}

.select-all{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--muted);font-size:10px}.select-all input{margin:0}.selection .btn:disabled{opacity:.5;cursor:wait}

.duration-cell>span{display:block;color:var(--text)}.file-duration{display:block;margin-top:4px;color:#e7a83f;font-weight:750}.file-duration.mismatch{color:#ff9f43}.file-duration.mismatch::first-letter{font-weight:900}

.playlist-total{font-family:ui-monospace,monospace;font-weight:750;color:#dbe0e9}.playlist-total.file,.selection-file-time{color:#f0a847!important}.hero p{display:flex;flex-wrap:wrap;gap:5px;align-items:center}

[data-download-dashboard]{transition:opacity .18s ease}[data-download-dashboard].is-refreshing{opacity:.62}.heading [data-clear-download-errors]{margin-left:6px}

dialog h2{margin:7px 0 18px}dialog form{margin:0}dialog label input{width:100%;margin-top:2px}dialog p{color:var(--muted);line-height:1.6;margin:0 0 8px}dialog p strong{color:var(--text)}dialog footer{margin:20px -20px -20px;border-top:1px solid var(--line)}dialog .btn:disabled{opacity:.55;cursor:wait}.confirm-dialog small{color:var(--red)}.confirm-dialog .btn.danger{background:var(--red);border-color:var(--red);color:#fff}
