:root{
  --bg:#0b1220; --card:#111a2c; --card-2:#182238; --line:#22304a;
  --ink:#eaf0fa; --ink-soft:#93a3bd; --blue:#4c8dff; --blue-soft:#9db9e8;
  --red:#dc2f3f; --red-h:#b91c2c; --green:#2fbf71; --amberw:#e8a33d;
  --r:14px; --shadow:0 10px 30px rgba(0,0,0,.35);
}
html[data-theme="light"]{
  --bg:#f2f5fa; --card:#ffffff; --card-2:#eef2f9; --line:#d8e0ec;
  --ink:#13233f; --ink-soft:#5b6b85; --blue:#2563eb; --blue-soft:#3b82f6;
  --shadow:0 8px 24px rgba(19,35,63,.10);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Inter","Segoe UI",system-ui,sans-serif;background:var(--bg);color:var(--ink);
     min-height:100vh;font-size:16px;line-height:1.55;transition:background .2s,color .2s}
a{color:var(--blue);text-decoration:none}
.wrap{max-width:880px;margin:0 auto;padding:20px 18px 60px}
.wrap.narrow{max-width:520px}

/* шапка */
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 0 22px;gap:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px}
.brand .mark{width:40px;height:40px;border-radius:50%;border:3.5px solid var(--red);
  border-top-color:var(--blue);display:grid;place-items:center;font-weight:800;font-size:11px;
  color:var(--red);transform:rotate(-20deg)}
.brand .mark span{transform:rotate(20deg)}
.brand .name{font-weight:800;letter-spacing:.4px;line-height:1.1;font-size:15px;color:var(--blue)}
.brand .name small{display:block;color:var(--red);font-size:10px;letter-spacing:.18em;font-weight:700}
.top .right{display:flex;align-items:center;gap:10px}
.theme-btn{background:var(--card);border:1px solid var(--line);color:var(--ink);border-radius:10px;
  width:38px;height:38px;cursor:pointer;font-size:16px}

/* карточки */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:26px 28px;box-shadow:var(--shadow)}
h1{font-size:24px;font-weight:800;margin-bottom:6px}
h2.blue{color:var(--blue);font-size:15px;font-weight:700;margin-bottom:14px}
.muted{color:var(--ink-soft);font-size:14px}

/* кнопки */
.btn{display:inline-block;background:var(--red);color:#fff;font-weight:700;border:none;
  border-radius:10px;padding:13px 26px;font-size:15px;cursor:pointer;text-align:center;
  transition:background .15s,transform .05s;font-family:inherit}
.btn:hover{background:var(--red-h)}
.btn:active{transform:translateY(1px)}
.btn.full{width:100%}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink-soft)}
.btn.ghost:hover{border-color:var(--blue);color:var(--blue);background:transparent}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* выбор языка */
.lang-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.lang-card{background:var(--card-2);border:1.5px solid var(--line);border-radius:var(--r);
  padding:26px 18px;text-align:center;cursor:pointer;font-weight:700;font-size:17px;color:var(--ink)}
.lang-card:hover{border-color:var(--red)}
.lang-card small{display:block;color:var(--ink-soft);font-weight:500;font-size:12.5px;margin-top:4px}

/* сетка сотрудников */
.search{width:100%;background:var(--card-2);border:1.5px solid var(--line);border-radius:10px;
  color:var(--ink);padding:12px 16px;font:inherit;margin:16px 0}
.search:focus{outline:none;border-color:var(--blue)}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.person{background:var(--card-2);border:1.5px solid var(--line);border-radius:12px;
  padding:14px 16px;cursor:pointer;color:var(--ink);text-align:left;font:inherit}
.person:hover{border-color:var(--red)}
.person b{display:block;font-size:14.5px}
.person span{font-size:12.5px;color:var(--ink-soft)}

/* код */
.code-input{width:100%;background:var(--card-2);border:1.5px solid var(--line);border-radius:12px;
  color:var(--ink);padding:16px;font-size:28px;letter-spacing:.5em;text-align:center;font-weight:700}
.code-input:focus{outline:none;border-color:var(--blue)}
.err{color:var(--red);font-size:14px;margin-top:10px;text-align:center}

/* правила */
.rules li{margin:0 0 10px 20px;color:var(--ink-soft)}
.rules li::marker{color:var(--red)}

/* экзамен */
.exam-top{position:sticky;top:0;z-index:5;background:var(--bg);padding:10px 0 12px;
  display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  border-bottom:1px solid var(--line);margin-bottom:18px}
.timer{background:var(--card);border:1.5px solid var(--line);border-radius:10px;
  padding:8px 16px;font-weight:800;font-size:18px;font-variant-numeric:tabular-nums}
.timer.warn{border-color:var(--red);color:var(--red)}
.progress-line{font-size:13px;color:var(--ink-soft)}
.blocks-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.chip{border-radius:999px;border:1.5px solid var(--line);padding:7px 14px;font-size:13px;
  color:var(--ink-soft);background:var(--card)}
.chip.active{border-color:var(--blue);color:var(--blue);font-weight:700}
.chip.done{border-color:var(--green);color:var(--green)}
.chip.locked{opacity:.5}

.qcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:18px 20px;margin-bottom:14px}
.qcard .qnum{color:var(--blue);font-weight:800;font-size:13px;margin-bottom:6px}
.qcard .qtext{font-weight:600;margin-bottom:12px}
.qcard label{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border-radius:10px;
  cursor:pointer;color:var(--ink-soft);font-size:15px;border:1.5px solid transparent}
.qcard label:hover{background:var(--card-2)}
.qcard label.sel{border-color:var(--blue);color:var(--ink);background:var(--card-2)}
.qcard input{accent-color:var(--red);margin-top:4px}
.saved-dot{font-size:11px;color:var(--green);margin-left:8px;opacity:0;transition:opacity .2s}
.saved-dot.show{opacity:1}

.finish-bar{position:sticky;bottom:0;background:var(--bg);padding:14px 0;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;gap:12px}

/* результат */
.result-num{font-size:56px;font-weight:800;color:var(--blue)}
.result-pct{font-size:22px;color:var(--ink-soft)}
.center{text-align:center}
@media(max-width:560px){.card{padding:20px 16px}.lang-grid{grid-template-columns:1fr}}
