/* ============================================================
   EMBODIED AI TRAINING GROUND · control-room theme
   ============================================================ */
body.emb{background:#070B10;color:#E6EEF7}
body.emb .main{background:
  radial-gradient(1000px 500px at 20% -10%,rgba(43,92,255,.10),transparent 60%),
  radial-gradient(800px 400px at 95% 10%,rgba(199,244,100,.06),transparent 60%),
  #070B10;}
body.emb .topbar{background:rgba(8,12,17,.88);border-bottom-color:#1A242F;color:#C9D6E5}
body.emb .crumb{color:#73859A}
body.emb .crumb b{color:#EAF2FB}
body.emb .top-search{background:#0E151D;border-color:#22303D;color:#7E93A9;box-shadow:none}
body.emb .top-search b{color:#DCE7F3!important}
body.emb .top-ic{color:#7E93A9}
body.emb .top-ic:hover{background:#111A23;border-color:#26313E;color:#EAF2FB}
body.emb .vdiv{background:#22303D}
body.emb .tu-txt b{color:#EAF2FB}
body.emb .tu-txt span{color:#6E8094}

.emb-page{max-width:1560px;margin:0 auto;padding:24px 30px 60px;position:relative}
.emb-page:before{content:"";position:fixed;inset:62px 0 0 254px;pointer-events:none;background-image:linear-gradient(rgba(120,160,190,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,190,.035) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(900px 600px at 50% 10%,#000,transparent 80%);z-index:0}
.emb-page>*{position:relative;z-index:1}
.emb-hero{border:1px solid #1B2836;border-radius:14px;padding:30px 32px;margin-bottom:16px;background:
  radial-gradient(800px 300px at 12% -20%,rgba(43,92,255,.25),transparent 60%),
  radial-gradient(500px 260px at 90% 0,rgba(199,244,100,.10),transparent 60%),
  linear-gradient(135deg,#0B1118,#101A24);overflow:hidden;position:relative}
.emb-hero:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:34px 34px;mask-image:radial-gradient(700px 400px at 80% 20%,#000,transparent 80%)}
.emb-eyebrow{font-family:var(--sans);font-size:11.5px;letter-spacing:.01em;text-transform:none;color:#7E93A9;display:block}
.emb-hero h1{font-size:30px;line-height:1.22;letter-spacing:-.03em;margin:10px 0 8px;font-weight:680;color:#F2F7FC;max-width:900px}
.emb-hero p{color:#9BAEC2;font-size:13px;line-height:1.8;max-width:800px;margin:0}
.emb-hero .chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.emb-hero .chips span{border:1px solid #26313E;background:rgba(255,255,255,.03);color:#AFC1D3;font-size:10.5px;padding:4px 9px;border-radius:999px}
.emb-hero .hero-meta{display:flex;gap:24px;margin-top:20px;flex-wrap:wrap}
.emb-hero .hero-meta div{font-family:var(--mono);font-size:9px;color:#6E8094;letter-spacing:.06em}
.emb-hero .hero-meta b{display:block;font-family:var(--sans);font-size:12px;color:#DCE7F3;letter-spacing:0;margin-top:3px;font-weight:550}

.emb-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
@media(max-width:1200px){.emb-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.emb-kpis{grid-template-columns:repeat(2,1fr)}}
.emb-kpi{background:linear-gradient(180deg,#0E161F,#0B1219);border:1px solid #1D2A37;border-radius:10px;padding:13px 15px;position:relative;overflow:hidden}
.emb-kpi:before{content:"";position:absolute;left:0;top:0;width:2px;height:100%;background:#C7F464;opacity:.7}
.emb-kpi .lab{font-size:10px;color:#73859A;display:flex;align-items:center;gap:6px}
.emb-kpi .val{font-family:var(--mono);font-size:25px;font-weight:600;letter-spacing:-.045em;margin-top:6px;color:#F0F6FC}
.emb-kpi .val small{font-size:10px;color:#6E8094;font-weight:400;letter-spacing:0}
.emb-kpi .foot{font-size:9.5px;color:#5E7187;margin-top:3px;font-family:var(--mono)}
.emb-kpi.green:before{background:#12A150}.emb-kpi.blue:before{background:#6FA0FF}.emb-kpi.amber:before{background:#E8890C}.emb-kpi.violet:before{background:#9C8CFF}

.emb-grid{display:grid;gap:12px}
.emb-2{grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr)}
.emb-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:1200px){.emb-2{grid-template-columns:1fr}.emb-3{grid-template-columns:1fr}}
.emb-card{background:#0C131A;border:1px solid #1C2936;border-radius:11px;overflow:hidden;position:relative}
.emb-card-hd{display:flex;align-items:center;gap:9px;padding:12px 14px;border-bottom:1px solid #17222D;min-height:46px}
.emb-card-hd h3{margin:0;font-size:12px;font-weight:600;letter-spacing:.01em;color:#DCE7F3;display:flex;align-items:center;gap:7px}
.emb-card-hd .sub{font-family:var(--mono);font-size:8.5px;color:#5E7187}
.emb-card-hd .spacer{flex:1}
.emb-card-bd{padding:14px}
.emb-card-bd.flush{padding:0}
.emb-card-ft{padding:9px 14px;border-top:1px solid #17222D;background:#0A1016;font-size:9.5px;color:#5E7187;font-family:var(--mono)}

.emb-tag{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 6px;border-radius:4px;font-size:9.5px;font-weight:550;background:#15202B;color:#9EB2C6;border:1px solid #22303D;white-space:nowrap}
.emb-tag.ok{background:rgba(18,161,80,.12);color:#5BD68F;border-color:rgba(18,161,80,.28)}
.emb-tag.warn{background:rgba(232,137,12,.12);color:#F2B45E;border-color:rgba(232,137,12,.28)}
.emb-tag.bad{background:rgba(229,72,77,.12);color:#FF8D90;border-color:rgba(229,72,77,.28)}
.emb-tag.blue{background:rgba(43,92,255,.14);color:#9BB4FF;border-color:rgba(43,92,255,.3)}
.emb-tag.lime{background:rgba(199,244,100,.12);color:#C7F464;border-color:rgba(199,244,100,.3)}

.emb-btn{height:30px;padding:0 10px;border-radius:6px;border:1px solid #263440;background:#111A23;color:#C9D6E5;font-size:10.5px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:inherit;transition:.15s}
.emb-btn:hover{background:#16222D;border-color:#334554;color:#fff}
.emb-btn.primary{background:#C7F464;border-color:#C7F464;color:#243312;font-weight:600}
.emb-btn.primary:hover{background:#D5FA80}
.emb-btn.blue{background:#2B5CFF;border-color:#2B5CFF;color:#fff}
.emb-btn.blue:hover{background:#3D6BFF}
.emb-btn.ghost{background:transparent}
.emb-btn.sm{height:26px;font-size:9.5px;padding:0 8px}
.emb-btn[disabled]{opacity:.45;pointer-events:none}

.emb-pipe{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border:1px solid #1C2936;border-radius:10px;overflow:hidden;background:#0A1016}
.emb-pipe .step{padding:12px 10px;position:relative;border-right:1px solid #17222D;min-height:86px}
.emb-pipe .step:last-child{border-right:0}
.emb-pipe .step:after{content:"";position:absolute;right:-5px;top:50%;width:9px;height:9px;border-top:1px solid #3A4C5D;border-right:1px solid #3A4C5D;transform:translateY(-50%) rotate(45deg);background:#0A1016;z-index:2}
.emb-pipe .step:last-child:after{display:none}
.emb-pipe .n{font-family:var(--mono);font-size:8.5px;color:#5E7187;letter-spacing:.12em}
.emb-pipe b{display:block;font-size:10.5px;color:#DCE7F3;margin-top:4px;line-height:1.35}
.emb-pipe span{display:block;font-size:9px;color:#6E8094;margin-top:3px;line-height:1.5}
.emb-pipe .step.done:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#12A150}
.emb-pipe .step.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#C7F464;box-shadow:0 0 12px rgba(199,244,100,.5)}

.emb-robot{display:grid;grid-template-columns:44px minmax(0,1fr) 300px;grid-template-rows:auto 1fr 30px;height:calc(100vh - 122px);min-height:560px;border:1px solid #1D2A37;border-radius:12px;overflow:hidden;background:#070B10}
.emb-robot-tools{grid-row:1/-1;grid-column:1;background:#0A1016;border-right:1px solid #17222D;display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:4px}
.emb-tool{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;color:#6E8094;border:1px solid transparent;cursor:pointer}
.emb-tool:hover{background:#111A23;color:#DCE7F3}
.emb-tool.on{background:rgba(199,244,100,.1);border-color:rgba(199,244,100,.35);color:#C7F464}
.emb-robot-bar{grid-column:2/-1;grid-row:1;display:flex;align-items:center;gap:7px;padding:6px 10px;background:#0B1118;border-bottom:1px solid #17222D;flex-wrap:wrap}
.emb-stage{grid-column:2;grid-row:2;position:relative;overflow:hidden;background:#05080B}
.emb-stage canvas{width:100%;height:100%;display:block}
.emb-side{grid-column:3;grid-row:2;background:#0B1118;border-left:1px solid #17222D;overflow-y:auto}
.emb-side::-webkit-scrollbar-thumb{background:#263440;background-clip:content-box}
.emb-sec{padding:11px 13px;border-bottom:1px solid #15202A}
.emb-sec-t{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#5E7187;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.emb-status{grid-column:1/-1;grid-row:3;display:flex;align-items:center;gap:14px;padding:0 12px;background:#080D12;border-top:1px solid #17222D;font-family:var(--mono);font-size:8.5px;color:#5E7187}
.emb-status .sp{flex:1}

.emb-hud{position:absolute;font-family:var(--mono);font-size:9px;color:#6E8094;pointer-events:none}
.emb-hud.tl{left:12px;top:12px}
.emb-hud.tr{right:12px;top:12px;text-align:right}
.emb-hud.bl{left:12px;bottom:12px}
.emb-badge{display:inline-flex;align-items:center;gap:5px;background:rgba(8,12,17,.7);border:1px solid #22303D;border-radius:4px;padding:3px 7px;color:#AFC1D3;backdrop-filter:blur(6px)}
.emb-badge i{width:5px;height:5px;border-radius:50%;background:#C7F464;box-shadow:0 0 6px #C7F464}

.emb-tele{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.emb-tele div{background:#0E161F;border:1px solid #1B2836;border-radius:6px;padding:6px 8px}
.emb-tele span{display:block;font-size:8px;color:#5E7187}
.emb-tele b{display:block;font-family:var(--mono);font-size:12px;color:#DCE7F3;margin-top:2px}
.emb-tele b em{font-style:normal;font-size:8px;color:#6E8094}

.emb-chart{height:120px}
.emb-log{background:#070C11;border:1px solid #17222D;border-radius:6px;padding:8px;font-family:var(--mono);font-size:8.5px;line-height:1.7;color:#7E93A9;max-height:130px;overflow:auto;white-space:pre-wrap}

.emb-table{width:100%;border-collapse:collapse;font-size:11px}
.emb-table th{text-align:left;font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:#5E7187;padding:7px 10px;border-bottom:1px solid #1C2936;font-weight:500}
.emb-table td{padding:8px 10px;border-bottom:1px solid #141E28;color:#AFC1D3;vertical-align:middle}
.emb-table tr:hover td{background:#0E161F}
.emb-table .mono{font-family:var(--mono);font-size:9.5px}
.emb-table .strong{color:#EAF2FB;font-weight:550}

.emb-task{cursor:pointer;transition:.15s}
.emb-task:hover{border-color:#334554;background:#101A24}
.emb-task.on{border-color:rgba(199,244,100,.45);background:rgba(199,244,100,.04)}
.emb-task .ic{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;background:rgba(43,92,255,.12);color:#9BB4FF;flex:none}
.emb-task.on .ic{background:rgba(199,244,100,.12);color:#C7F464}

.emb-robot-card{border:1px solid #1C2936;border-radius:9px;padding:10px;background:#0B1219;cursor:pointer;transition:.18s}
.emb-robot-card:hover{border-color:#334554;transform:translateY(-1px)}
.emb-robot-card.on{border-color:rgba(199,244,100,.5);background:rgba(199,244,100,.04)}
.emb-robot-card b{display:block;font-size:11px;color:#EAF2FB;margin-top:6px}
.emb-robot-card span{display:block;font-size:9px;color:#6E8094;font-family:var(--mono);margin-top:2px}

.emb-switch{width:28px;height:16px;border-radius:9px;background:#263440;position:relative;cursor:pointer;flex:none;transition:.15s}
.emb-switch:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#7E93A9;transition:.15s}
.emb-switch.on{background:rgba(199,244,100,.35)}
.emb-switch.on:after{left:14px;background:#C7F464}

.emb-progress{height:4px;border-radius:9px;background:#1A2733;overflow:hidden}
.emb-progress i{display:block;height:100%;background:#C7F464;border-radius:9px;transition:width .4s ease}
.emb-progress.blue i{background:#6FA0FF}
.emb-progress.amber i{background:#E8890C}

.emb-stepper{display:flex;flex-direction:column;gap:0}
.emb-stepper .s{display:flex;gap:10px;padding-bottom:14px;position:relative}
.emb-stepper .s:before{content:"";position:absolute;left:8px;top:18px;bottom:0;width:1px;background:#1F2C39}
.emb-stepper .s:last-child:before{display:none}
.emb-stepper .dot{width:17px;height:17px;border-radius:50%;border:1px solid #334554;background:#0B1118;flex:none;display:grid;place-items:center;font-family:var(--mono);font-size:8px;color:#5E7187}
.emb-stepper .s.done .dot{background:#12A150;border-color:#12A150;color:#fff}
.emb-stepper .s.active .dot{background:#C7F464;border-color:#C7F464;color:#243312}
.emb-stepper .s b{display:block;font-size:10.5px;color:#DCE7F3;font-weight:550}
.emb-stepper .s span{display:block;font-size:9px;color:#6E8094;margin-top:2px;line-height:1.5}

.emb-empty{border:1px dashed #22303D;border-radius:8px;padding:24px;text-align:center;color:#5E7187;font-size:11px}

/* recharts-ish bars */
.emb-bars{display:flex;align-items:flex-end;gap:8px;height:100px}
.emb-bars .b{flex:1;background:linear-gradient(180deg,rgba(199,244,100,.55),rgba(199,244,100,.08));border-radius:2px 2px 0 0;position:relative;min-height:2px}
.emb-bars .b span{position:absolute;left:0;right:0;bottom:-16px;text-align:center;font-family:var(--mono);font-size:8px;color:#5E7187}
.emb-bars .b em{position:absolute;left:0;right:0;top:-14px;text-align:center;font-family:var(--mono);font-size:8px;color:#9EB2C6;font-style:normal}

@media(max-width:1000px){.emb-robot{grid-template-columns:40px 1fr;grid-template-rows:auto 1fr 30px}.emb-side{display:none}.emb-pipe{grid-template-columns:repeat(3,1fr)}}

/* joint config */
.joint-row{padding:3px 0 4px;border-bottom:1px dashed #15202A;cursor:pointer}
.joint-row:last-child{border-bottom:0}
.joint-row .jh{display:flex;justify-content:space-between;font-size:8.5px;color:#7E93A9;line-height:1.4}
.joint-row .jv{font-family:var(--mono);font-size:8px;color:#5E7187}
.joint-row input[type=range]{width:100%;height:12px;margin:1px 0 0;accent-color:#C7F464}
.joint-row.on .jh{color:#C7F464}
.joint-row.on .jv{color:#C7F464}
