.motor-lab { --ml-accent: #2dd4bf; --ml-muted: #b6c4d1; padding-top: 125px; padding-bottom: 80px; color: #f2f7fa; }
.motor-lab [hidden] { display: none !important; }
.motor-lab h1, .motor-lab h2, .motor-lab h3 { color: #f2f7fa; }
.ml-back { color: var(--ml-muted); font-size: .9rem; text-decoration: none; }
.ml-back:hover { color: var(--ml-accent); }
.ml-intro { margin-bottom: 25px; }
.ml-eyebrow { margin: 22px 0 12px; color: var(--ml-accent); letter-spacing: .14em; font-size: .72rem; font-weight: 700; }
.ml-eyebrow span { color: #9bb0c2; margin-left: 18px; letter-spacing: .08em; }
.ml-intro h1 { font-size: clamp(2rem, 3.8vw, 3.5rem); letter-spacing: -.045em; line-height: 1.12; margin-bottom: 18px; }
.ml-intro h1 span { color: #b9ccd9; }
.ml-lead { max-width: 720px; color: var(--ml-muted); font-size: 1.05rem; }
.ml-toolbar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 24px; }
.ml-toolbar > span { color: var(--ml-muted); font-size: .85rem; margin-right: 6px; }
.ml-preset, .ml-share { border: 1px solid #355064; background: #111e2b; border-radius: 8px; padding: 9px 13px; color: #c6d7e2; font-size: .84rem; }
.ml-preset:hover, .ml-preset.is-active { border-color: var(--ml-accent); background: #153332; color: #85f0de; }
.ml-share { margin-left: auto; background: transparent; }
.ml-share i { margin-left: 8px; }
.ml-share-fallback { width: 100%; background: #0b1520; border: 1px solid #53778e; color: #f2f7fa; padding: 10px; border-radius: 8px; }
.ml-workbench { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 22px; align-items: start; }
.ml-controls, .ml-scene-card, .ml-analysis-card { border: 1px solid #294052; border-radius: 16px; background: #111b25; overflow: hidden; }
.ml-controls { padding: 22px; }
.ml-card-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 18px; }
.ml-card-heading h2 { margin: 0; font-size: 1.12rem; letter-spacing: -.025em; }
.ml-text-button { border: 0; background: transparent; color: #79dacd; padding: 4px; font-size: .85rem; }
.ml-text-button:hover { color: #fff; text-decoration: underline; }
.ml-field { margin: 0 0 16px; min-width: 0; }
.ml-field label { color: #d7e3eb; font-size: .8rem; font-weight: 600; display: flex; align-items: baseline; justify-content: space-between; gap: 6px; margin-bottom: 7px; }
.ml-field label span { color: #a3bac9; font-weight: 400; white-space: nowrap; font-size: .75rem; }
.ml-field input[type=number] { width: 100%; background: #0a131e; border: 1px solid #3b566a; border-radius: 8px; color: #f2f7fa; padding: 10px 12px; font: inherit; font-variant-numeric: tabular-nums; }
.ml-field input[aria-invalid=true] { border-color: #f89886; }
.motor-lab input[type=range] { accent-color: var(--ml-accent); width: 100%; min-width: 0; cursor: pointer; }
.ml-field input[type=range] { display: block; margin: 12px 0 5px; height: 5px; }
.ml-field small, .ml-small { color: var(--ml-muted); font-size: .77rem; line-height: 1.6; }
.ml-field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.ml-controls details { border-top: 1px solid #294052; padding-top: 17px; margin-top: 5px; }
.ml-controls summary { font-size: .9rem; font-weight: 650; margin-bottom: 17px; cursor: pointer; }
.ml-controls summary span { display: block; margin: 5px 0 0 15px; font-weight: 400; font-size: .73rem; color: var(--ml-muted); }
.ml-error { padding: 12px; margin: 12px 0 0; color: #ffb7a9; background: #382021; border-radius: 8px; font-size: .85rem; }
.ml-output { min-width: 0; display: grid; gap: 18px; }
.ml-metrics { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 10px; }
.ml-metric { padding: 20px 15px; background: #142331; border: 1px solid #294052; border-radius: 12px; }
.ml-metric-primary { background: linear-gradient(135deg, #143833, #132934); border-color: #2a6b63; }
.ml-metric > span { font-size: .59rem; letter-spacing: .09em; font-weight: 700; color: #c2d2de; display: block; }
.ml-metric strong { display: block; margin: 9px 0 3px; font-size: clamp(1.15rem, 1.9vw, 1.8rem); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.ml-metric-primary strong { color: #70f1d9; }
.ml-metric small { color: #b6c4d1; font-size: .67rem; line-height: 1.4; display: block; }
.ml-scene-heading { display: flex; justify-content: space-between; align-items: start; padding: 22px 24px 0; gap: 10px; }
.ml-scene-heading .ml-eyebrow { margin: 0 0 8px; font-size: .62rem; }
.ml-scene-heading h2 { font-size: 1.2rem; letter-spacing: -.025em; margin: 0; }
.ml-live-tag { border: 1px solid #355365; color: #b3c7d4; font-size: .68rem; border-radius: 20px; padding: 5px 9px; white-space: nowrap; }
.ml-scene-wrap { margin-top: 13px; background: radial-gradient(ellipse at 50% 80%, #173b40 0%, #0b1622 70%); }
#ml-scene, #ml-chart { display: block; width: 100%; height: auto; }
.ml-telemetry { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 16px 24px; border-top: 1px solid #294052; border-bottom: 1px solid #294052; background: #0d1722; }
.ml-telemetry span { display: block; color: #9fb5c5; letter-spacing: .08em; font-size: .59rem; margin-bottom: 4px; }
.ml-telemetry strong { color: #e7f3f7; font-size: .98rem; font-variant-numeric: tabular-nums; }
.ml-playback { display: flex; align-items: center; gap: 15px; padding: 20px 24px 6px; }
.ml-run { border: 0; border-radius: 8px; background: #2dd4bf; color: #06211e; font-weight: 750; padding: 11px 15px; font-size: .84rem; white-space: nowrap; }
.ml-run:hover { background: #72efdc; }
.ml-run span { margin-left: 6px; font-size: .7rem; }
.ml-sim-status { padding: 4px 24px 18px; margin: 0; }
.ml-verdict { padding: 16px 20px; border: 1px solid #795c30; border-radius: 12px; background: #2b251b; }
.ml-verdict strong { color: #f7c879; font-size: .95rem; }
.ml-verdict p { color: #e2d5be; font-size: .83rem; margin: 5px 0 0; line-height: 1.6; }
.ml-verdict.is-pass { border-color: #2b6b60; background: #132e2a; }
.ml-verdict.is-pass strong { color: #79e7cd; }
.ml-verdict.is-pass p { color: #c4ded6; }
.ml-analysis-card { padding: 22px 24px; }
.ml-analysis-card .ml-card-heading { flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.ml-chart-legend { display: flex; gap: 20px; font-size: .72rem; color: var(--ml-muted); }
.ml-chart-legend i { display: inline-block; width: 14px; height: 3px; background: var(--ml-accent); margin-right: 6px; vertical-align: middle; }
.ml-chart-legend span + span i { background: #f3b454; }
.ml-analysis-card h3 { margin: 14px 0; font-size: .9rem; }
.ml-force-row { display: grid; grid-template-columns: 150px minmax(0, 1fr) 70px; gap: 14px; align-items: center; font-size: .77rem; margin: 12px 0; color: #c8d8e2; }
.ml-force-row > div { background: #233748; height: 7px; border-radius: 8px; overflow: hidden; }
.ml-force-row i { display: block; height: 100%; background: #4ec8ba; }
.ml-force-row:nth-of-type(3) i { background: #76a9e0; }
.ml-force-row strong { text-align: right; font-size: .76rem; font-variant-numeric: tabular-nums; }
.ml-detail-values { border-top: 1px solid #294052; margin: 20px 0 0; padding-top: 8px; }
.ml-detail-values > div { display: flex; align-items: baseline; gap: 12px; justify-content: space-between; margin: 12px 0; font-size: .76rem; }
.ml-detail-values dt { color: #b6c4d1; font-weight: 400; }
.ml-detail-values dd { color: #e4f0f6; margin: 0; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ml-ratio-help { border-top: 1px solid #294052; padding-top: 12px; }
.ml-ratio-help p { margin: 0 0 4px; }
.motor-lab button:disabled { opacity: .5; cursor: not-allowed; }
.ml-explainer { display: grid; grid-template-columns: 1fr 1fr; gap: 35px 50px; border-top: 1px solid #294052; padding-top: 40px; margin-top: 48px; }
.ml-explainer .ml-eyebrow { margin-top: 0; }
.ml-explainer h2 { font-size: 1.9rem; letter-spacing: -.04em; }
.ml-explainer h3 { font-size: 1.13rem; margin-bottom: 12px; }
.ml-explainer p { color: #b6c4d1; font-size: .91rem; line-height: 1.85; }
.ml-explainer strong { color: #e1ecf1; }
.ml-equations { padding: 24px; border: 1px solid #294052; border-radius: 12px; background: #111e2b; }
.ml-equations p { font-family: ui-monospace, monospace; color: #81e4d1; margin: 0 0 13px; font-size: .9rem; }
.ml-equations small { color: var(--ml-muted); font-size: .75rem; line-height: 1.7; }
.motor-lab :is(button, a, input, summary):focus-visible { outline: 3px solid #8dfff0; outline-offset: 4px; }
@media (max-width: 1199px) { .ml-workbench { grid-template-columns: 285px minmax(0, 1fr); gap: 16px; } .ml-controls { padding: 18px; } .ml-metrics { gap: 7px; } .ml-metric { padding: 16px 10px; } .ml-metric > span { font-size: .54rem; } }
@media (max-width: 991px) { .ml-workbench { grid-template-columns: 1fr; } .ml-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; } .ml-card-heading, .ml-controls details, .ml-error { grid-column: 1 / -1; } .ml-controls > .ml-field-pair { grid-row: span 2; align-content: start; } .ml-controls details > .ml-field-pair { grid-template-columns: repeat(4, 1fr); } .ml-controls details > .ml-field { max-width: 50%; } .ml-metric strong { font-size: 1.6rem; } .ml-metric > span { font-size: .65rem; } .ml-explainer { gap: 25px; } }
@media (max-width: 575px) { .motor-lab { padding-top: 100px; } .ml-eyebrow span { display: block; margin: 8px 0 0; } .ml-toolbar { gap: 7px; } .ml-toolbar > span { flex-basis: 100%; } .ml-preset { padding: 8px 10px; font-size: .75rem; } .ml-share { margin-left: 0; margin-top: 4px; } .ml-controls { display: block; } .ml-controls details > .ml-field-pair { grid-template-columns: 1fr 1fr; } .ml-controls details > .ml-field { max-width: none; } .ml-metrics { grid-template-columns: 1fr 1fr; } .ml-metric-primary { grid-column: 1 / -1; } .ml-metric-primary strong { font-size: 2rem; } .ml-metric-primary small { font-size: .75rem; } .ml-metric { padding: 14px; } .ml-metric > span { font-size: .57rem; } .ml-scene-heading { padding: 18px 16px 0; } .ml-scene-heading h2 { font-size: 1rem; } .ml-telemetry { grid-template-columns: 1fr 1fr; padding: 14px 16px; gap: 15px; } .ml-playback { padding: 16px 16px 6px; flex-wrap: wrap; gap: 15px; } #ml-scrub { flex-basis: 100%; } .ml-sim-status { padding: 5px 16px 16px; } .ml-analysis-card { padding: 18px 16px; } .ml-force-row { grid-template-columns: 120px minmax(0, 1fr) 60px; gap: 8px; font-size: .7rem; } .ml-detail-values > div { flex-wrap: wrap; gap: 2px; } .ml-detail-values dd { margin-left: auto; } .ml-explainer { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .motor-lab *, .motor-lab *::before, .motor-lab *::after { scroll-behavior: auto !important; transition: none !important; } }
