:root{
  --bg:#F2F4F7; --card:#FFFFFF; --line:#DDE2EA; --line2:#C5CCD8; --text:#101828; --muted:#5B6778;
  --blue:#1F4FE0; --blue-dark:#1639B0; --blue-soft:#E8EEFF; --blue-ink:#1F3FA8; --grey-soft:#EEF0F4; --grey-ink:#3A4556;
  --s5:#12805C; --s4:#1F4FE0; --s3:#B7791F; --s2:#C2410C; --s1:#B42318;
  --warn-bg:#FFF4E5; --warn-ink:#8A4B08; --ok-bg:#E7F6EF; --ok-ink:#0E6B4D; --bad-bg:#FDECEA; --bad-ink:#8F1D14;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--text);font-family:'Golos Text',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-size:15px;line-height:1.5}
a{color:var(--blue)}a:hover{color:var(--blue-dark)}
.wrap{max-width:1200px;margin:0 auto;padding:28px 32px 56px;display:flex;flex-direction:column;gap:24px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.brand .logo{width:28px;height:28px;border-radius:7px;background:var(--blue);display:flex;align-items:center;justify-content:center}
.brand span{font-family:'Unbounded',sans-serif;font-weight:600;font-size:18px}
h1{margin:0;font-size:40px;line-height:1.15;font-weight:700;text-wrap:balance}
h2{margin:0;font-size:20px;font-weight:700}
.lead{margin:0;font-size:17px;color:var(--muted);max-width:720px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px}
.card h3{margin:0;font-size:16px;font-weight:600}
.hint{font-size:14px;color:var(--muted)}
.row{display:flex;flex-wrap:wrap;gap:20px;align-items:stretch}
.row>.card{flex:1 1 460px;min-width:0}
label.f{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);flex:1 1 220px}
input[type=text],input[type=email],input[type=password],textarea{width:100%;border:1px solid var(--line2);border-radius:8px;padding:11px 14px;font-size:14px;line-height:1.55;font-family:inherit;color:var(--text);background:#fff}
textarea{resize:vertical}
input:focus,textarea:focus{outline:2px solid var(--blue-soft);border-color:var(--blue)}
.btn{height:40px;padding:0 18px;border-radius:8px;border:1px solid var(--line2);background:#fff;color:var(--text);font-weight:600;font-size:14px;font-family:inherit;cursor:pointer}
.btn:hover{background:#F8FAFC}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:var(--blue-dark)}
.btn.big{height:52px;padding:0 28px;border-radius:10px;font-size:16px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.drop{border:2px dashed #B8C2D3;border-radius:10px;padding:22px 16px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;background:#F8FAFC}
.drop.over{border-color:var(--blue);background:var(--blue-soft)}
.bar{height:8px;border-radius:4px;background:#E6EAF1;overflow:hidden}
.bar>i{display:block;height:100%;width:0;background:var(--blue);transition:width .2s}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:8px;background:var(--grey-soft);color:var(--grey-ink);font-size:14px}
.chip.must{background:var(--blue-soft);color:var(--blue-ink)}
.chip b{font-weight:600;font-size:12px;cursor:pointer;text-decoration:underline dotted}
.chip button{border:0;background:transparent;color:inherit;cursor:pointer;font-size:16px;line-height:1;padding:0 0 0 2px}
.files{display:flex;flex-wrap:wrap;gap:6px}
.file{padding:4px 10px;border-radius:6px;background:var(--bg);font-size:12px;color:var(--grey-ink)}
.file.bad{background:var(--bad-bg);color:var(--bad-ink)}
.msg{padding:12px 16px;border-radius:10px;font-size:14px}
.msg.err{background:var(--bad-bg);color:var(--bad-ink)}
.msg.warn{background:var(--warn-bg);color:var(--warn-ink)}
.msg.ok{background:var(--ok-bg);color:var(--ok-ink)}
.hidden{display:none!important}
.spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.footnote{font-size:14px;color:var(--muted)}
/* result */
.head{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between}
.actions{display:flex;flex-wrap:wrap;gap:10px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line2);background:#fff;font-weight:500;font-size:14px;font-family:inherit;cursor:pointer;color:var(--text)}
.filters button.on{background:var(--blue);border-color:var(--blue);color:#fff}
.group{display:flex;flex-direction:column;gap:12px}
.group-head{display:flex;align-items:center;gap:10px}
.count{padding:2px 10px;border-radius:999px;background:var(--grey-soft);font-size:13px;color:var(--grey-ink)}
.cand{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.score{width:44px;height:44px;border-radius:12px;color:#fff;font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center;flex:none}
.score.s5{background:var(--s5)}.score.s4{background:var(--s4)}.score.s3{background:var(--s3)}.score.s2{background:var(--s2)}.score.s1{background:var(--s1)}
.cand .body{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:8px}
.cand .name{font-weight:600;font-size:16px}
.cand .sub{font-size:14px;color:var(--muted)}
.cand ul{margin:0;padding-left:18px;font-size:14px}
.cand .quote{font-size:13px;color:var(--muted);font-style:italic}
.cand .side{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.tag{display:inline-block;padding:4px 10px;border-radius:6px;font-size:13px}
.tag.ok{background:var(--ok-bg);color:var(--ok-ink)}
.tag.warn{background:var(--warn-bg);color:var(--warn-ink)}
.qs{flex:1 1 100%;background:#F8FAFC;border-radius:8px;padding:12px 16px;font-size:14px}
.qs .t{font-weight:600;margin-bottom:4px}
.qs ol{margin:0;padding-left:20px}
.compact{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:10px;flex-wrap:wrap}
.compact .score{width:32px;height:32px;font-size:15px;border-radius:8px}
.compact .txt{flex:1 1 300px;min-width:0;font-size:14px}
.toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:#fff;border:1px solid var(--line);border-radius:10px}
.modal{position:fixed;inset:0;background:rgba(16,24,40,.5);display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}
.modal .box{background:#fff;border-radius:12px;padding:24px;max-width:560px;width:100%;display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow:auto}
.linkrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.linkrow input{flex:1 1 260px}
.card-answer{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px;display:flex;flex-direction:column;gap:6px;font-size:14px}
@media(max-width:640px){.wrap{padding:20px 16px 40px}h1{font-size:30px}}
