:root{--bg:#0f1117;--panel:#181b24;--border:#2a2f3d;--text:#e8eaf0;--muted:#9aa1b3;--accent:#7c5cff;--accent-hover:#9377ff;--error:#ff6b7a;--ok:#4cd98a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,Segoe UI,sans-serif;line-height:1.5}main{max-width:640px;margin:0 auto;padding:48px 20px 80px}h1{font-size:1.8rem;margin:0 0 4px}.tagline{color:var(--muted);margin:0 0 32px}.badge{display:inline-block;vertical-align:middle;font-size:.65rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--accent);border-radius:999px;padding:2px 10px;margin-left:8px}.badge,.hint a{color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:20px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.field label{font-size:.9rem;color:var(--muted)}.row{display:flex;gap:16px}.row .field{flex:1 1}input[type=number],input[type=text],select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:1rem;width:100%}.hint,input[type=file]{color:var(--muted)}.hint{font-size:.8rem}button.primary{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:1.05rem;cursor:pointer;width:100%}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.link{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font-size:.95rem;text-decoration:underline}.checkbox{display:flex;align-items:center;gap:8px;margin-bottom:16px}.checkbox label{color:var(--text)}.status{text-align:center;padding:12px 0}.spinner{display:inline-block;width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite;margin-bottom:8px}@keyframes spin{to{transform:rotate(1turn)}}.error-box{border:1px solid var(--error);border-radius:8px;padding:12px 16px;color:var(--error);margin-bottom:16px}.success{color:var(--ok)}a.download{display:block;text-align:center;background:var(--ok);color:#06281a;font-weight:600;border-radius:8px;padding:12px 24px;text-decoration:none;margin:12px 0}ol.import-note{color:var(--muted);font-size:.9rem;padding-left:20px}footer{color:var(--muted);font-size:.8rem;text-align:center;margin-top:40px}