:root{--bg:#0f1117;--panel:#171a23;--line:#262b38;--fg:#e7e9ee;--muted:#8b91a0;
--orange:#e8731c;--orange-d:#c85f12;--blue:#2f6d9e}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);
font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--orange);text-decoration:none}
.wrap{max-width:860px;margin:0 auto;padding:20px}
.brand{display:flex;align-items:baseline;gap:8px;font-weight:700;font-size:22px;letter-spacing:.5px}
.brand .o{color:var(--orange)} .brand .b{color:#ffffff}
.brand small{color:var(--muted);font-weight:400;font-size:12px;letter-spacing:2px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin:16px 0}
h1{font-size:18px;margin:.2em 0} h2{font-size:15px;color:var(--muted);font-weight:600;margin:0 0 10px}
input[type=text],input[type=password]{width:100%;padding:11px;border-radius:8px;border:1px solid var(--line);
background:#0c0e14;color:var(--fg);font-size:15px}
.btn{display:inline-block;background:var(--orange);color:#111;border:none;border-radius:8px;
padding:11px 18px;font-weight:700;cursor:pointer;font-size:15px}
.btn:hover{background:var(--orange-d)} .btn.sm{padding:6px 12px;font-size:13px}
.btn.danger{background:#2a2f3c;color:#e88}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;
padding:12px 0;border-bottom:1px solid var(--line)} .row:last-child{border:none}
.muted{color:var(--muted);font-size:13px}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px;word-break:break-all;color:var(--muted)}
.bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.tag{display:inline-block;background:#0c0e14;border:1px solid var(--line);border-radius:6px;
padding:2px 8px;font-size:12px;color:var(--muted)}

/* uploader */
.drop{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
 color:var(--muted);border:2px dashed var(--line);border-radius:12px;padding:30px 18px;
 background:#0c0e14;transition:border-color .15s,background .15s}
.drop.over{border-color:var(--orange);background:#15110c;color:var(--fg)}
.drop .dz-main{font-size:16px;color:var(--fg);font-weight:600}
.drop .dz-sub{font-size:12px;opacity:.6}
.drop .dz-hint{font-size:12px;opacity:.6;margin-top:4px}
.prog{height:8px;background:#0c0e14;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:14px 0 0}
.bar-fill{height:100%;width:0;background:var(--orange);transition:width .2s}
.msg{margin:10px 0 0;font-size:14px;color:var(--muted)}
.msg.ok{color:#7fd18b} .msg.err{color:#e88}
