.assessment-calibration {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 16px;
  min-height: 520px;
}
.assessment-calibration-viewer {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 360px;
  max-height: 68vh;
  overflow: hidden;
  border-radius: 12px;
  background: #071018;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.assessment-calibration-viewer video,
.assessment-calibration-viewer canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.assessment-calibration-viewer video { object-fit: fill; }
.assessment-calibration-viewer canvas { z-index: 2; cursor: crosshair; touch-action: none; }
.assessment-calibration-fullscreen {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 5;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(126, 216, 255, .55);
  border-radius: 8px;
  color: #eefcff;
  background: rgba(5, 17, 27, .84);
  box-shadow: 0 4px 16px rgba(0, 0, 0, .32);
  cursor: pointer;
}
.assessment-calibration-fullscreen:hover,
.assessment-calibration-fullscreen.active { color: #38d9f5; border-color: #38d9f5; background: rgba(7, 31, 45, .94); }
.assessment-calibration-fs-tools {
  position: absolute;
  top: 12px;
  left: 12px;
  right: 64px;
  z-index: 5;
  display: none;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  pointer-events: auto;
}
.assessment-calibration-viewer.is-fullscreen .assessment-calibration-fs-tools { display: flex; }
.assessment-calibration-fs-tool,
.assessment-calibration-fs-clear {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(126, 216, 255, .35);
  border-radius: 8px;
  padding: 7px 10px;
  color: #dbeaf2;
  background: rgba(5, 17, 27, .88);
  box-shadow: 0 3px 12px rgba(0, 0, 0, .25);
  font-size: 12px;
  cursor: pointer;
}
.assessment-calibration-fs-tool span { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; }
.assessment-calibration-fs-tool.active { color: #fff; border-color: #38d9f5; background: rgba(9, 76, 101, .92); }
.assessment-calibration-fs-clear { width: 36px; justify-content: center; padding: 7px; }
.assessment-calibration-viewer.is-fullscreen {
  width: 100vw;
  height: 100vh;
  min-height: 0;
  max-height: none;
  aspect-ratio: auto !important;
  border-radius: 0;
  background: #02070b;
}
.assessment-calibration-viewer.fullscreen-fallback {
  position: fixed;
  inset: 0;
  z-index: 9999;
}
.assessment-calibration-empty {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
  color: rgba(255,255,255,.72);
  text-align: center;
  padding: 24px;
}
.assessment-calibration-empty i { font-size: 30px; }
.assessment-calibration-empty.hidden { display: none; }
.assessment-calibration-side { min-width: 0; }
.assessment-calibration-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.assessment-calibration-tool {
  border: 1px solid var(--border);
  background: var(--surface, #fff);
  color: var(--text-2);
  border-radius: 8px;
  padding: 8px 9px;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.assessment-calibration-tool:hover { border-color: var(--brand); color: var(--brand); }
.assessment-calibration-tool.active { border-color: var(--brand); background: color-mix(in srgb, var(--brand) 10%, transparent); color: var(--brand); font-weight: 700; }
.assessment-calibration-tool span { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; }
.rope-manual-lanes { grid-column:1/-1; border:1px solid #dce5ef; border-radius:8px; background:#f8fafc; }
.rope-manual-lanes summary { padding:8px 9px; color:#47627f; font-size:11px; font-weight:700; cursor:pointer; list-style:none; }
.rope-manual-lanes summary::-webkit-details-marker { display:none; }
.rope-manual-lanes summary i { margin-right:6px; color:#2580cf; }.rope-manual-lanes summary small { margin-left:5px; color:#8a9aad; font-weight:500; }
.rope-manual-lanes[open] summary { border-bottom:1px solid #dce5ef; }
.rope-manual-lanes .assessment-calibration-tools { padding:7px; }
.assessment-calibration-summary { margin-top: 12px; display: grid; gap: 6px; }
.assessment-calibration-summary div { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; padding: 7px 8px; border-radius: 7px; background: var(--bg-2, #f7f8fa); }
.assessment-calibration-summary b.done { color: var(--success); }
.assessment-calibration-summary b.pending { color: var(--text-3); font-weight: 500; }
.assessment-calibration-help { display:flex; align-items:flex-start; gap:10px; min-height:64px; margin-top:10px; padding:11px 13px; border:1px solid #bcd8ff; border-radius:9px; color:#245a9b; background:#eef6ff; }
.assessment-calibration-help>i { margin-top:2px; color:#287ee6; }
.assessment-calibration-help b,.assessment-calibration-help span { display:block; }
.assessment-calibration-help b { margin-bottom:4px; font-size:12px; }
.assessment-calibration-help span { font-size:11px; line-height:1.6; color:#476b96; }
.assessment-line-pair-note { display:flex; align-items:flex-start; gap:7px; margin:-3px 0 12px; padding:8px 9px; border:1px solid #bfe8dc; border-radius:7px; color:#2c6f60; background:#effbf7; font-size:10px; line-height:1.5; }
.assessment-line-pair-note i { margin-top:2px; color:#20a878; }
.assessment-perspective-preview { margin-top:10px; padding:9px 10px 10px; border:1px solid #244d65; border-radius:8px; background:#091925; }
.assessment-perspective-preview-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; color:#d8f8ff; }
.assessment-perspective-preview-head b,.assessment-perspective-preview-head span { display:block; }
.assessment-perspective-preview-head b { font-size:11px; }
.assessment-perspective-preview-head b i { margin-right:5px; color:#38d9f5; }
.assessment-perspective-preview-head span { margin-top:2px; color:#7899ab; font-size:9px; }
.assessment-perspective-preview-head em { color:#5fe1c1; font-size:9px; font-style:normal; text-align:right; }
.assessment-perspective-preview canvas { display:block; width:100%; height:150px; border-radius:5px; background:#071018; }
.rope-layout-builder { margin:4px 0 12px; padding:11px; border:1px solid #cfe2f5; border-radius:10px; background:linear-gradient(145deg,#f5faff,#eef7ff); }
.rope-layout-builder-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.rope-layout-builder-head b,.rope-layout-builder-head span { display:block; }
.rope-layout-builder-head b { color:#17395f; font-size:12px; }
.rope-layout-builder-head span { margin-top:2px; color:#6a829c; font-size:10px; }
.rope-layout-builder-head .tb-btn { flex:0 0 auto; padding:6px 9px; color:#1767b5; border-color:#a8cbed; background:#fff; }
.balance-beam-calibration-guide { margin:4px 0 12px; padding:11px; border:1px solid #bfe8dc; border-radius:10px; color:#255f52; background:linear-gradient(145deg,#f3fff9,#edf9f3); }
.balance-beam-calibration-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.balance-beam-calibration-head b,.balance-beam-calibration-head span { display:block; }
.balance-beam-calibration-head b { color:#174b41; font-size:12px; }
.balance-beam-calibration-head b i { margin-right:5px; color:#20a878; }
.balance-beam-calibration-head span { margin-top:2px; color:#5f8179; font-size:10px; }
.balance-beam-calibration-head .tb-btn { flex:0 0 auto; padding:6px 9px; color:#15755e; border-color:#a5dccb; background:#fff; }
.balance-beam-calibration-guide ol { margin:0 0 9px 18px; padding:0; font-size:10px; line-height:1.55; }
.balance-beam-calibration-guide li { margin:3px 0; }
.balance-beam-safety-confirm { display:flex; align-items:flex-start; gap:7px; padding:8px 9px; border:1px solid #d7eadf; border-radius:8px; background:#fff; font-size:11px; line-height:1.45; color:#285d49; }
.balance-beam-safety-confirm input { margin-top:2px; }
.rope-layout-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.rope-layout-fields label:first-child { grid-column:1/-1; }
.rope-layout-fields label { min-width:0; color:#526d87; font-size:10px; }
.rope-layout-fields .form-control { height:32px; margin-top:4px; padding:4px 7px; font-size:11px; }
.rope-layout-note { display:flex; align-items:flex-start; gap:7px; margin-top:9px; padding:8px 9px; border-radius:7px; color:#4d6b8a; background:rgba(255,255,255,.72); font-size:10px; line-height:1.5; }
.rope-layout-note i { margin-top:2px; color:#1681d8; }
@media (max-width: 900px) {
  .assessment-calibration { grid-template-columns: 1fr; }
  .assessment-calibration-viewer { min-height: 280px; }
  .assessment-perspective-preview canvas { height:130px; }
  .rope-layout-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.assessment-runtime { display:grid; grid-template-columns:minmax(0,1fr) 410px; gap:14px; min-height:520px; }
.assessment-runtime-view { position:relative; overflow:hidden; min-height:420px; max-height:70vh; aspect-ratio:16/9; border-radius:12px; background:#071018; }
.assessment-runtime-view video,.assessment-runtime-view canvas { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; }
.assessment-runtime-view video { z-index:0; transition:opacity .12s; }
.assessment-runtime-view video.ai-synchronized { opacity:0; }
.assessment-runtime-view #assessment-run-ai-frame { z-index:1; pointer-events:none; opacity:0; }
.assessment-runtime-view #assessment-run-ai-frame.active { opacity:1; }
.assessment-runtime-view #assessment-run-canvas { z-index:2; pointer-events:none; }
.assessment-runtime-view .assessment-runtime-identity-video,.rope-runtime-view .assessment-runtime-identity-video,.situp-runtime-view .assessment-runtime-identity-video,.pullup-runtime-view .assessment-runtime-identity-video { inset:auto 12px 12px auto; z-index:3; width:220px; height:124px; border:2px solid rgba(255,255,255,.85); border-radius:9px; box-shadow:0 6px 18px rgba(0,0,0,.35); object-fit:cover; }
.assessment-runtime-loading { position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:#dbe8f5; background:rgba(7,16,24,.76); }
.assessment-runtime-loading.hidden { display:none; }
.assessment-runtime-panel { display:flex; flex-direction:column; min-width:0; }
.assessment-runtime-state { padding:12px; margin-bottom:10px; border-radius:10px; text-align:center; font-size:15px; font-weight:800; color:var(--brand); background:color-mix(in srgb,var(--brand) 10%,transparent); }
.assessment-runtime-state[data-tone="error"] { color:var(--danger); background:color-mix(in srgb,var(--danger) 10%,transparent); }
.assessment-runtime-student { display:flex; align-items:center; gap:10px; padding:12px; margin-bottom:12px; border:1px solid var(--border); border-radius:10px; }
.assessment-runtime-student b,.assessment-runtime-student span { display:block; }
.assessment-runtime-student span { margin-top:3px; font-size:11px; color:var(--text-3); }
.assessment-runtime-avatar { width:38px; height:38px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--brand); }
.assessment-runtime-score { display:flex; align-items:center; justify-content:space-between; padding:14px; margin-top:12px; border-radius:10px; background:var(--bg-2,#f7f8fa); }
.assessment-runtime-score span { font-size:12px; color:var(--text-3); }.assessment-runtime-score b { font-size:24px; }
.assessment-runtime-events { display:grid; gap:5px; margin:12px 0; max-height:155px; overflow:auto; }
.assessment-runtime-events div { display:grid; grid-template-columns:10px 1fr auto; align-items:center; gap:6px; padding:5px 2px; font-size:11px; color:var(--text-2); }
.assessment-runtime-events i { font-size:5px; color:var(--brand); }.assessment-runtime-events time { color:var(--text-3); }
.assessment-runtime-review { display:grid; gap:8px; margin:8px 0; }.assessment-runtime-review[hidden] { display:none!important; }.assessment-runtime-review .alert { margin:0; }.assessment-runtime-review .tb-btn { width:100%; justify-content:center; }
.rope-run-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; }.rope-run-actions[hidden] { display:none!important; }.rope-run-actions .tb-btn { width:100%; justify-content:center; }
@media (max-width:900px) { .assessment-runtime { grid-template-columns:1fr; }.assessment-runtime-view { min-height:300px; } }
.assessment-camera-status { display:inline-flex; align-items:center; gap:6px; min-width:76px; padding:5px 9px; border-radius:999px; font-size:12px; font-weight:700; line-height:1; background:#f1f3f6; color:#7b8798; }
.assessment-camera-status small { padding-left:3px; font-size:9px; font-weight:500; opacity:.72; }
.assessment-camera-status.online { color:#07845c; background:#e8f8f1; box-shadow:inset 0 0 0 1px #bcebd7; }
.assessment-camera-status.online i { color:#0eae78; filter:drop-shadow(0 0 3px rgba(14,174,120,.24)); }
.assessment-camera-status.error { color:#c63b32; background:#fff0ef; box-shadow:inset 0 0 0 1px #f5c4c0; }
.assessment-camera-status.checking { color:#2563c8; background:#edf4ff; box-shadow:inset 0 0 0 1px #c9dcff; }
.assessment-online-count.all-online { color:#0b9a6b; }
html.assessment-station-boot,html.assessment-station-boot body { height:100%; overflow:hidden; }
body.assessment-station-window { --station-cyan:#34e0ff; --station-blue:#168dff; --station-orange:#ff6a2b; --station-green:#22e39a; --station-ink:#aeb9d6; --station-line:rgba(80,150,210,.24); background:#04070f; color:#eaf2ff; overflow:hidden; }
html.assessment-station-boot body { background:#04070f; }
html.assessment-station-boot #login-screen { display:none!important; }
html.assessment-station-boot #app { display:block!important; height:calc(100vh - var(--desktop-titlebar-h)); }
html.assessment-station-boot .sidebar,html.assessment-station-boot .topbar { display:none!important; }
html.assessment-station-boot .main-area { width:100%; height:100%; }
html.assessment-station-boot .content-area { height:100%; padding:0; background:#04070f; }
html.assessment-station-boot body:not(.assessment-station-window)::after { content:'智慧测评站正在启动'; position:fixed; z-index:6990; left:0; right:0; top:var(--desktop-titlebar-h); bottom:0; display:grid; place-items:center; color:#6fcfea; background:radial-gradient(800px 500px at 50% 25%,rgba(34,142,210,.2),transparent 62%),linear-gradient(rgba(80,150,210,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(80,150,210,.1) 1px,transparent 1px),#04070f; background-size:auto,46px 46px,46px 46px,auto; font-size:13px; letter-spacing:.18em; text-shadow:0 0 16px rgba(52,224,255,.55); }
body.assessment-station-window #app.show { display:block; height:calc(100vh - var(--desktop-titlebar-h)); background:#04070f; }
body.assessment-station-window .sidebar,body.assessment-station-window .topbar { display:none!important; }
body.assessment-station-window .main-area { width:100%; height:100%; background:#04070f; }
body.assessment-station-window .content-area { position:relative; height:100%; padding:0; overflow:hidden; background:radial-gradient(1100px 620px at 72% -10%,rgba(28,120,180,.23),transparent 60%),radial-gradient(850px 560px at 0 110%,rgba(255,90,31,.1),transparent 55%),#04070f; }
body.assessment-station-window .content-area::before { content:''; position:absolute; inset:0; pointer-events:none; opacity:.42; background-image:linear-gradient(var(--station-line) 1px,transparent 1px),linear-gradient(90deg,var(--station-line) 1px,transparent 1px); background-size:46px 46px; mask:radial-gradient(115% 110% at 50% 30%,#000 52%,transparent); }
body.assessment-station-window .modal-overlay { top:var(--desktop-titlebar-h); bottom:0; height:auto; padding:0; align-items:stretch; overflow:hidden; background:transparent; }
body.assessment-station-window .modal { display:flex; flex-direction:column; width:100%!important; max-width:none; height:100%; max-height:none; border:0; border-radius:0; color:#eaf2ff; background:transparent; box-shadow:none; overflow:hidden; }
body.assessment-station-window .modal-header { display:none!important; }
body.assessment-station-window .modal-header::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:linear-gradient(90deg,transparent,rgba(52,224,255,.58),transparent); box-shadow:0 0 14px rgba(52,224,255,.32); }
body.assessment-station-window .modal-title { color:#eaf6ff; font-size:18px; font-weight:850; letter-spacing:.05em; }
body.assessment-station-window .modal-title::after { content:'AI VISION ASSESSMENT TERMINAL'; display:block; margin-top:3px; color:var(--station-cyan); font-size:9px; font-weight:600; letter-spacing:.28em; opacity:.72; }
body.assessment-station-window .modal-close { width:38px; height:38px; border:1px solid var(--station-line); border-radius:10px; color:#bcd6f0; background:rgba(14,32,56,.74); }
body.assessment-station-window .modal-close:hover { color:#fff; border-color:rgba(255,84,112,.75); background:rgba(255,84,112,.16); }
body.assessment-station-window .modal-header .modal-close { display:none!important; }
body.assessment-station-window .modal-body { position:relative; z-index:1; flex:1; min-height:0; display:flex; flex-direction:column; padding:12px 18px; overflow:hidden; }
body.assessment-station-window .modal-footer { position:relative; z-index:1; flex:0 0 auto; min-height:66px; margin:0 24px 14px; padding:11px 14px; border:1px solid rgba(52,224,255,.23); border-top-color:rgba(52,224,255,.2); border-radius:0 0 16px 16px; background:linear-gradient(180deg,rgba(4,11,22,.96),rgba(5,13,26,.9)); box-shadow:0 16px 46px rgba(0,0,0,.2); }
body.assessment-station-window .modal-footer:empty { display:none; }
body.assessment-station-window .modal-footer .tb-btn.brand { min-width:170px; justify-content:center; border-color:rgba(52,224,255,.55); color:#eaffff; background:linear-gradient(135deg,#0bb6e6,#176dff); box-shadow:0 0 22px rgba(52,180,255,.22); }
body.assessment-station-window .modal-footer .tb-btn.brand:hover { box-shadow:0 0 30px rgba(52,224,255,.38); transform:translateY(-1px); }
body.assessment-station-window .assessment-runtime-setup { width:min(920px,100%); margin:auto; padding:28px; border:0; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; }
body.assessment-station-window .assessment-runtime-setup::before { content:'测评任务配置'; display:block; margin-bottom:15px; color:#dff6ff; font-size:18px; font-weight:800; letter-spacing:.08em; }
body.assessment-station-window .assessment-runtime-setup .alert-blue { border-color:rgba(52,224,255,.26); color:#a9dcf1; background:rgba(52,224,255,.07); }
body.assessment-station-window .assessment-runtime-setup .form-label { color:#9eb9d1; }
body.assessment-station-window .assessment-runtime-setup .form-control,body.assessment-station-window .assessment-manual-tools .form-control { border-color:var(--station-line); color:#eaf2ff; background:#091426; }
body.assessment-station-window .assessment-runtime-setup .form-control:focus,body.assessment-station-window .assessment-manual-tools .form-control:focus { border-color:var(--station-cyan); box-shadow:0 0 0 3px rgba(52,224,255,.1); }
body.assessment-station-window .assessment-runtime-setup option,body.assessment-station-window .assessment-manual-tools option { color:#eaf2ff; background:#091426; }
body.assessment-station-window .assessment-runtime { flex:1; min-height:0; height:auto; }
body.assessment-station-window .assessment-runtime-view { border:1px solid var(--station-line); border-radius:16px; background:#02050b; box-shadow:inset 0 0 0 1px rgba(52,224,255,.08),0 14px 40px rgba(0,0,0,.34); }
body.assessment-station-window .assessment-runtime-view::after { content:''; position:absolute; z-index:4; inset:0; pointer-events:none; border-radius:16px; box-shadow:inset 0 0 0 2px rgba(52,224,255,.13),inset 0 0 90px rgba(52,224,255,.05); }
body.assessment-station-window .assessment-runtime-view::before { content:''; position:absolute; z-index:4; left:0; right:0; top:-100px; height:100px; pointer-events:none; background:linear-gradient(180deg,transparent,rgba(52,224,255,.12),transparent); animation:assessmentStationScan 4s linear infinite; }
@keyframes assessmentStationScan { to { top:100%; } }
body.assessment-station-window .assessment-runtime-loading { color:#bdeeff; background:rgba(2,7,14,.8); }
body.assessment-station-window .assessment-runtime-loading i { color:var(--station-cyan); filter:drop-shadow(0 0 9px rgba(52,224,255,.7)); }
body.assessment-station-window .assessment-runtime-panel { padding:14px; border:1px solid var(--station-line); border-radius:16px; background:linear-gradient(180deg,rgba(14,32,56,.82),rgba(7,17,33,.86)); box-shadow:inset 0 0 30px rgba(20,80,140,.1),0 14px 36px rgba(0,0,0,.3); }
body.assessment-station-window .assessment-runtime-state { border:1px solid rgba(52,224,255,.25); color:var(--station-cyan); background:rgba(52,224,255,.08); text-shadow:0 0 12px rgba(52,224,255,.35); }
body.assessment-station-window .assessment-runtime-student { border-color:var(--station-line); background:rgba(9,20,38,.72); }
body.assessment-station-window .assessment-runtime-student span { color:#89a7c1; }
body.assessment-station-window .assessment-runtime-avatar { color:#05131b; background:var(--station-cyan); box-shadow:0 0 18px rgba(52,224,255,.28); }
body.assessment-station-window .assessment-runtime-score { border:1px solid rgba(255,106,43,.28); background:linear-gradient(135deg,rgba(255,106,43,.15),rgba(9,20,38,.78)); }
body.assessment-station-window .assessment-runtime-score span { color:#adbed0; }
body.assessment-station-window .assessment-runtime-score b { color:#fff; text-shadow:0 0 18px rgba(255,106,43,.5); }
body.assessment-station-window .assessment-runtime-events div { color:#a9bfd3; }
body.assessment-station-window .assessment-runtime-events i { color:var(--station-cyan); }
body.assessment-station-window .assessment-runtime-events time { color:#627f9b; }
body.assessment-station-window .assessment-manual-tools { border-color:var(--station-line); background:rgba(7,17,33,.75); }
body.assessment-station-window .assessment-manual-tools summary { color:#7897b2; }
body.assessment-station-window .assessment-manual-tools[open] summary { color:#bcd6f0; border-color:var(--station-line); }
body.assessment-station-window .assessment-manual-tools .tb-btn { border-color:var(--station-line); color:#cde6f5; background:rgba(20,40,66,.72); }
.assessment-runtime[hidden],#assessment-run-review[hidden],#assessment-run-actions[hidden] { display:none!important; }
.assessment-console-shell { flex:1; min-height:0; height:100%; display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(52,224,255,.23); border-radius:16px; background:linear-gradient(180deg,rgba(10,26,47,.94),rgba(4,11,22,.93)); box-shadow:0 16px 46px rgba(0,0,0,.27),inset 0 0 42px rgba(26,111,172,.05); }
.assessment-console-switcher { position:relative; z-index:5; flex:0 0 auto; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; align-items:center; gap:8px 14px; min-height:90px; padding:9px 14px; border:0; border-bottom:1px solid rgba(52,224,255,.2); border-radius:0; background:linear-gradient(180deg,rgba(14,39,66,.96),rgba(8,23,42,.94)); box-shadow:inset 0 -1px 0 rgba(52,224,255,.05); transition:opacity .15s; }
.assessment-console-switcher.switching { opacity:.55; pointer-events:none; }
.assessment-console-switcher-head { display:contents; color:#dff6ff; }
.assessment-console-switcher-head>div:first-child { display:flex; align-items:center; gap:8px; min-width:0; }
.assessment-console-switcher-head i { color:var(--station-cyan); }
.assessment-console-switcher-head b { font-size:14px; letter-spacing:.05em; }
.assessment-console-switcher-head span { color:#7897b2; font-size:11px; }
.assessment-console-resource { grid-column:2; grid-row:1; flex:0 0 auto; color:#70dcb9; font-size:11px; white-space:nowrap; }
.assessment-console-resource i { margin-right:4px; color:#22e39a; }
.assessment-console-tabs { grid-column:1/-1; grid-row:2; min-width:0; display:flex; justify-content:flex-start; align-items:stretch; gap:8px; margin:0; overflow-x:auto; padding:1px; scrollbar-width:thin; }
.assessment-console-tab { flex:0 0 auto; min-width:188px; min-height:50px; margin:0; display:grid; grid-template-columns:8px minmax(0,1fr) auto; align-items:center; gap:9px; padding:7px 10px; border:1px solid rgba(80,150,210,.23); border-radius:10px; color:#b8c9dc; text-align:left; background:rgba(4,14,28,.62); cursor:pointer; transition:border-color .15s,background .15s,transform .15s,box-shadow .15s; }
.assessment-console-tab:hover { border-color:rgba(52,224,255,.5); background:rgba(14,41,68,.92); transform:translateY(-1px); }
.assessment-console-tab.active { border-color:rgba(52,224,255,.72); color:#f2fbff; background:linear-gradient(135deg,rgba(16,105,147,.34),rgba(12,35,66,.94)); box-shadow:0 0 20px rgba(52,224,255,.12),inset 0 0 0 1px rgba(52,224,255,.08); cursor:default; }
.assessment-console-tab.unavailable { opacity:.48; cursor:not-allowed; }
.assessment-console-tab>span:nth-child(2) { min-width:0; }
.assessment-console-tab b,.assessment-console-tab small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.assessment-console-tab b { font-size:13px; }
.assessment-console-tab small { margin-top:3px; color:#7897b2; font-size:10px; }
.assessment-console-tab em { padding:3px 6px; border-radius:999px; color:#7897b2; font-size:10px; font-style:normal; white-space:nowrap; background:rgba(110,140,170,.09); }
.assessment-console-tab.active em { color:#78edff; background:rgba(52,224,255,.12); }
.assessment-console-camera { width:7px; height:7px; border-radius:50%; background:#66788b; box-shadow:0 0 0 3px rgba(102,120,139,.1); }
.assessment-console-camera.online { background:#22e39a; box-shadow:0 0 0 3px rgba(34,227,154,.11),0 0 9px rgba(34,227,154,.5); }
.assessment-console-workspace { flex:1; min-height:0; display:flex; flex-direction:column; gap:0; padding:12px; overflow:hidden; background:radial-gradient(900px 480px at 50% 0,rgba(20,91,145,.08),transparent 65%),rgba(2,8,16,.58); }
.assessment-session-toolbar { flex:0 0 auto; display:grid; grid-template-columns:minmax(220px,.8fr) minmax(340px,1.5fr) auto; align-items:center; gap:7px 14px; padding:10px 12px; border:1px solid rgba(52,224,255,.22); border-radius:12px; background:linear-gradient(135deg,rgba(13,42,69,.94),rgba(7,22,40,.96)); box-shadow:inset 0 0 24px rgba(52,224,255,.035); }
.assessment-session-toolbar.active { border-color:rgba(34,227,154,.34); box-shadow:inset 0 0 26px rgba(34,227,154,.04); }
.assessment-session-toolbar-copy { display:flex; align-items:center; gap:10px; min-width:0; }
.assessment-session-toolbar-copy>i { width:32px; height:32px; flex:0 0 auto; display:grid; place-items:center; border-radius:9px; color:var(--station-cyan); background:rgba(52,224,255,.1); }
.assessment-session-toolbar-copy b,.assessment-session-toolbar-copy span { display:block; }
.assessment-session-toolbar-copy b { color:#e8f8ff; font-size:13px; }
.assessment-session-toolbar-copy span { margin-top:2px; overflow:hidden; color:#7897b2; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.assessment-session-picker { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:8px; color:#93b2ca; font-size:11px; }
.assessment-session-picker .form-control { height:38px; min-width:0; border-color:rgba(52,224,255,.23); color:#eaf2ff; background:#08172a; }
.assessment-session-apply { min-width:154px; height:38px; justify-content:center; }
.assessment-session-toolbar.active .assessment-session-apply { border-color:rgba(34,227,154,.4); color:#bfffe7; background:rgba(20,120,88,.32); box-shadow:none; }
.assessment-session-meta { grid-column:1/-1; overflow:hidden; padding-left:42px; color:#6f8ba5; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.assessment-session-sidebar { display:grid; grid-template-columns:1fr; align-items:stretch; gap:8px; margin-bottom:10px; padding:11px; border-radius:11px; }
.assessment-session-sidebar .assessment-session-toolbar-copy { margin-bottom:1px; }
.assessment-session-sidebar .assessment-session-toolbar-copy>i { width:30px; height:30px; }
.assessment-session-sidebar .assessment-session-toolbar-copy span { white-space:normal; }
.assessment-session-sidebar .assessment-session-picker { grid-template-columns:1fr; gap:5px; }
.assessment-session-sidebar .assessment-session-picker>span { font-weight:650; }
.assessment-session-sidebar .assessment-session-apply { width:100%; min-width:0; }
.assessment-console-workspace>.assessment-runtime,.assessment-console-workspace>.rope-runtime,.assessment-console-workspace>.situp-runtime,.assessment-console-workspace>.pullup-runtime { flex:1; width:100%; height:100%; min-height:0; }
.assessment-console-workspace .assessment-runtime-view,.assessment-console-workspace .rope-runtime-view,.assessment-console-workspace .situp-runtime-view,.assessment-console-workspace .pullup-runtime-view { height:100%; min-height:0; max-height:none; aspect-ratio:auto; }
.assessment-console-workspace .assessment-runtime-panel,.assessment-console-workspace .rope-runtime-panel,.assessment-console-workspace .situp-panel,.assessment-console-workspace .pullup-panel { height:100%; min-height:0; overflow-x:hidden; overflow-y:auto; scrollbar-width:thin; }
.assessment-console-workspace .assessment-runtime-events { flex:1; min-height:36px; }
@media (max-width:1050px) { .assessment-console-switcher { grid-template-columns:minmax(0,1fr); }.assessment-console-resource { display:none; }.assessment-console-tab { min-width:172px; }.assessment-session-toolbar:not(.assessment-session-sidebar) { grid-template-columns:1fr auto; }.assessment-session-toolbar:not(.assessment-session-sidebar) .assessment-session-picker { grid-column:1/-1; grid-row:2; }.assessment-session-meta { display:none; } }
.rope-runtime { flex:1; display:grid; grid-template-columns:minmax(0,1fr) 430px; gap:14px; min-height:0; height:auto; }
.rope-runtime[hidden] { display:none!important; }
.rope-runtime-view { position:relative; overflow:hidden; min-height:420px; max-height:calc(100vh - 170px); aspect-ratio:16/9; border:1px solid var(--station-line,var(--border)); border-radius:16px; background:#02050b; box-shadow:inset 0 0 0 1px rgba(52,224,255,.08),0 14px 40px rgba(0,0,0,.34); }
.rope-runtime-view video,.rope-runtime-view canvas { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; }
.rope-runtime-view video { z-index:0; }.rope-runtime-view canvas { z-index:2; pointer-events:none; }
.rope-runtime-panel { display:flex; flex-direction:column; min-width:0; padding:14px; overflow:hidden; border:1px solid var(--station-line,var(--border)); border-radius:16px; background:linear-gradient(180deg,rgba(14,32,56,.82),rgba(7,17,33,.86)); }
.rope-timer { margin:-2px 0 10px; color:#fff; font-size:42px; line-height:1; font-weight:900; text-align:center; font-variant-numeric:tabular-nums; letter-spacing:.08em; text-shadow:0 0 22px rgba(52,224,255,.48); }
.rope-lanes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; overflow:auto; padding-right:2px; }
.rope-lane-card { min-width:0; padding:10px; border:1px solid rgba(80,150,210,.24); border-radius:11px; background:rgba(7,17,33,.72); }
.rope-lane-card.bound { border-color:rgba(34,227,154,.38); box-shadow:inset 0 0 20px rgba(34,227,154,.05); }
.rope-lane-card.out-of-lane { border-color:rgba(255,84,92,.78); background:rgba(75,18,28,.48); box-shadow:inset 0 0 24px rgba(255,84,92,.1); }
.rope-lane-card.out-of-lane .rope-lane-head span { color:#ff7b82; font-weight:700; }
.rope-lane-head { display:flex; justify-content:space-between; gap:7px; font-size:11px; }.rope-lane-head b { color:#eaf6ff; }.rope-lane-head span { color:#7591aa; }
.rope-lane-score { display:flex; align-items:baseline; justify-content:center; gap:4px; margin:8px 0; }.rope-lane-score strong { color:#fff; font-size:30px; line-height:1; }.rope-lane-score small { color:#7ea2bc; }
.rope-lane-meta { display:flex; justify-content:space-between; gap:6px; min-height:17px; margin:-2px 0 7px; color:#7893aa; font-size:10px; white-space:nowrap; overflow:hidden; }.rope-lane-meta span:last-child { overflow:hidden; text-overflow:ellipsis; }
.assessment-station-voice { display:flex; align-items:center; gap:8px; margin-top:4px; color:var(--text-2); font-size:13px; cursor:pointer; }
.assessment-station-form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 12px; }
.assessment-station-form-grid .form-group { margin-bottom:0; }
.assessment-station-hint { margin-top:12px!important; margin-bottom:10px!important; }
.assessment-station-advanced { border:1px solid var(--border); border-radius:10px; background:var(--surface-2); }
.assessment-station-advanced summary { display:flex; align-items:center; gap:8px; padding:11px 13px; color:var(--text-2); font-size:13px; font-weight:650; cursor:pointer; list-style:none; }
.assessment-station-advanced summary::-webkit-details-marker { display:none; }
.assessment-station-advanced summary small { margin-left:auto; color:var(--text-3); font-size:11px; font-weight:400; }
.assessment-station-advanced[open] summary { border-bottom:1px solid var(--border); }
.assessment-station-advanced-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:12px; }
@media (max-width:900px) { .assessment-station-form-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:720px) { .assessment-station-form-grid,.assessment-station-advanced-grid { grid-template-columns:1fr; } }
.rope-lane-student { display:flex; align-items:center; gap:6px; min-height:34px; color:#bfeada; font-size:12px; }.rope-lane-student .form-control { min-width:0; height:32px; padding:4px 6px; color:#eaf2ff; background:#091426; border-color:rgba(80,150,210,.24); }.rope-lane-student .tb-btn { height:32px; padding:4px 8px; }
.rope-countdown-button { width:100%; justify-content:center; margin-top:10px; }
.rope-runtime-panel .assessment-runtime-events { max-height:125px; }
@media (max-width:1000px) { .rope-runtime { grid-template-columns:1fr; overflow:auto; }.rope-runtime-panel { overflow:visible; }.rope-runtime-view { min-height:320px; }.rope-lanes { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.situp-runtime,.pullup-runtime { flex:1; display:grid; grid-template-columns:minmax(0,1fr) 410px; gap:14px; height:auto; min-height:0; }
.situp-runtime[hidden],.pullup-runtime[hidden] { display:none!important; }
.situp-runtime-view,.pullup-runtime-view { position:relative; overflow:hidden; min-height:430px; max-height:calc(100vh - 170px); aspect-ratio:16/9; border:1px solid var(--station-line,var(--border)); border-radius:16px; background:#02050b; box-shadow:inset 0 0 0 1px rgba(52,224,255,.08),0 14px 40px rgba(0,0,0,.34); }
.situp-runtime-view video,.situp-runtime-view canvas,.pullup-runtime-view video,.pullup-runtime-view canvas { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; }.situp-runtime-view video,.pullup-runtime-view video{z-index:0}.situp-runtime-view canvas,.pullup-runtime-view canvas{z-index:2;pointer-events:none}
.situp-panel,.pullup-panel { display:flex; flex-direction:column; min-width:0; padding:14px; overflow:hidden; border:1px solid var(--station-line,var(--border)); border-radius:16px; background:linear-gradient(180deg,rgba(14,32,56,.82),rgba(7,17,33,.86)); }
.situp-timer,.pullup-timer { margin:2px 0 12px; color:#fff; font-size:46px; line-height:1; font-weight:900; text-align:center; font-variant-numeric:tabular-nums; letter-spacing:.08em; text-shadow:0 0 22px rgba(52,224,255,.48); }
.situp-score,.pullup-score { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-bottom:11px; }.situp-score>div,.pullup-score>div{padding:12px 8px;border:1px solid rgba(34,227,154,.28);border-radius:11px;text-align:center;background:rgba(34,227,154,.07)}.situp-score>div.invalid,.pullup-score>div.invalid{border-color:rgba(255,106,43,.28);background:rgba(255,106,43,.07)}
.situp-score.reach-score{grid-template-columns:repeat(3,minmax(0,1fr))}.situp-score.reach-score strong{font-size:25px}
.situp-score strong,.situp-score span,.pullup-score strong,.pullup-score span{display:block}.situp-score strong,.pullup-score strong{color:#eaffff;font-size:32px;line-height:1}.situp-score span,.pullup-score span{margin-top:5px;color:#80a4ba;font-size:11px}.situp-score .invalid strong,.pullup-score .invalid strong{color:#ff9a70}
.situp-start,.pullup-start { width:100%; justify-content:center; margin:10px 0; }
.situp-panel .assessment-runtime-events,.pullup-panel .assessment-runtime-events { max-height:155px; }.situp-panel .assessment-manual-tools,.pullup-panel .assessment-manual-tools{margin-top:auto}.situp-actions,.pullup-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.situp-actions[hidden],.pullup-actions[hidden]{display:none!important}.situp-actions .tb-btn,.pullup-actions .tb-btn{justify-content:center}
.balance-beam-attempt-state { margin:0 0 8px; padding:7px 10px; border:1px solid rgba(52,224,255,.2); border-radius:8px; color:#d9faff; background:rgba(52,224,255,.08); font-size:12px; font-weight:800; text-align:center; }
.balance-beam-attempt-safety { display:flex; align-items:flex-start; gap:8px; margin:0 0 10px; padding:9px 10px; border:1px solid rgba(245,158,11,.35); border-radius:8px; color:#ffe9b8; background:rgba(245,158,11,.11); font-size:12px; line-height:1.45; }
.balance-beam-attempt-safety input { margin-top:2px; }
@media (min-width:1001px) and (max-width:1250px) { .assessment-runtime { grid-template-columns:minmax(0,1fr) 360px; }.rope-runtime { grid-template-columns:minmax(0,1fr) 390px; }.situp-runtime,.pullup-runtime { grid-template-columns:minmax(0,1fr) 370px; } }
@media (max-width:1000px){.situp-runtime,.pullup-runtime{grid-template-columns:1fr;overflow:auto}.situp-panel,.pullup-panel{overflow:visible}.situp-runtime-view,.pullup-runtime-view{min-height:320px}}
.assessment-manual-tools { margin-top:auto; border:1px solid var(--border); border-radius:9px; background:#fafbfc; overflow:hidden; }
.assessment-manual-tools summary { cursor:pointer; padding:9px 11px; color:var(--text-3); font-size:11px; user-select:none; }
.assessment-manual-tools[open] summary { color:var(--text-2); border-bottom:1px solid var(--border); }
.assessment-manual-tools-body { display:grid; gap:8px; padding:10px; }
.assessment-manual-tools-body .form-group { margin:0; }
.assessment-session-empty { display:flex; align-items:center; gap:12px; margin:12px 0; padding:13px 14px; border:1px solid #f3cf8e; border-radius:9px; background:#fff9e9; color:#8a5a00; }
.assessment-session-empty>i { font-size:22px; color:#e49a13; }
.assessment-session-empty>div { flex:1; min-width:0; }
.assessment-session-empty b,.assessment-session-empty span { display:block; }
.assessment-session-empty span { margin-top:3px; color:#8d7445; font-size:11px; }
.assessment-window-placeholder { height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:#c8d7e8; }
.assessment-window-placeholder i { font-size:34px; color:#ff7a45; margin-bottom:5px; }
.assessment-window-placeholder b { font-size:17px; }
.assessment-window-placeholder span { font-size:12px; color:#71869c; }

/* 发起体能测评：场次配置与采集入口 */
.fit-launch-layout { display:grid; grid-template-columns:minmax(520px,1.06fr) minmax(420px,.94fr); gap:16px; align-items:stretch; }
.fit-launch-config,.fit-launch-collection { min-width:0; margin:0; }
.fit-launch-config,.fit-launch-collection { display:flex; flex-direction:column; }
.fit-step { padding:4px 9px; border-radius:999px; color:var(--text-3); background:var(--bg-2,#f5f7fa); font-size:11px; font-weight:600; }
.fit-field-help { margin-top:7px; color:var(--text-3); font-size:11px; }
.fit-launch-note { display:flex; align-items:flex-start; gap:9px; margin-top:auto; padding:12px 13px; border:1px solid #cbdfff; border-radius:10px; color:#315f9d; background:#f1f6ff; font-size:12px; line-height:1.6; }
.fit-launch-note i { margin-top:3px; color:#337ee6; }
.fit-launch-note b { color:#24548f; }
.fit-collection-list { display:grid; gap:10px; }
.fit-collection-card { position:relative; width:100%; display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:12px; padding:15px; border:1px solid var(--border); border-radius:12px; color:var(--text-1); background:#fff; text-align:left; cursor:pointer; transition:border-color .15s,box-shadow .15s,transform .15s; }
.fit-collection-card:hover:not(.disabled) { border-color:#ff9f77; box-shadow:0 5px 16px rgba(255,91,43,.08); transform:translateY(-1px); }
.fit-collection-card.selected { border-color:var(--brand); box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 12%,transparent); background:color-mix(in srgb,var(--brand) 3%,#fff); }
.fit-collection-card.disabled { opacity:.65; cursor:not-allowed; background:#fafbfc; }
.fit-collection-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:12px; font-size:18px; }
.fit-collection-icon.manual { color:#e75b2b; background:#fff0e9; }
.fit-collection-icon.vision { color:#2563d7; background:#eaf2ff; }
.fit-collection-icon.device { color:#64748b; background:#eef1f5; }
.fit-collection-copy b,.fit-collection-copy small,.fit-collection-copy em { display:block; }
.fit-collection-copy b { font-size:14px; }
.fit-collection-copy small { margin-top:3px; color:var(--text-3); font-size:11px; }
.fit-collection-copy em { margin-top:7px; color:var(--text-2); font-size:11px; line-height:1.5; font-style:normal; }
.fit-collection-check { color:var(--brand); font-size:18px; }
.fit-collection-status { padding:5px 8px; border-radius:999px; color:#7b8798; background:#edf0f4; font-size:10px; font-weight:700; white-space:nowrap; }
.fit-collection-status.ready { color:#07845c; background:#e7f8f0; }
.fit-launch-action { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:auto; padding-top:18px; border-top:1px solid var(--border); }
.fit-launch-summary { max-width:58%; color:var(--text-3); font-size:11px; line-height:1.55; }
.fit-launch-button { min-width:190px; justify-content:center; }
@media (max-width:1150px) { .fit-launch-layout { grid-template-columns:1fr; }.fit-launch-config,.fit-launch-collection { min-height:auto; }.fit-launch-note { margin-top:8px; }.fit-launch-action { margin-top:18px; } }
@media (max-width:650px) { .fit-launch-action { align-items:stretch; flex-direction:column; }.fit-launch-summary { max-width:none; }.fit-launch-button { width:100%; }.fit-collection-card { grid-template-columns:42px minmax(0,1fr); }.fit-collection-card>.fit-collection-status,.fit-collection-card>.fit-collection-check { position:absolute; top:11px; right:11px; }.fit-collection-icon { width:42px; height:42px; } }
.assessment-media-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:12px 14px;border:1px solid #dbe7f5;border-radius:10px;background:#f5f9ff;color:#66758d;font-size:12px}
.assessment-media-header>div{display:flex;flex-direction:column;gap:3px}.assessment-media-header b{color:#14233a;font-size:14px}.assessment-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-height:68vh;overflow:auto;padding:1px 3px 4px}
.assessment-media-card{overflow:hidden;border:1px solid #dfe7f1;border-radius:11px;background:#fff;box-shadow:0 4px 14px rgba(19,42,76,.06)}
.assessment-media-preview{display:grid;place-items:center;aspect-ratio:16/9;background:#07111d;overflow:hidden}.assessment-media-preview img,.assessment-media-preview video{display:block;width:100%;height:100%;object-fit:contain}
.assessment-media-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px}.assessment-media-meta>div{display:flex;flex-direction:column;gap:3px}.assessment-media-meta b{font-size:13px;color:#162238}.assessment-media-meta span{font-size:11px;color:#8a99ad}
.assessment-media-storage{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:4px;white-space:nowrap;padding:4px 8px;border-radius:12px}.assessment-media-storage.cloud{color:#0b9f68;background:#e8f8f1}.assessment-media-storage.local{color:#b46b08;background:#fff4dc}
@media(max-width:900px){.assessment-media-grid{grid-template-columns:1fr}}
