:root{
  --ink:#132521; --muted:#5c6f69; --line:#dce6e1; --paper:#f6f8f4;
  --teal:#0f766e; --teal2:#14b8a6; --navy:#0b2b3a; --amber:#b45309;
  --card:#ffffff; --shadow:0 14px 34px rgba(16,45,38,.08); --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  color:var(--ink); line-height:1.7;
  background:radial-gradient(1200px 520px at 8% -10%,#e6f4ee 0,transparent 62%),var(--paper);
}
a{color:var(--teal);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
.top{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:26px;
  padding:12px 26px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink)}
.brand b{display:block;font-size:15px;letter-spacing:.4px}
.brand small{display:block;font-size:10.5px;color:var(--muted);letter-spacing:1.2px}
.logo{
  width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:21px;
  background:linear-gradient(135deg,#0f766e,#14b8a6);box-shadow:0 6px 16px rgba(15,118,110,.28);
}
.nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.nav a{padding:7px 13px;border-radius:999px;color:#344944;font-size:13.5px}
.nav a:hover,.nav a.on{background:#e7f3ee;color:var(--teal);text-decoration:none}
.version{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 9px}
.wrap{max-width:1240px;margin:0 auto;padding:28px 24px 60px}
.hero{
  position:relative;overflow:hidden;border-radius:26px;padding:44px 42px;color:#fff;
  background:linear-gradient(118deg,#082f3c 0%,#0e5f63 55%,#0f9b8e 100%);
  box-shadow:0 24px 48px rgba(8,60,58,.22);
}
.hero:after{content:"";position:absolute;right:-100px;top:-120px;width:360px;height:360px;border-radius:50%;border:46px solid rgba(255,255,255,.08)}
.hero .kicker{font-size:11px;letter-spacing:3px;opacity:.76}
.hero h1{margin:10px 0 12px;font-size:clamp(28px,4.2vw,46px);line-height:1.18}
.hero p{margin:0;max-width:760px;color:rgba(255,255,255,.9);font-size:14.5px}
.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.tag{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.12);padding:5px 11px;border-radius:999px;font-size:11.5px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.btn{
  display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;color:var(--ink);
  border-radius:11px;padding:9px 16px;font:inherit;font-size:13.5px;cursor:pointer;text-decoration:none;
}
.btn:hover{border-color:#9dd4c6;background:#f3fbf8;text-decoration:none}
.btn.primary{background:#fff;color:#0b5f59;border-color:#fff;font-weight:700}
.btn.primary:hover{background:#e9fbf4}
.btn.dark{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.dark:hover{background:#124257}
.btn.small{padding:5px 10px;font-size:12px}
.grid{display:grid;gap:16px}
.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 21px;box-shadow:var(--shadow)}
.card h3{margin:0 0 7px;font-size:15px}
.card p{margin:0;color:var(--muted);font-size:13px}
.card .num{font-size:26px;font-weight:800;color:var(--teal);line-height:1.2}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;margin-top:24px}
.section-title{display:flex;align-items:baseline;gap:12px;margin:34px 0 12px}
.section-title h2{margin:0;font-size:21px}
.section-title span{color:var(--muted);font-size:12.5px}
.lesson-head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin:4px 0 18px}
.lesson-head .badge{
  width:62px;height:62px;border-radius:17px;display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff;font:700 15px ui-monospace,monospace;
  box-shadow:0 8px 20px rgba(15,118,110,.25);
}
.lesson-head h1{margin:0;font-size:clamp(23px,3vw,32px);line-height:1.25}
.lesson-head .sub{color:var(--muted);font-size:13.5px;margin-top:5px}
.lesson-grid{display:grid;grid-template-columns:250px minmax(0,1fr) 280px;gap:16px;align-items:start}
.steps{position:sticky;top:82px}
.step{
  width:100%;text-align:left;display:block;border:1px solid var(--line);background:#fff;border-radius:13px;
  padding:11px 13px;margin-bottom:8px;cursor:pointer;font:inherit;color:var(--ink);
}
.step:hover{border-color:#a7d8ca;background:#f6fcfa}
.step.on{border-color:var(--teal);background:#e9f7f1;box-shadow:0 6px 18px rgba(15,118,110,.09)}
.step .t{font-size:10.5px;color:var(--teal);font-weight:700;letter-spacing:1px}
.step .h{display:block;font-size:13.5px;font-weight:700;margin:2px 0 2px}
.step .d{display:block;font-size:11.5px;color:var(--muted);line-height:1.45}
.sim{
  background:linear-gradient(180deg,#0a1a24,#07131a);border:1px solid #1f3b47;border-radius:20px;
  padding:12px;box-shadow:0 22px 44px rgba(5,26,32,.25);
}
.sim canvas{display:block;width:100%;height:auto;border-radius:13px;background:#f3f8fe}
.sim-toolbar{display:flex;gap:7px;flex-wrap:wrap;padding:10px 3px 2px}
.sim-toolbar .btn{background:rgba(255,255,255,.08);border-color:rgba(140,220,220,.28);color:#d8fbf4;font-size:12px;padding:6px 11px}
.sim-toolbar .btn:hover{background:rgba(20,184,166,.22)}
.sim-toolbar .btn.on{background:#0f766e;border-color:#2dd4bf;color:#fff}
.sim-readout{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;padding:0 3px 3px;
  font:11px/1.4 ui-monospace,Menlo,monospace;color:#9fd8d0;
}
.sim-readout b{display:block;color:#e8fffa;font-size:13px;font-weight:600}
.sim-readout span{color:#6f9a95}
.sliders{padding:4px 6px 8px;color:#c9e8e2;font-size:11.5px}
.sliders input[type=range]{width:100%;accent-color:#2dd4bf}
.sim-note{color:#7ea9a2;font-size:10.5px;padding:2px 5px 6px}
.aside .card{margin-bottom:12px}
.aside ul{margin:0;padding-left:18px;font-size:12.8px}
.aside li{margin:4px 0}
.kbd{font:11px ui-monospace,monospace;background:#eef4f1;border:1px solid #d7e4de;border-radius:5px;padding:1px 5px}
.table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}
.table th,.table td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.table th{background:#eff7f3;color:#2c4b43}
.timeline{margin-top:8px}
.timeline .row{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line)}
.timeline .time{font:11px ui-monospace,monospace;color:var(--teal);font-weight:700}
.timeline .body b{display:block;font-size:13.5px}
.timeline .body span{font-size:12px;color:var(--muted)}
.callout{border-left:4px solid var(--teal2);background:#effaf5;border-radius:0 12px 12px 0;padding:12px 16px;font-size:13px;color:#38544c;margin:14px 0}
.warn{border-left-color:#f59e0b;background:#fff8eb;color:#6b4a12}
.task-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.task{border:1px solid var(--line);border-radius:14px;background:#fff;padding:16px}
.task h4{margin:0 0 5px;font-size:14px}
.task p{margin:0;color:var(--muted);font-size:12.5px}
.task .meta{margin-top:9px;font-size:11px;color:var(--teal)}
.footer{border-top:1px solid var(--line);padding:20px 24px;display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;color:var(--muted);font-size:11.5px;background:rgba(255,255,255,.6)}
.print-only{display:none}
.doc{max-width:920px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:36px 40px;box-shadow:var(--shadow)}
.doc h1{font-size:26px;margin:0 0 4px}
.doc .meta{color:var(--muted);font-size:12.5px;margin-bottom:20px}
.doc h2{font-size:18px;margin:26px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--line)}
.doc h3{font-size:15px;margin:18px 0 6px}
.doc ul,.doc ol{padding-left:22px}
.doc li{margin:4px 0}
.doc table{margin:10px 0}
.doc .blank{display:inline-block;border-bottom:1px solid #9aa;min-width:120px;height:1.2em}
.doc .check{display:inline-block;width:13px;height:13px;border:1.5px solid #8fa8a1;border-radius:3px;vertical-align:-2px;margin-right:4px}
.doc .center{text-align:center}
.doc .small{font-size:12px;color:var(--muted)}
@media (max-width:1100px){
  .lesson-grid{grid-template-columns:1fr}
  .steps{position:static;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
  .step{margin:0;padding:8px;min-height:76px}
  .step .d{display:none}
  .aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}
}
@media (max-width:760px){
  .top{padding:10px 14px}.nav{display:none}.wrap{padding:16px 12px 40px}
  .hero{padding:28px 22px}.cards,.split,.task-grid,.aside{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}.doc{padding:22px 18px}
  .sim-readout{grid-template-columns:1fr 1fr}
}
@media print{
  body{background:#fff}
  .top,.footer,.actions,.sim-toolbar,.steps,.no-print{display:none!important}
  .wrap{padding:0;max-width:none}
  .doc{box-shadow:none;border:0;border-radius:0;padding:0;max-width:none}
  .print-only{display:block}
  a{color:inherit;text-decoration:none}
  .table th{background:#f1f1f1!important}
  @page{margin:16mm}
}

/* ================= D01 三关演示课 ================= */
.demo-shell{display:grid;grid-template-columns:220px minmax(0,1fr) 250px;gap:16px;align-items:start;margin-top:6px}
.demo-rail{position:sticky;top:82px}
.rail-title{font-size:11px;letter-spacing:2px;color:var(--muted);margin:0 0 8px 4px}
.rail-step{width:100%;display:flex;gap:10px;align-items:flex-start;text-align:left;border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px 12px;margin-bottom:8px;font:inherit;color:var(--ink);cursor:pointer}
.rail-step:hover{border-color:#a7d8ca;background:#f6fcfa}
.rail-step.on{border-color:var(--teal);background:#e9f7f1;box-shadow:0 6px 18px rgba(15,118,110,.09)}
.rail-step .n{font:700 11px ui-monospace,monospace;color:var(--teal);background:#e2f3ed;border-radius:6px;padding:2px 5px;margin-top:1px}
.rail-step b{display:block;font-size:14px}
.rail-step small{display:block;color:var(--muted);font-size:11px;line-height:1.4}
.rail-note{font-size:11px;color:var(--muted);padding:8px 4px;border-top:1px dashed var(--line);margin-top:10px}
.rail-progress{margin-top:8px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:11.5px;color:var(--muted)}
.rail-progress div:first-child{display:flex;justify-content:space-between}
.rail-progress b{color:var(--teal)}
.rail-progress .bar{height:6px;background:#e7f1ec;border-radius:99px;margin-top:7px;overflow:hidden}
.rail-progress .bar i{display:block;height:100%;width:36%;background:linear-gradient(90deg,#0f766e,#2dd4bf);border-radius:99px}
.demo-stage{min-width:0}
.pane{display:none}
.pane.on{display:block}
.stage-head{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;margin:0 0 12px}
.stage-head h2{font-size:20px;margin:0}
.stage-head p{margin:4px 0 0;color:var(--muted);font-size:12.5px}
.pill{flex:0 0 auto;font-size:11px;color:var(--teal);border:1px solid #cfe9df;background:#eefaf5;border-radius:99px;padding:5px 10px}
.demo-side .card{margin-bottom:12px}
.demo-side h3{font-size:13.5px}
.tight{margin:0;padding-left:17px;font-size:12px}
.tight li{margin:4px 0}
.arm-sim{padding:10px}
.arm-sim canvas{background:#f3f8fe}
.hs-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.hs-card h3{font-size:14px;margin:0 0 8px}
.steps-list{margin:0;padding-left:18px;font-size:12px;color:#4b625b}
.steps-list li{margin:5px 0;padding:3px 6px;border-radius:7px}
.steps-list li.on{background:#e9f7f1;color:var(--teal);font-weight:700}
.steps-list li.done{color:#6b8d84;text-decoration:line-through}
.status-line{font-size:12px;color:#2f564c;background:#f2faf7;border:1px solid #dcefe7;border-radius:9px;padding:8px 10px;margin:10px 0;min-height:38px}
.btn-row{display:flex;gap:8px;flex-wrap:wrap}
.range-label{display:block;font-size:12px;color:#405a52;margin:8px 0 4px}
.range-label b{float:right;color:var(--teal)}
.range-label input{width:100%;accent-color:#14b8a6;margin-top:4px}
.mini-note{font-size:10.5px;color:var(--muted);line-height:1.5;margin-top:8px}
.joint-box{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 14px}
.joint-box summary{cursor:pointer;font-size:12.5px;color:var(--teal);padding:10px 0}
.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:12px}
.chat-main{display:flex;flex-direction:column;min-height:520px;padding:14px}
.chat-box{flex:1;overflow:auto;padding:6px 4px 10px;max-height:430px}
.msg{display:flex;gap:7px;margin:9px 0;align-items:flex-start}
.msg .avatar{width:28px;height:28px;border-radius:9px;background:#e7f3ee;display:grid;place-items:center;font-size:15px;flex:0 0 auto}
.msg .bubble{background:#f4f8f6;border:1px solid #e3ece7;border-radius:11px;padding:8px 11px;font-size:12.8px;line-height:1.55;max-width:85%}
.msg.me{flex-direction:row-reverse}
.msg.me .bubble{background:#e8f6f1;border-color:#cfe9df}
.msg.me .avatar{background:#dcefff}
.quick-row{display:flex;gap:6px;flex-wrap:wrap;padding:8px 0;border-top:1px dashed var(--line)}
.chip-btn{font:inherit;font-size:11px;border:1px solid #d8e7e1;background:#f7fcfa;color:#2f564c;border-radius:99px;padding:4px 9px;cursor:pointer}
.chip-btn:hover{border-color:#9dd4c6;background:#eefaf5}
.chat-input-row{display:flex;gap:7px;padding-top:8px}
.chat-input-row input{flex:1;border:1px solid #d5e4de;border-radius:9px;padding:9px 10px;font:inherit;font-size:12.5px;outline:none}
.chat-input-row input:focus{border-color:#14b8a6;box-shadow:0 0 0 3px rgba(20,184,166,.12)}
.nlu{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0}
.nlu .chip{background:#eef4ff;border:1px solid #dbe5ff;color:#1e40af;border-radius:99px;padding:3px 8px;font-size:10.5px}
.nlu .chip b{font-weight:700}
.chat-side .card{margin-bottom:12px}
.nav-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:12px}
.nav-sim{padding:10px}
.nav-sim canvas{background:#f4faf7;max-width:100%}
.nav-side .card{margin-bottom:12px}
.dest-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.dest-grid button{font:inherit;font-size:12px;border:1px solid #d8e7e1;background:#f7fcfa;border-radius:10px;padding:9px 6px;cursor:pointer;color:#21463d}
.dest-grid button:hover{border-color:#9dd4c6;background:#eefaf5}
.dest-grid button.on{background:#0f766e;color:#fff;border-color:#0f766e}
.badge-list{display:flex;flex-direction:column;gap:6px}
.badge-item{display:flex;gap:8px;align-items:center;font-size:12px;color:#4f675f;border:1px dashed #d7e4de;border-radius:9px;padding:6px 8px}
.badge-item i{font-style:normal;width:19px;height:19px;border-radius:50%;background:#eef4f1;display:grid;place-items:center;font-size:11px;color:#8fa8a1}
.badge-item.done{border-color:#9dd4c6;background:#eefaf5;color:var(--teal)}
.badge-item.done i{background:#14b8a6;color:#fff}
.mini-timeline{font-size:11.5px}
.mini-timeline div{display:flex;gap:8px;padding:5px 0;border-bottom:1px dashed #e7efeb}
.mini-timeline b{color:var(--teal);flex:0 0 47px;font:700 10.5px ui-monospace,monospace}
.mini-timeline span{color:#4f675f}
.badge-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,18px);background:#0b2b3a;color:#eafff9;padding:10px 18px;border-radius:99px;font-size:13px;box-shadow:0 12px 30px rgba(5,30,35,.3);opacity:0;pointer-events:none;transition:.25s;z-index:90}
.badge-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1180px){.demo-shell{grid-template-columns:190px minmax(0,1fr)}.demo-side{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.demo-side .card{margin:0}}
@media(max-width:900px){.demo-shell{grid-template-columns:1fr}.demo-rail{position:static;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.rail-title,.rail-note,.rail-progress{display:none}.rail-step{margin:0;padding:8px}.rail-step small{display:none}.hs-grid,.chat-layout,.nav-layout{grid-template-columns:1fr}.demo-side{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.demo-side{grid-template-columns:1fr}.chat-main{min-height:440px}.stage-head{flex-direction:column}.badge-toast{width:86%;text-align:center;border-radius:14px}}

/* 学案/文档补充 */
.grid-paper{margin:10px 0 14px;border:1px solid #d7e4de;border-radius:12px;background:
  linear-gradient(90deg,transparent 24px,#e8f0ec 25px,transparent 26px),
  linear-gradient(0deg,transparent 24px,#e8f0ec 25px,transparent 26px);
  background-size:25px 25px;height:190px;position:relative}
.grid-paper .grid-note{position:absolute;left:10px;bottom:8px;right:10px;font-size:10.5px;color:#6b827a;background:rgba(255,255,255,.86);padding:4px 7px;border-radius:6px}
.small{font-size:11.5px;color:var(--muted)}
.doc code{font:11.5px ui-monospace,monospace;background:#eef4f1;border:1px solid #d7e4de;border-radius:4px;padding:1px 4px}

/* ================= D02 高中机器人训练演示课 ================= */
.slam-sim{padding:10px;background:linear-gradient(180deg,#06131c,#030a10);border-color:#163845}
.slam-sim canvas{background:#071822;border-radius:12px}
.slam-toolbar .btn{background:rgba(255,255,255,.06);border-color:rgba(103,232,249,.25);color:#c9fbf5}
.slam-toolbar .btn:hover{background:rgba(34,211,238,.16)}
.slam-readout{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;padding:0 3px 3px;font:11px/1.4 ui-monospace,Menlo,monospace;color:#9fd8d0}
.slam-readout b{display:block;color:#e8fffa;font-size:15px;font-weight:700}
.slam-readout span{color:#6f9a95}
.slam-progress{height:5px;background:#0c2b35;border-radius:99px;margin:8px 4px 4px;overflow:hidden}
.slam-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#0f766e,#2dd4bf);border-radius:99px;transition:width .25s}
.slam-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:#5c6f69;margin-top:10px;padding:0 4px}
.slam-legend span{display:inline-flex;align-items:center;gap:5px}
.slam-legend .sw{width:11px;height:11px;border-radius:3px;display:inline-block;border:1px solid rgba(15,118,110,.25)}
.slam-legend .unknown{background:#0e2a36}
.slam-legend .free{background:#104a56}
.slam-legend .occ{background:#f59e0b}
.slam-legend .path{background:#22c55e}
.slam-legend .robot{background:#0f766e}
.slam-legend .person{background:#f97316}
@media(max-width:1180px){.slam-readout{grid-template-columns:repeat(2,1fr)}}

/* ================= D02 高中机器人训练演示课 ================= */
.train-sim{padding:10px;background:linear-gradient(180deg,#06131c,#030a10);border-color:#163845}
.train-sim canvas{background:#06151f;border-radius:12px}
.train-toolbar{display:flex;gap:7px;flex-wrap:wrap;padding:10px 3px 2px;align-items:center}
.train-toolbar .btn{background:rgba(255,255,255,.07);border-color:rgba(103,232,249,.25);color:#d8fbf4;font-size:12px;padding:7px 10px}
.train-toolbar .btn:hover{background:rgba(34,211,238,.16)}
.train-toolbar .btn.primary{background:#0f766e;border-color:#2dd4bf;color:#fff;font-weight:700}
.seat-row{display:flex;align-items:center;gap:4px;margin-right:4px;font-size:11px;color:#8fc9c1}
.seat{width:26px;height:26px;border-radius:8px;border:1px solid rgba(103,232,249,.25);background:rgba(255,255,255,.05);color:#c9fbf5;font:700 11px ui-monospace,monospace;cursor:pointer}
.seat:hover{background:rgba(34,211,238,.16)}
.seat.on{background:#14b8a6;border-color:#5eead4;color:#04211d}
.train-readout{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;padding:0 3px 3px;font:11px/1.4 ui-monospace,Menlo,monospace;color:#9fd8d0}
.train-readout b{display:block;color:#e8fffa;font-size:16px;font-weight:700}
.train-readout span{color:#6f9a95}
.train-note{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:10.5px;color:#7ea9a2;padding:4px 5px 6px}
.train-note b{color:#d8fbf4}
.rec{font:700 10px ui-monospace,monospace;letter-spacing:1px;color:#7ea9a2;border:1px solid rgba(126,169,162,.3);border-radius:99px;padding:3px 8px}
.rec.on{color:#fecaca;border-color:#ef4444;background:rgba(239,68,68,.14)}
.rec.policy{color:#fed7aa;border-color:#f97316;background:rgba(249,115,22,.13)}
.train-bottom{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.train-bottom .card{margin:0}
.train-bottom canvas{display:block;width:100%;height:auto;border:1px solid #dce8e2;border-radius:10px;background:#f6faf8}
.mini-table{font-size:11.5px}
.mini-table th,.mini-table td{padding:5px 7px}
.mini-table.leader td:first-child{font-weight:700;color:var(--teal)}
.mini-table.leader tr.cur{background:#e9f7f1}
.mini-table.leader tr.cur td{color:#0f5f56}
@media(max-width:1180px){.train-readout{grid-template-columns:repeat(2,1fr)}.train-bottom{grid-template-columns:1fr}}
@media(max-width:620px){.train-toolbar{gap:5px}.train-toolbar .btn{font-size:11px;padding:6px 8px}.seat{width:24px;height:24px}}
.train-toolbar .guard{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#9fd8d0;border:1px solid rgba(103,232,249,.2);border-radius:8px;padding:6px 8px;background:rgba(255,255,255,.04)}
.train-toolbar .guard input{accent-color:#2dd4bf}

/* ================= D02 高中定点头限位演示课 ================= */
.headfix-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 11px;margin-bottom:10px}
.headfix-toolbar label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);flex:1;min-width:260px}
.headfix-toolbar input{flex:1;min-width:200px;border:1px solid #d5e4de;border-radius:7px;padding:6px 8px;font:11px ui-monospace,monospace;color:#243f38;background:#f7fcf9}
.headfix-frame{position:relative;border:1px solid #163845;border-radius:16px;overflow:hidden;background:#071822;min-height:620px;box-shadow:0 18px 40px rgba(5,26,32,.18)}
.headfix-frame iframe{display:block;width:100%;height:680px;border:0;background:#071822}
.headfix-note{font-size:11px;color:var(--muted);line-height:1.6;padding:8px 4px 0}
.headfix-note b{color:#2f564c}
.storyboard{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.kf-card{border:1px solid var(--line);border-radius:13px;background:#fff;padding:11px;font-size:10.5px;color:#4f675f;display:flex;flex-direction:column;gap:4px;min-height:130px}
.kf-card b{font-size:12px;color:var(--teal);margin-bottom:3px}
@media(max-width:1180px){.headfix-frame iframe{height:600px}}
@media(max-width:900px){.storyboard{grid-template-columns:1fr 1fr}.headfix-frame{min-height:520px}.headfix-frame iframe{height:560px}}
@media(max-width:620px){.storyboard{grid-template-columns:1fr}.headfix-toolbar label{min-width:100%}}

/* ================= 学习中心 / 账号积分 ================= */
.acct-chip{display:inline-flex;align-items:center;gap:6px;margin-left:8px;padding:6px 10px;border:1px solid #d7e4de;border-radius:999px;background:#fff;color:#2f564c;font-size:11px;white-space:nowrap}
.acct-chip:hover{text-decoration:none;border-color:#9dd4c6;background:#f4fbf8}
.acct-chip b{font-size:11.5px;color:#0f5f56}
.acct-chip .dot{width:7px;height:7px;border-radius:50%;background:#14b8a6;display:inline-block}
.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}
.auth-card h2{font-size:18px;margin:0 0 4px}
.acct-label{display:block;font-size:12px;color:#405a52;margin:10px 0 4px}
.acct-label input,.acct-label select{display:block;width:100%;margin-top:4px;border:1px solid #d5e4de;border-radius:8px;padding:8px 9px;font:inherit;font-size:12.5px;background:#fbfdfc;color:#243f38;outline:none}
.acct-label input:focus,.acct-label select:focus{border-color:#14b8a6;box-shadow:0 0 0 3px rgba(20,184,166,.1)}
.auth-card .btn{margin-top:12px}
.acct-msg{border-radius:9px;padding:8px 12px;font-size:12px;margin:10px 0}
.acct-msg.ok{background:#eefaf5;border:1px solid #cfe9df;color:#0f5f56}
.acct-msg.bad{background:#fff1f2;border:1px solid #fecdd3;color:#9f1239}
.acct-profile{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:var(--shadow)}
.acct-avatar{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#0f766e,#14b8a6);display:grid;place-items:center;font-size:26px;flex:0 0 auto}
.acct-profile h2{margin:0;font-size:22px}
.acct-profile h2 .tag{margin-left:6px;vertical-align:3px}
.acct-points{margin-left:auto;font-size:38px;font-weight:800;color:#0f766e;line-height:1}
.acct-points small{display:block;font-size:10px;color:#6b827a;font-weight:500;text-align:center;margin-top:4px}
.acct-actions{margin-left:8px}
.acct-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.acct-stats .card{padding:12px 14px}
.acct-stats span{display:block;font-size:10.5px;color:#6b827a}
.acct-stats b{font-size:22px;color:#0f5f56}
.acct-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;align-items:start}
.reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.reward-card{border:1px solid #e1ece6;border-radius:11px;background:#fbfdfc;padding:10px;font-size:11px;color:#4f675f}
.reward-card b{font-size:12.5px;color:#20463d;display:block}
.reward-cost{font:700 15px ui-monospace,monospace;color:#0f766e;margin:3px 0}
.reward-card p{margin:0 0 4px;min-height:24px}
.reward-card .btn{margin-top:6px}
.mini-table .plus{color:#0f766e;font-weight:700}
.mini-table .minus{color:#b45309;font-weight:700}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.acct-grid .card h3{margin-top:0}
@media(max-width:1000px){.auth-grid,.acct-grid{grid-template-columns:1fr}.acct-stats{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.acct-profile{flex-wrap:wrap}.acct-points{margin-left:0}.acct-avatar{width:46px;height:46px}.reward-grid{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}}

/* D02 手动掰臂实验室 */
.manual-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:12px;align-items:start}
.manual-grid .arm-sim canvas{width:100%;height:auto}
.manual-grid .card{padding:14px}
.manual-grid #arm6Sliders{max-height:260px;overflow:auto;padding-bottom:2px}
@media(max-width:1000px){.manual-grid{grid-template-columns:1fr}}

/* 首页机械臂动态视觉 */
.hero-with-arm{padding-right:400px;min-height:430px}
.hero-with-arm > :not(.hero-arm){position:relative;z-index:2}
.hero-arm{position:absolute;right:8px;bottom:-10px;width:370px;height:430px;z-index:1;pointer-events:none}
.hero-arm svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 18px 30px rgba(0,20,24,.25))}
.hero-arm-glow{position:absolute;left:50%;top:50%;width:330px;height:330px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(45,212,191,.22),transparent 65%);filter:blur(6px);animation:heroPulse 4s ease-in-out infinite}
.hero-arm-tag{position:absolute;right:18px;bottom:8px;display:inline-flex;align-items:center;gap:6px;font:10px ui-monospace,monospace;letter-spacing:.8px;color:#bff8ef;background:rgba(4,35,40,.5);border:1px solid rgba(94,234,212,.32);border-radius:999px;padding:4px 9px;white-space:nowrap}
.hero-arm-tag span{width:6px;height:6px;border-radius:50%;background:#2dd4bf;box-shadow:0 0 0 0 rgba(45,212,191,.7);animation:heroDot 1.8s infinite}
@keyframes heroPulse{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.92)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}
@keyframes heroDot{0%{box-shadow:0 0 0 0 rgba(45,212,191,.7)}70%{box-shadow:0 0 0 7px rgba(45,212,191,0)}100%{box-shadow:0 0 0 0 rgba(45,212,191,0)}}
@media(max-width:1100px){.hero-with-arm{padding-right:300px}.hero-arm{width:300px;height:360px;right:-18px;opacity:.85}}
@media(max-width:900px){.hero-with-arm{padding-right:42px;min-height:0}.hero-arm{width:250px;height:300px;right:-55px;bottom:-30px;opacity:.22}.hero-arm-tag{display:none}}
@media(max-width:620px){.hero-arm{opacity:.12;right:-80px}}
.arm3d-frame{min-height:760px}
.arm3d-frame iframe{height:760px}
@media(max-width:900px){.arm3d-frame{min-height:620px}.arm3d-frame iframe{height:620px}}
.junior-arm3d{min-height:640px}
.junior-arm3d iframe{height:640px}
@media(max-width:900px){.junior-arm3d{min-height:560px}.junior-arm3d iframe{height:560px}}

/* 教案视觉素材 */
.shot-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0 6px}
.shot{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 8px 20px rgba(16,45,38,.06)}
.shot img{display:block;width:100%;height:auto}
.shot figcaption{padding:9px 11px;font-size:11.5px;line-height:1.55;color:#4f675f}
.shot figcaption b{color:#0f5f56}
@media(max-width:700px){.shot-grid{grid-template-columns:1fr}}
.nav a.dl{border:1px solid #cfe9df;background:#eefaf5;color:#0f5f56;font-weight:700}
.nav a.dl:hover{background:#dff5ec}
