:root{
  --bg:#f6f7f9; --panel:#ffffff; --ink:#1b1d21; --muted:#6b7280; --line:#e3e6ea;
  --accent:#2f6fed; --skill:#1f6feb; --interest:#b26a00; --ok:#137a4b; --warn:#a33a2a;
  --chip:#eef2f7; --okbg:#eaf6ef; --warnbg:#fdeeeb;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#15171b; --panel:#1d2026; --ink:#e8eaed; --muted:#9aa2ad; --line:#2c313a;
    --accent:#6c9bff; --skill:#7aa7ff; --interest:#e0a33e; --ok:#5cc48d; --warn:#ff8b73;
    --chip:#252a32; --okbg:#16281f; --warnbg:#2e1c19;
  }
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
     font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.wrap{max-width:1080px;margin:0 auto;padding:24px 20px 80px}
h1{font-size:22px;margin:0 0 4px}
h2{font-size:15px;margin:0 0 12px;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}
h3{font-size:15px;margin:22px 0 8px}
.sub{color:var(--muted);margin:0 0 20px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:18px}
.grid{display:grid;gap:14px}
.cfg{grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:18px}
label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.cfg label{font-size:13px;font-weight:600;color:var(--ink)}
.cfg .help{margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
input[type=number],input[type=text],input[type=password],select,textarea{
  width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:6px;
  background:var(--bg);color:var(--ink);font:inherit}
button,.btn{font:inherit;padding:8px 14px;border-radius:6px;border:1px solid var(--line);
       background:var(--chip);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.btn:hover{border-color:var(--accent)}
button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
button.danger{color:var(--warn);border-color:var(--warn)}
button:disabled{opacity:.5;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.note{font-size:12px;color:var(--muted)}
.scroll{overflow-x:auto}
table{border-collapse:collapse;font-size:13px;min-width:100%}
th,td{border:1px solid var(--line);padding:5px 8px;text-align:left;white-space:nowrap}
th{background:var(--chip);font-weight:600}
td.c{text-align:center}
.s{color:var(--skill);font-weight:700}
.i{color:var(--interest);font-weight:700}
ul.picks{list-style:none;margin:0;padding:0;columns:2;column-gap:24px}
ul.picks li{break-inside:avoid;margin-bottom:4px;font-size:13px}
ul.picks label{display:flex;gap:7px;color:var(--ink);font-size:13px;margin:0;align-items:flex-start}
ul.plain{list-style:none;margin:0;padding:0}
ul.plain li{padding:6px 0;border-bottom:1px solid var(--line)}
ul.plain li:last-child{border-bottom:0}
.key{color:var(--accent)}
pre{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px;overflow-x:auto;font-size:12px}
.pill{display:inline-block;background:var(--chip);border-radius:99px;padding:2px 10px;font-size:12px;color:var(--muted)}
.bad{color:var(--warn)}
.good{color:var(--ok)}
.legend span{margin-right:14px}
a{color:var(--accent)}
.link-box{background:var(--chip);border-radius:8px;padding:10px 14px;font-size:13px;word-break:break-all;margin:8px 0}
.progress-track{width:100%;max-width:320px;height:8px;background:var(--bg);border:1px solid var(--line);
                 border-radius:99px;overflow:hidden;margin:10px 0}
.progress-fill{height:100%;width:0%;background:var(--accent);border-radius:99px;transition:width .2s}
.spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--accent);
         border-radius:50%;animation:spin .8s linear infinite;display:inline-block;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
.flash{border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:13px}
.flash.error{border:1px solid var(--warn);background:var(--warnbg);color:var(--warn)}
.flash.ok{border:1px solid var(--ok);background:var(--okbg);color:var(--ok)}
.checklist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.checklist li{background:var(--chip);border-radius:99px;padding:3px 10px;font-size:12px}
