@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600;700;800;900&display=swap";:root{--bg:#eef6ff;--panel:#fff;--border:#e2e8f0;--text:#0d1b2e;--muted:#64748b;--primary:#2563eb;--primary-dark:#1d4ed8;--primary-alt:#7c3aed;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--radius:12px;--font-heading:"Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;font-family:var(--font-body)}body,button,input,textarea,select{font-family:var(--font-body)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.3px;color:var(--text);font-weight:800}strong{font-weight:700}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0}button{cursor:pointer;border:none;border-radius:8px;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:500;transition:all .15s}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary,.btn-ghost{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:#f8fafc}input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}input:not([type=radio]):not([type=checkbox]):not([type=file]):focus,select:focus,textarea:focus{border-color:var(--primary);outline:none}input[type=radio],input[type=checkbox]{cursor:pointer;width:auto;margin:0;padding:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.spinner{border:3px solid #e2e8f0;border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;display:flex}@media (width<=768px){.edu-sidebar{transform:translate(-100%)!important}.edu-sidebar.open{transform:translate(0)!important}.edu-main{margin-left:0!important}.edu-mobile-header{display:flex!important}}@media (width>=769px){.edu-sidebar{transform:translate(0)!important}.edu-mobile-header{display:none!important}}.edu-sidebar::-webkit-scrollbar{width:4px}.edu-sidebar::-webkit-scrollbar-track{background:0 0}.edu-sidebar::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.edu-nav-item:hover{color:#e2e8f0!important;background:#ffffff0a!important}@media (width<=600px){.edu-public-header{padding-left:14px!important;padding-right:14px!important}}@media (width<=768px){.edu-help-layout{flex-direction:column!important}.edu-help-aside{width:100%!important;position:static!important}[style*="grid-template-columns: 1fr 1fr"],[style*="grid-template-columns: 1fr 2fr"],[style*="grid-template-columns: 2fr 1fr"],[style*="grid-template-columns: 1.618fr"],[style*="grid-template-columns: 1fr 1.618fr"],[style*="grid-template-columns: repeat(2,"],[style*="grid-template-columns: repeat(3,"],[style*="grid-template-columns: repeat(4,"],[style*="grid-template-columns: repeat(5,"],[style*="grid-template-columns: repeat(6,"]{grid-template-columns:1fr!important}table{max-width:100%;display:block;overflow-x:auto}[style*="grid-template-columns: 280px 1fr"],[style*="grid-template-columns: 320px 1fr"],[style*="grid-template-columns: 1fr 340px"]{grid-template-columns:1fr!important}}.sim3d{--bg:#0b1114;--panel:#121b20;--panel-2:#18242a;--line:#24343c;--ink:#e6eef2;--ink-2:#9fb0ba;--ink-3:#6d818d;--accent:#4fb3d9;--accent-dim:#123543;--safety:#e08a4a;--ok:#5fc08f;--bad:#e0685f;--mono:"SFMono-Regular", ui-monospace, Menlo, Consolas, monospace}.sim3d *{box-sizing:border-box}.sim3d{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.55 Be Vietnam Pro,-apple-system,Segoe UI,Roboto,sans-serif}.sim3d button{font:inherit;color:inherit;cursor:pointer}.sim3d h1,.sim3d h2,.sim3d h3{margin:0;line-height:1.25}.sim3d .app{grid-template-columns:380px minmax(0,1fr);height:100%;display:grid}@media (width<=900px){.sim3d .app{grid-template-rows:46vh minmax(0,1fr);grid-template-columns:1fr}.sim3d .side{border-right:0;border-top:1px solid var(--line);order:2}.sim3d .stage{order:1}}.sim3d .side{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;display:flex;overflow-y:auto}.sim3d .brand{border-bottom:1px solid var(--line);padding:16px 18px 12px}.sim3d .brand h1{letter-spacing:-.01em;font-size:15px}.sim3d .brand p{color:var(--ink-3);margin:4px 0 0;font-size:12px}.sim3d .tabs{background:var(--line);flex-direction:column;gap:1px;display:flex}.sim3d .tab{background:var(--panel);text-align:left;border:0;align-items:baseline;gap:10px;padding:11px 18px;display:flex}.sim3d .tab:hover{background:var(--panel-2)}.sim3d .tab[aria-selected=true]{background:var(--accent-dim);box-shadow:inset 3px 0 0 var(--accent)}.sim3d .tab .k{font-family:var(--mono);color:var(--accent);font-size:11px}.sim3d .tab .t{font-size:13px}.sim3d .tab .s{color:var(--ink-3);font-size:11.5px;display:block}.sim3d .panel{flex-direction:column;gap:14px;padding:16px 18px;display:flex}.sim3d .panel h2{text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);font-size:13px;font-weight:600}.sim3d .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sim3d .btn{background:var(--panel-2);border:1px solid var(--line);border-radius:3px;padding:7px 12px;font-size:13px}.sim3d .btn:hover{border-color:var(--accent)}.sim3d .btn.primary{background:var(--accent);color:#06222d;border-color:var(--accent);font-weight:600}.sim3d .btn.ghost{background:0 0}.sim3d .btn:disabled{opacity:.45;cursor:not-allowed}.sim3d select,.sim3d input[type=range]{width:100%}.sim3d select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:3px;padding:7px 8px}.sim3d label.field{color:var(--ink-2);flex-direction:column;gap:5px;font-size:12.5px;display:flex}.sim3d label.check{color:var(--ink-2);align-items:flex-start;gap:8px;font-size:13px;display:flex}.sim3d .readout{font-family:var(--mono);font-variant-numeric:tabular-nums}.sim3d .cyls{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.sim3d .cyl{background:var(--panel-2);border:1px solid var(--line);text-align:center;border-radius:3px;padding:8px 6px}.sim3d .cyl.firing{border-color:var(--safety);background:#2a1c12}.sim3d .cyl .n{font-family:var(--mono);color:var(--ink-3);font-size:11px}.sim3d .cyl .v{font-size:12.5px;font-weight:600}.sim3d .steps{background:var(--line);border:1px solid var(--line);border-radius:3px;flex-direction:column;gap:1px;display:flex}.sim3d .step{background:var(--panel-2);align-items:baseline;gap:9px;padding:8px 10px;font-size:12.5px;display:flex}.sim3d .step .n{font-family:var(--mono);color:var(--ink-3);min-width:16px;font-size:11px}.sim3d .step.done,.sim3d .step.done .n{color:var(--ok)}.sim3d .step.locked{color:var(--ink-3)}.sim3d .log{flex-direction:column;gap:4px;max-height:180px;font-size:12.5px;display:flex;overflow-y:auto}.sim3d .log .e{border-left:2px solid var(--bad);color:var(--ink-2);padding-left:8px}.sim3d .log .o{border-left:2px solid var(--ok);color:var(--ink-2);padding-left:8px}.sim3d .score{background:var(--panel-2);border:1px solid var(--line);border-radius:3px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.sim3d .score .big{font-family:var(--mono);font-size:28px;font-weight:600}.sim3d .score .big.ok{color:var(--ok)}.sim3d .score .big.bad{color:var(--safety)}.sim3d .score p{color:var(--ink-2);margin:0;font-size:12.5px}.sim3d table.meas{border-collapse:collapse;width:100%;font-size:12.5px}.sim3d table.meas th,.sim3d table.meas td{border-bottom:1px solid var(--line);text-align:left;padding:6px 8px}.sim3d table.meas th{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-size:11px;font-weight:500}.sim3d table.meas td.v{font-family:var(--mono);font-variant-numeric:tabular-nums}.sim3d td.low{color:var(--safety)}.sim3d .note{border-left:3px solid var(--safety);color:var(--ink-2);background:#21160e;padding:9px 12px;font-size:12.5px}.sim3d .hint{color:var(--ink-3);font-size:12px}.sim3d ul.guide{color:var(--ink-2);flex-direction:column;gap:4px;margin:0;padding-left:16px;font-size:12.5px;display:flex}.sim3d .stage{min-width:0;position:relative;overflow:hidden}.sim3d .stage>div{position:absolute;inset:0}.sim3d .stage canvas{width:100%;height:100%;display:block}.sim3d .hud{z-index:2;border:1px solid var(--line);font-family:var(--mono);color:var(--ink-2);pointer-events:none;background:#0b1114d1;border-radius:3px;gap:16px;padding:8px 12px;font-size:12px;display:flex;position:absolute;bottom:14px;left:14px}.sim3d .hud b{color:var(--ink);font-weight:600}.sim3d .numfield{flex-direction:column;gap:6px;display:flex}.sim3d .numfield-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.sim3d .numfield-head label{color:var(--ink-2);font-size:12.5px}.sim3d .numfield-input{align-items:baseline;gap:5px;display:inline-flex}.sim3d .numfield-input input{background:var(--panel-2);width:86px;color:var(--ink);border:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;border-radius:3px;padding:4px 7px;font-size:13px}.sim3d .numfield-input input:focus{outline:2px solid var(--accent);outline-offset:1px}.sim3d .numfield-input .unit{font-family:var(--mono);color:var(--ink-3);font-size:11.5px}.sim3d .numfield-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.sim3d .presets{flex-wrap:wrap;gap:4px;display:flex}.sim3d .chip{border:1px solid var(--line);color:var(--ink-2);background:0 0;border-radius:999px;padding:2px 9px;font-size:11.5px}.sim3d .chip:hover{border-color:var(--accent)}.sim3d .chip.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.sim3d .chart{background:var(--panel-2);border:1px solid var(--line);border-radius:3px;width:100%;height:auto}.sim3d .chart-grid{stroke:var(--line);stroke-width:1px}.sim3d .chart-label{fill:var(--ink-3);font-family:var(--mono);font-size:8px}.sim3d .chart-line{stroke:var(--accent);stroke-width:1.6px}.sim3d .pill{font-family:var(--mono);border-radius:2px;padding:2px 8px;font-size:11px;display:inline-block}.sim3d .p-o{background:var(--ok-soft,#16301f);color:var(--ok)}.sim3d .p-s{color:var(--safety);background:#2a1c12}.sim3d .crumb{text-align:left;background:var(--panel-2);border:0;border-bottom:1px solid var(--line);flex-direction:column;gap:2px;width:100%;padding:11px 18px;display:flex}.sim3d .crumb:hover{background:var(--accent-dim)}.sim3d .crumb-k{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:10.5px}.sim3d .crumb-t{color:var(--ink-2);font-size:12.5px}.sim3d .catalog{flex-direction:column;gap:20px;padding:14px 18px 22px;display:flex}.sim3d .catalog section{flex-direction:column;gap:7px;display:flex}.sim3d .catalog h3{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.sim3d .card{text-align:left;background:var(--panel-2);border:1px solid var(--line);border-radius:3px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.sim3d .card:hover{border-color:var(--accent)}.sim3d .card.on{border-color:var(--accent);background:var(--accent-dim)}.sim3d .card-top{align-items:baseline;gap:8px;display:flex}.sim3d .card .k{font-family:var(--mono);color:var(--accent);font-size:11px}.sim3d .card .t{font-size:13.5px;font-weight:600}.sim3d .card .m{color:var(--ink-2);font-size:12px}.sim3d .card .s{color:var(--ink-3);font-size:11.5px}.sim3d .soon{color:var(--ink-3);border-left:2px solid var(--line);margin:0;padding-left:9px;font-size:11.5px}.sim3d .sysgrid{grid-template-columns:repeat(2,1fr);gap:5px;display:grid}.sim3d .sys{background:var(--panel-2);border:1px solid var(--line);text-align:left;border-radius:3px;padding:7px 9px;font-size:12.5px}.sim3d .sys:hover{border-color:var(--accent)}.sim3d .sys.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.sim3d .stage>.vehicle-overlay{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-start;gap:14px;display:flex;inset:26px 28px 20px}.sim3d .vehicle-heading{flex-direction:column;gap:5px;display:flex}.sim3d .eyebrow{color:#80afbd;font:10px var(--mono);letter-spacing:.14em}.sim3d .vehicle-heading strong{letter-spacing:-.035em;font-size:25px;font-weight:500}.sim3d .vehicle-heading>span:last-child{color:var(--ink-2);font-size:12px}.sim3d .vehicle-toolbar{pointer-events:auto;background:#152128ed;border:1px solid #35434a;border-radius:8px;padding:4px;display:flex}.sim3d .vehicle-toolbar button{color:var(--ink-2);background:0 0;border:0;border-radius:5px;padding:7px 15px;font-size:12px}.sim3d .vehicle-toolbar button.active{color:#182b34;background:#d0e6ea}.sim3d .vehicle-views{pointer-events:auto;flex-wrap:wrap;gap:6px;display:flex}.sim3d .vehicle-views .chip{background:#111d23d9;padding:5px 11px}.sim3d .vehicle-views .chip.on{background:var(--accent-dim)}.sim3d .vehicle-caption{width:100%;color:var(--ink-2);border-top:1px solid #384850;align-items:baseline;gap:24px;margin-top:auto;padding-top:12px;font-size:11px;display:flex}.sim3d .vehicle-caption b{font:22px var(--mono);color:var(--ink);font-weight:400}.sim3d .orbit-help{margin-left:auto}.sim3d .vehicle-model-note{margin:0}.sim3d button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (width<=900px){.sim3d .stage>.vehicle-overlay{gap:7px;inset:12px 14px}.sim3d .vehicle-heading strong{font-size:19px}.sim3d .vehicle-heading>span:last-child,.sim3d .orbit-help{display:none}.sim3d .vehicle-toolbar button{padding:5px 10px}.sim3d .vehicle-views .chip{padding:3px 8px;font-size:10px}.sim3d .vehicle-caption{gap:15px;padding-top:5px}.sim3d .vehicle-caption b{font-size:16px}}.sim3d .model-loading{pointer-events:auto;color:#c0d9e4;background:#162b35ed;border:1px solid #355362;border-radius:6px;padding:10px 14px;font-size:12px}.sim3d .asset-credit{color:var(--ink-3);font-size:11px}.sim3d .asset-credit a{color:var(--accent)}.sim3d input.text{background:var(--panel-2);width:100%;color:var(--ink);border:1px solid var(--line);border-radius:3px;padding:6px 8px;font-size:13px}.sim3d input.text:focus,.sim3d select:focus{outline:2px solid var(--accent);outline-offset:1px}.sim3d select[multiple]{padding:4px;font-size:12.5px}.sim3d .chips{flex-wrap:wrap;gap:5px;display:flex}.sim3d .chips .chip{align-items:center;gap:5px;display:inline-flex}.sim3d .chip .x,.sim3d .ahead .x{color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:14px;line-height:1}.sim3d .chip .x:hover,.sim3d .ahead .x:hover{color:var(--bad)}.sim3d .authoring{background:var(--line);border:1px solid var(--line);border-radius:3px;flex-direction:column;gap:1px;display:flex}.sim3d .astep{background:var(--panel-2)}.sim3d .astep.open{background:var(--accent-dim)}.sim3d .ahead{align-items:center;gap:4px;padding:6px 8px;display:flex}.sim3d .atitle{text-align:left;background:0 0;border:0;flex:1;align-items:baseline;gap:8px;padding:2px 0;font-size:12.5px;display:flex}.sim3d .atitle .n{font-family:var(--mono);color:var(--ink-3);font-size:11px}.sim3d .abody{flex-direction:column;gap:9px;padding:4px 10px 12px;display:flex}.sim3d .ok-text{color:var(--ok)}.sim3d label.btn{align-items:center;display:inline-flex}
