:root { --bg:#f6f7f9; --fg:#1d2330; --muted:#69707d; --card:#fff; --line:#dde1e7; --acc:#2f6fde; --err:#c0392b; --mark:#fff1a8; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#14171c; --fg:#e4e7ec; --muted:#9aa2ae; --card:#1d2128; --line:#2e343e; --acc:#6b9cff; --err:#ff7b6b; --mark:#5a4d00; }
}
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; background:var(--bg); color:var(--fg); }
header { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:10px 16px; background:var(--card); border-bottom:1px solid var(--line); }
header h1 { font-size:18px; margin:0; }
nav { display:flex; flex-wrap:wrap; gap:4px; }
nav button { background:none; color:var(--fg); border:1px solid transparent; }
nav button.on { border-color:var(--line); background:var(--bg); }
#who { margin-left:auto; color:var(--muted); font-size:13px; }
main { max-width:1000px; margin:0 auto; padding:16px; }
button { font:inherit; padding:7px 14px; border-radius:7px; border:1px solid var(--acc); background:var(--acc); color:#fff; cursor:pointer; }
button.link { background:none; border:none; color:var(--acc); padding:0 4px; }
input, select, textarea { font:inherit; padding:7px 10px; border-radius:7px; border:1px solid var(--line); background:var(--card); color:var(--fg); max-width:100%; }
textarea { width:100%; }
.row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.row input[type=search] { flex:1 1 280px; }
.grow { flex:1; }
.muted { color:var(--muted); }
.err { color:var(--err); }
label { display:block; margin:10px 0; }
label.inline { display:inline-flex; gap:4px; align-items:center; margin:0; }
.drop { border:2px dashed var(--line); border-radius:10px; padding:18px; text-align:center; }
.drop.over { border-color:var(--acc); }
.drop input { display:block; margin:10px auto 0; }
#results { padding-left:22px; }
#results li { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:10px 14px; margin:10px 0; }
#results .src { font-size:13px; color:var(--muted); }
#results .txt { white-space:pre-wrap; margin-top:6px; max-height:14em; overflow:auto; }
mark { background:var(--mark); color:inherit; }
table { width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); border-radius:10px; overflow:hidden; display:block; overflow-x:auto; }
th, td { padding:7px 10px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; }
pre { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:10px; overflow:auto; white-space:pre-wrap; word-break:break-all; }
dialog { width:min(900px,95vw); max-height:90vh; border:1px solid var(--line); border-radius:12px; background:var(--card); color:var(--fg); }
dialog pre { white-space:pre-wrap; word-break:normal; max-height:65vh; }
dialog .close { float:right; background:none; color:var(--fg); border:none; font-size:22px; }
footer { text-align:center; padding:20px; font-size:12px; }
[hidden] { display:none !important; }
