:root { --bg:#0f1115; --card:#181b22; --line:#2a2f3a; --txt:#e6e8ec; --muted:#9aa3b2; --accent:#4f7cff; --err:#ff6b6b; --ok:#43c478; --warn:#e6b800; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif; background:var(--bg); color:var(--txt); }
.muted { color:var(--muted); }
.error { color:var(--err); }
a { color:var(--accent); text-decoration:none; }

.centered { min-height:100vh; display:flex; align-items:center; justify-content:center; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:28px; }
.login { width:320px; display:flex; flex-direction:column; gap:12px; }
.login h1 { margin:0; font-size:20px; }

.topbar { display:flex; justify-content:space-between; align-items:center; padding:14px 22px; border-bottom:1px solid var(--line); }
.container { max-width:880px; margin:0 auto; padding:22px; }

.dropzone { border:2px dashed var(--line); border-radius:12px; padding:38px; text-align:center; cursor:pointer; transition:.15s; }
.dropzone.drag { border-color:var(--accent); background:#1b2030; }
.dropzone p { margin:4px 0; }

.filelist { list-style:none; padding:0; margin:14px 0; display:flex; flex-wrap:wrap; gap:8px; }
.filelist li { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:4px 10px; font-size:13px; }

.settings { margin:16px 0; border:1px solid var(--line); border-radius:10px; padding:6px 14px; }
.settings summary { cursor:pointer; padding:6px 0; }
.grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; padding:10px 0; }
.grid label { display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--muted); }
.grid label.check { flex-direction:row; align-items:center; gap:8px; }
input, select { background:var(--bg); border:1px solid var(--line); color:var(--txt); border-radius:8px; padding:8px; font:inherit; }

button, .btn { background:var(--accent); color:#fff; border:none; border-radius:9px; padding:10px 18px; font:inherit; cursor:pointer; display:inline-block; }
button:disabled { opacity:.4; cursor:not-allowed; }
.btn { background:var(--card); border:1px solid var(--line); }

.hidden { display:none; }
#progress { margin-top:22px; }
.bar { height:10px; background:var(--card); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
#barfill { height:100%; width:0; background:var(--accent); transition:width .3s; }
.downloads { display:flex; gap:10px; margin-top:14px; }

.results { margin-top:22px; display:flex; flex-direction:column; gap:14px; }
.result { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; }
.result h3 { margin:0 0 8px; font-size:15px; }
.result .kw { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.result .kw span { background:var(--bg); border:1px solid var(--line); border-radius:6px; padding:2px 8px; font-size:12px; }
.result .kw span.top { border-color:var(--accent); }
.badge { font-size:12px; padding:2px 8px; border-radius:6px; margin-right:6px; }
.badge.ok { background:rgba(67,196,120,.15); color:var(--ok); }
.badge.warn { background:rgba(230,184,0,.15); color:var(--warn); }
.badge.err { background:rgba(255,107,107,.15); color:var(--err); }
.note { color:var(--warn); font-size:13px; margin-top:6px; }
