/* ==========================================================================
   panels.css — 左栏任务面板、弹层内容
   ========================================================================== */
.mission-card{
  background:linear-gradient(180deg,#16212d,#121b25);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:14px 14px 12px;
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  flex:0 0 auto;
}
.mission-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;}
.kicker{
  font-size:11px;letter-spacing:1px;color:var(--txt-3);font-weight:700;
}
.kicker b{color:var(--accent);font-family:var(--mono);font-size:13px;}
.pt{
  font-size:10.5px;color:#fbbf24;background:rgba(251,191,36,.1);
  border:1px solid rgba(251,191,36,.25);padding:2px 7px;border-radius:20px;font-weight:700;
}
.mission-card h2{
  font-size:18px;letter-spacing:.6px;line-height:1.3;
  margin-bottom:6px;color:#eaf4ff;
}
.mgoal{font-size:12.5px;line-height:1.65;color:var(--txt-2);margin-bottom:12px;}

.steps{display:flex;flex-direction:column;gap:7px;margin-bottom:12px;}
.steps li{
  display:flex;gap:9px;align-items:flex-start;
  padding:7px 9px;border-radius:9px;
  background:#0f1720;border:1px solid #1e2a37;
  font-size:12.5px;line-height:1.55;color:#b8c9da;
  transition:.18s;
}
.steps li .box{
  flex:0 0 auto;width:16px;height:16px;border-radius:5px;margin-top:1px;
  border:1.5px solid #3b4c5f;background:#0b1118;
  display:grid;place-items:center;font-size:10px;color:#64748b;
}
.steps li.active{
  border-color:#2c5f80;background:linear-gradient(180deg,#10222f,#0d1a24);
  color:#dbeafe;box-shadow:inset 2px 0 0 var(--accent);
}
.steps li.active .box{border-color:#38bdf8;color:#38bdf8;}
.steps li.done{color:#7f9488;background:#0d1611;border-color:#1c3a28;}
.steps li.done .box{background:#16a34a;border-color:#22c55e;color:#04230f;}
.steps li.done .box::after{content:"✓";font-weight:900;}
.steps li.done .txt{text-decoration:line-through;text-decoration-color:rgba(34,197,94,.4);}
.steps li .sub{display:block;font-size:10.5px;color:#6b8095;margin-top:2px;}

.hint{
  font-size:11.5px;line-height:1.6;color:#94a9bd;
  background:rgba(14,165,233,.06);
  border-left:2px solid #0ea5e9;
  border-radius:0 8px 8px 0;
  padding:8px 10px;margin-bottom:11px;
  display:none;
}
.hint.show{display:block;}
.hint b{color:#7dd3fc;}

.mnav{display:flex;gap:6px;}
.mnav .btn{flex:1 1 0;}

.mission-dots{
  display:grid;grid-template-columns:repeat(9,1fr);gap:5px;
  padding:9px 10px;border-radius:11px;
  background:#0e161f;border:1px solid var(--line-soft);
  flex:0 0 auto;
}
.mdot{
  height:7px;border-radius:4px;background:#1e2a37;cursor:pointer;
  transition:.18s;position:relative;
}
.mdot:hover{background:#2d3f52;}
.mdot.done{background:linear-gradient(90deg,#16a34a,#22c55e);}
.mdot.cur{background:linear-gradient(90deg,#0ea5e9,#7dd3fc);box-shadow:0 0 8px rgba(56,189,248,.6);}

.panel-note{
  font-size:11px;line-height:1.9;color:#6b8095;
  padding:10px 12px;border-radius:11px;
  background:rgba(255,255,255,.015);
  border:1px dashed #24313f;
  flex:0 0 auto;
}
.panel-note b{display:block;color:#8ba3b8;font-size:11.5px;margin-bottom:2px;}
kbd{
  display:inline-block;min-width:17px;text-align:center;
  padding:1px 4px;margin:0 1px;border-radius:4px;
  background:#1d2836;border:1px solid #33445a;border-bottom-width:2px;
  font:600 10.5px/1.5 var(--mono);color:#c3d6e8;
}

/* ==========================================================================
   知识卡
   ========================================================================== */
.kc{
  border:1px solid var(--line-soft);border-radius:12px;
  background:#111a24;padding:12px 14px;margin-bottom:10px;
}
.kc-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.kc-head h4{margin:0;color:#e2eefb;font-size:14px;}
.kc-src{
  margin-left:auto;font-size:10px;color:#64798e;border:1px solid #263444;
  padding:1px 6px;border-radius:20px;white-space:nowrap;
}
.kc ul{margin:0;}
.kc li{color:#a9bccd;font-size:12.5px;line-height:1.7;}
.kc li::before{background:#0ea5e9;}
.kc li b{color:#e2eefb;}
.kc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media (max-width:760px){.kc-grid{grid-template-columns:1fr;}}

.mode-table{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px;}
.mode-table th,.mode-table td{
  border:1px solid #263444;padding:6px 8px;text-align:center;color:#a9bccd;
}
.mode-table th{background:#16222f;color:#cfe3f5;font-weight:700;font-size:12px;}
.mode-table td:first-child{color:#e2eefb;font-weight:700;background:#131d27;}
.mode-table tr.on td{background:rgba(14,165,233,.12);color:#bae6fd;}

/* ==========================================================================
   测验
   ========================================================================== */
.q-wrap{display:flex;flex-direction:column;gap:12px;}
.q-bar{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--txt-3);}
.q-bar .track{flex:1;height:6px;border-radius:4px;background:#0d151d;border:1px solid #263444;overflow:hidden;}
.q-bar .track i{display:block;height:100%;background:linear-gradient(90deg,#0ea5e9,#7dd3fc);width:0;transition:.25s;}
.q-text{font-size:15px;line-height:1.7;color:#e8f1fa;font-weight:600;}
.q-tag{
  display:inline-block;font-size:10px;color:#7dd3fc;border:1px solid #1e4a63;
  background:rgba(14,165,233,.1);padding:1px 7px;border-radius:20px;margin-right:8px;
  vertical-align:2px;font-weight:700;letter-spacing:.4px;
}
.q-opts{display:flex;flex-direction:column;gap:8px;}
.q-opt{
  text-align:left;padding:11px 14px;border-radius:10px;cursor:pointer;
  background:#111a24;border:1px solid #263444;color:#b8c9da;
  font-size:13.5px;line-height:1.5;transition:.14s;
  display:flex;gap:10px;align-items:flex-start;
}
.q-opt:hover:not(:disabled){border-color:#3c6a8c;background:#152233;}
.q-opt .idx{
  flex:0 0 auto;width:20px;height:20px;border-radius:6px;background:#1d2836;
  display:grid;place-items:center;font:700 11px/1 var(--mono);color:#7f97ad;
}
.q-opt.right{border-color:#22c55e;background:rgba(34,197,94,.12);color:#bbf7d0;}
.q-opt.right .idx{background:#16a34a;color:#04230f;}
.q-opt.wrong{border-color:#ef4444;background:rgba(239,68,68,.12);color:#fecaca;}
.q-opt.wrong .idx{background:#dc2626;color:#fff;}
.q-opt:disabled{cursor:default;}
.q-fb{
  padding:11px 14px;border-radius:10px;font-size:12.5px;line-height:1.7;
  border-left:3px solid #22c55e;background:rgba(34,197,94,.08);color:#c7f9d9;
}
.q-fb.bad{border-left-color:#ef4444;background:rgba(239,68,68,.08);color:#fecaca;}
.q-fb b{display:block;margin-bottom:3px;color:#fff;font-size:13px;}

/* 成绩报告 */
.rep-total{
  display:flex;align-items:center;gap:18px;padding:16px 18px;border-radius:14px;
  background:linear-gradient(135deg,#12303f,#0f1d2a);border:1px solid #24536b;
  margin-bottom:14px;
}
.rep-total .num{font:800 44px/1 var(--mono);color:#fbbf24;}
.rep-total .txt{font-size:12.5px;color:#9fb6c8;line-height:1.7;}
.rep-total .txt b{color:#e6f2ff;font-size:15px;display:block;letter-spacing:.5px;}
.rep-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.rep-table th,.rep-table td{border-bottom:1px solid #1f2b39;padding:7px 8px;text-align:left;color:#a9bccd;}
.rep-table th{color:#7d93a8;font-size:11px;font-weight:700;letter-spacing:.5px;}
.rep-table td.n{text-align:right;font-family:var(--mono);font-weight:700;color:#dbeafe;}
.rep-table tr.ok td.n{color:#4ade80;}
.rep-table tr.no td.n{color:#64748b;}
.rep-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}

/* 部件说明 */
.part-info{display:flex;gap:14px;align-items:flex-start;}
.part-info .pi-num{
  flex:0 0 auto;width:44px;height:44px;border-radius:12px;
  background:linear-gradient(145deg,#fde68a,#f59e0b);color:#3a2503;
  display:grid;place-items:center;font:800 15px/1 var(--mono);
}
.part-info h4{margin:0 0 4px;color:#eaf4ff;font-size:15px;}
.part-info .en{font-size:11px;color:#64798e;font-family:var(--mono);letter-spacing:.6px;margin-bottom:6px;}
.part-info p{font-size:13px;line-height:1.75;color:#a9bccd;}

/* 任务完成卡 */
.done-card{text-align:center;padding:6px 0 2px;}
.done-card .big{font-size:26px;margin-bottom:6px;}
.done-card h4{font-size:17px;color:#bbf7d0;margin-bottom:6px;}
.done-card p{font-size:13px;color:#9fb6c8;line-height:1.7;}

/* 任务总览 */
.task-list{display:flex;flex-direction:column;gap:6px;}
.task-item{
  display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;
  background:#101a24;border:1px solid #233040;cursor:pointer;transition:.14s;
}
.task-item:hover{border-color:#3c6a8c;background:#14202c;}
.task-item.cur{border-color:#0ea5e9;background:#0f2230;}
.task-item.done{opacity:.8;}
.task-item .idx{
  width:24px;height:24px;border-radius:7px;background:#1b2735;color:#7f97ad;
  display:grid;place-items:center;font:700 11px/1 var(--mono);flex:0 0 auto;
}
.task-item.done .idx{background:#16a34a;color:#04230f;}
.task-item .t{flex:1;font-size:13px;color:#cfe0ef;}
.task-item .p{font:700 11px/1 var(--mono);color:#fbbf24;}
.task-item.done .p{color:#4ade80;}
