:root{
  --header:#191970; --accent:#4682b4; --bg:#0f1115; --panel:#161a22;
  --panel2:#1d222c; --line:#2a3140; --text:#e6e9ef; --muted:#9aa4b2;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}
.topbar{padding:14px 22px;background:linear-gradient(90deg,var(--header),var(--accent));color:#fff}
.brand{font-size:18px;font-weight:700}
.tagline{font-size:12px;opacity:.9}
.layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px;max-width:1500px;margin:0 auto}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;overflow:auto}
.form-panel{max-height:calc(100vh - 110px)}
.preview-panel{max-height:calc(100vh - 110px);display:flex;flex-direction:column}
h2{font-size:14px;color:var(--accent);margin:16px 0 8px;border-bottom:1px solid var(--line);padding-bottom:4px}
h2:first-child{margin-top:0}
.hint{color:var(--muted);font-weight:400;font-size:11px}
label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px;margin-bottom:8px}
input,select,textarea{background:var(--panel2);border:1px solid var(--line);color:var(--text);
  border-radius:6px;padding:8px;font-size:13px;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.add{background:transparent;border:1px dashed var(--accent);color:var(--accent);border-radius:6px;
  padding:7px 12px;cursor:pointer;font-size:12px;margin-bottom:6px}
.add:hover{background:rgba(70,130,180,.12)}
.card{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:10px;position:relative}
.card .rm{position:absolute;top:6px;right:8px;background:none;border:none;color:#e06;cursor:pointer;font-size:16px}
.primary{background:var(--accent);border:none;color:#fff;border-radius:7px;padding:11px 16px;
  font-size:14px;font-weight:600;cursor:pointer;width:100%;margin-top:12px}
.primary:hover{filter:brightness(1.1)}
.primary:disabled{opacity:.6;cursor:wait}
.msg{font-size:12px;margin-top:8px;min-height:16px}
.msg.err{color:#ff7a7a}.msg.ok{color:#7ee08a}

.skills-catalog{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.skill-cat{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:14px;
  padding:4px 10px;font-size:11px;cursor:pointer;user-select:none}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}

.preview-head{display:flex;justify-content:space-between;align-items:center}
.dl{display:flex;gap:8px}
.dl-btn{background:var(--header);color:#fff;text-decoration:none;border-radius:6px;padding:7px 12px;font-size:12px;cursor:pointer}
.dl-btn:hover{filter:brightness(1.25)}
#preview-frame{flex:1;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;min-height:400px}
.empty{color:var(--muted);text-align:center;padding:40px 10px;font-size:13px}
.verify{background:#2a230f;border:1px solid #6b5414;color:#ffd87a;border-radius:8px;padding:10px;margin-bottom:10px;font-size:12px}
.verify b{color:#ffe9a8}
.verify ul{margin:6px 0 0;padding-left:18px}

.feedback{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
.fb-skills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.fb-chip{border-radius:14px;padding:4px 10px;font-size:11px;cursor:pointer;border:1px solid var(--line);background:var(--panel2)}
.fb-chip.keep{background:#12351c;border-color:#2e7d46;color:#9be6ad}
.fb-chip.drop{background:#3a1414;border-color:#7d2e2e;color:#e69b9b;text-decoration:line-through}
.hidden{display:none}
@media(max-width:900px){.layout{grid-template-columns:1fr}.form-panel,.preview-panel{max-height:none}}
