/* ====== тренажёры, экзамен, класс, вход (светлая синяя тема) ====== */

/* ---- логин ---- */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:20px}
.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:floatBlob 14s ease-in-out infinite;pointer-events:none}
.blob.b1{width:440px;height:440px;background:#bcd4ff;top:-130px;left:-110px}
.blob.b2{width:400px;height:400px;background:#a8ecdc;bottom:-150px;right:-90px;animation-delay:-7s}
.login-card{position:relative;width:100%;max-width:410px;padding:34px 34px 30px;animation:fadeUp .5s ease both}
.login-card h1{font-size:22px;margin-bottom:4px}
.login-card .logo{width:56px;height:56px;border-radius:16px;background:var(--grad);color:#fff;font-size:28px;
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;box-shadow:0 10px 24px rgba(26,110,232,.4)}
.field{margin:14px 0}
.field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:5px}
.field .input{width:100%}
.login-err{color:var(--bad);font-size:13.5px;min-height:20px;margin-top:8px}
.login-btn{width:100%;padding:12px;margin-top:6px;font-weight:600}

/* ---- общие блоки тренажёров ---- */
.cipher{letter-spacing:2px}
.mark-hl{background:#ffe58f;border-radius:4px;padding:0 2px}
.miniword{padding:2px 5px;border:1px solid var(--border);border-radius:7px;cursor:pointer;transition:border-color .15s}
.miniword:hover{border-color:var(--primary)}
.numline rect.f-zone{fill:rgba(229,72,77,.30)}
.numline rect.t-zone{fill:rgba(12,166,120,.24)}
svg .hit{cursor:pointer}
.svg-box svg{max-width:100%;height:auto}

/* ---- робот ---- */
.robot-layout{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.robot-grid{display:grid;gap:2px;width:max-content}
.cell{width:26px;height:26px;border:1px solid #e6e9f2;border-radius:6px;background:#fff;position:relative;transition:background .18s ease}
.cell.wall{background:#33507e;border-color:#33507e}
.cell.painted{background:var(--primary);border-color:var(--primary)}
.cell.robot::after{content:"";position:absolute;inset:5px;border-radius:50%;background:#182237;animation:popIn .3s ease}
.prog-row{display:flex;align-items:center;gap:7px;margin:2px 0}
.kumir{background:#f2f5fc;border:1px solid #e3e9f5;border-radius:12px;padding:10px 12px;white-space:pre-wrap;font-size:12.5px;font-family:ui-monospace,Consolas,monospace;color:#33406a;margin-top:8px}

/* ---- экзамен ---- */
.exam-item{margin-bottom:16px;animation:fadeUp .3s ease both}
.exam-item .qn{font-weight:700;color:var(--primary)}

/* ---- конфетти и тосты ---- */
.confetti-host{position:fixed;inset:0;pointer-events:none;z-index:50}
.confetti-bit{position:absolute;width:8px;height:13px;border-radius:2px;opacity:1;animation:confetti .9s ease-out forwards}
@keyframes confetti{
  0%{transform:translate(0,0) rotate(0);opacity:1}
  100%{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}
}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#1b2540;color:#fff;
  border-radius:13px;padding:11px 20px;font-size:14px;z-index:60;animation:fadeUp .3s ease both;box-shadow:0 14px 34px rgba(0,0,0,.28)}

/* ---- панель учителя ---- */
.dash-actions{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.modal-back{position:fixed;inset:0;background:rgba(24,33,58,.45);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:40;padding:18px}
.modal{width:100%;max-width:420px;padding:24px;animation:fadeUp .25s ease both;border-radius:18px}
