:root{--bg: #0b0e14;--surface: #141a24;--surface-2: #1c2532;--accent: #7ce7c4;--accent-dim: #2a6e5b;--text: #e6edf3;--text-dim: #9aa7b4;--danger: #e77c7c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}a{color:var(--accent)}.layout{max-width:980px;margin:0 auto;padding:24px 20px 80px}.topbar{display:flex;align-items:center;gap:14px;padding:12px 0 20px;flex-wrap:wrap}.topbar h1{font-size:22px;margin:0 auto 0 0;font-weight:600}.card{background:var(--surface);border:1px solid var(--surface-2);border-radius:14px;padding:18px;margin-bottom:16px}h2{font-size:18px;margin:0 0 12px;font-weight:600}button,.btn{background:var(--surface-2);color:var(--text);border:1px solid var(--accent-dim);border-radius:10px;padding:9px 16px;font-size:15px;cursor:pointer}button.primary,.btn.primary{background:var(--accent);color:#06231b;border-color:var(--accent);font-weight:600}button:disabled{opacity:.5;cursor:default}input[type=text],input[type=email],input[type=password]{background:var(--bg);color:var(--text);border:1px solid var(--accent-dim);border-radius:10px;padding:10px 14px;font-size:15px;width:100%}.file-list{list-style:none;margin:0;padding:0}.file-list li{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--surface-2)}.file-list .name{flex:1;word-break:break-all}.file-list .meta{color:var(--text-dim);font-size:13px;white-space:nowrap}.badge{font-size:12px;padding:3px 10px;border-radius:999px;background:var(--accent-dim);color:var(--text)}.badge.processing{background:#7a5b2a}.badge.failed{background:#7a2a2a}.progress{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--accent);transition:width .15s ease}.dropzone{border:2px dashed var(--accent-dim);border-radius:14px;padding:26px;text-align:center;color:var(--text-dim);cursor:pointer}.dropzone.active{border-color:var(--accent);color:var(--accent)}.breadcrumb{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--text-dim);margin-bottom:12px}.breadcrumb button{padding:4px 10px;font-size:14px}.muted{color:var(--text-dim)}.error{color:var(--danger)}.ok{color:var(--accent)}.center-page{max-width:520px;margin:10vh auto 0;padding:0 20px}.code-display{font-size:34px;letter-spacing:8px;font-weight:700;color:var(--accent);text-align:center;padding:18px 0}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--surface-2);border:1px solid var(--accent-dim);border-radius:12px;padding:12px 20px;z-index:50}
