[hidden]{display:none!important}
*{box-sizing:border-box}
body{margin:0;background:#111;color:#eee;font:17px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100vh}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #2a2a2a}
main{max-width:640px;margin:0 auto;padding:16px}
h1{font-size:1.4rem;margin:.2rem 0 .6rem}
h2{font-size:1.1rem;margin:1.6rem 0 .5rem;color:#ccc}
a{color:#8ecbff}
.link{font-size:.95rem;padding:12px 4px;min-height:48px;display:inline-flex;align-items:center}
.muted{color:#999;font-size:.92rem}
.card{background:#1c1c1c;border:1px solid #2c2c2c;border-radius:12px;padding:14px;display:grid;gap:12px}
label{display:grid;gap:6px;font-size:.92rem;color:#bbb}
input,select{font:inherit;color:#fff;background:#0b0b0b;border:1px solid #444;border-radius:10px;padding:12px;min-height:48px;width:100%}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #8ecbff;outline-offset:2px}
.row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.grow{flex:1 1 140px}
button,.btn{font:inherit;color:#111;background:#e9e9e9;border:0;border-radius:10px;min-height:48px;padding:10px 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
button:disabled{opacity:.5}
button.big{background:#7fd1ff;font-weight:600;min-width:120px}
button.ghost,.btn.ghost{background:#2a2a2a;color:#eee}
button.danger{background:#3a1f1f;color:#ffb3b3}
.err{color:#ffb3b3;background:#3a1f1f;border-radius:10px;padding:10px 12px;margin:0}
.warn{color:#ffe08a;background:#3a3218;border-radius:10px;padding:10px 12px}
.list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.list a.item{display:block;background:#1c1c1c;border:1px solid #2c2c2c;border-radius:12px;padding:12px 14px;color:#eee;text-decoration:none;min-height:48px}
.item .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item .m{font-size:.88rem;color:#9a9a9a;margin-top:2px}
.badge{display:inline-block;font-size:.75rem;background:#2d4a2d;color:#bfe8bf;border-radius:6px;padding:1px 6px;margin-left:6px}
.badge.wait{background:#333;color:#ccc}
.sizes{font-size:1.05rem;margin:0}
.sizes b{color:#9fe49f}
video{width:100%;max-height:60vh;background:#000;border-radius:10px}
progress{width:100%;height:18px;accent-color:#7fd1ff}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.actions>*{flex:1 1 140px}
