:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#232525;background:#f4f1e8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea{font:inherit}button{min-height:40px;border:1px solid #c8c1b2;border-radius:8px;background:#fffdf8;color:#232525;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 13px;cursor:pointer}button:hover{border-color:#61734c}h1,h2,p{margin-top:0}h1{font-size:clamp(2.25rem,5vw,5rem);line-height:.98;letter-spacing:0;margin-bottom:18px}h2{font-size:1rem}.app{min-height:100vh;background:linear-gradient(90deg,rgba(84,69,42,.045) 1px,transparent 1px) 0 0 / 28px 28px,linear-gradient(180deg,#fbf8ef,#eee7db);color:#232525}.app.dark{background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0 / 28px 28px,linear-gradient(180deg,#171917,#24251f);color:#f4f0e8}.topBar{height:72px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:0 clamp(18px,4vw,56px);border-bottom:1px solid rgba(92,82,63,.2);background:#fffdf7d1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.dark .topBar{background:#1e1f1ce0;border-color:#ffffff1f}.brandButton{border:0;background:transparent;font-weight:900;padding-left:0}.topBar nav,.topActions,.heroActions,.authActions{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.topBar nav{justify-content:center}.topBar nav button,.topActions button{background:transparent}.topStatus{max-width:260px;color:#686357;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dark .topStatus{color:#c9c0b1}.iconButton{width:42px;padding:0}.primary{background:#253a2b;color:#fffdf6;border-color:#253a2b;font-weight:800}.dark .primary{background:#e1c355;border-color:#e1c355;color:#1f211d}.eyebrow{text-transform:uppercase;letter-spacing:0;font-size:.78rem;font-weight:900;color:#60733d;margin-bottom:12px}.dark .eyebrow{color:#cde48e}.landing,.authScreen,.dashboard,.labShell{padding:clamp(22px,4vw,56px)}.landing{min-height:calc(100vh - 180px);display:grid;grid-template-columns:minmax(320px,.78fr) minmax(420px,1.22fr);gap:clamp(24px,4vw,64px);align-items:center}.landingCopy p:not(.eyebrow),.authScreen p{color:#5b574e;font-size:1.08rem;line-height:1.58;max-width:670px}.dark .landingCopy p:not(.eyebrow),.dark .authScreen p{color:#d6cec0}.benchHero{min-height:470px;position:relative;overflow:hidden;border-radius:8px;border:1px solid #d0c4af;background:linear-gradient(90deg,rgba(117,83,39,.08) 1px,transparent 1px) 0 0 / 56px 100%,linear-gradient(130deg,#e4c88f,#f5dfac 44%,#c69458);box-shadow:0 30px 80px #48341430}.dark .benchHero{border-color:#575143}.benchHero svg,.wiringHarness{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.heroSupply,.heroBoard,.heroDriver,.heroMotor,.esp32Board,.motorDriver,.battery,.motor{position:absolute;box-shadow:0 16px 24px #2b201238}.heroSupply{right:80px;top:56px;width:150px;height:72px;border-radius:7px;background:#272a29;color:#f2df6a;display:grid;place-items:center;font-weight:900}.heroSupply strong{color:#9ee3a5}.heroBoard{left:94px;top:120px;width:210px;height:138px;border-radius:7px;background:linear-gradient(145deg,#0f8069,#0a5e51);border:2px solid #0a493e}.heroBoard i,.esp32Board i{display:inline-block;width:8px;height:8px;margin:12px 0 0 12px;border-radius:50%;background:#e3d28a}.heroChip,.chip{position:absolute;left:62px;top:42px;width:82px;height:48px;display:grid;place-items:center;border-radius:5px;background:#202a2a;color:#d7eee8;font-size:.8rem;font-weight:900}.heroDriver{right:120px;top:178px;width:190px;height:136px;border-radius:7px;background:linear-gradient(145deg,#d7352e,#ad1e1c);border:2px solid #8f1615;color:#fff5ed;font-weight:900;display:grid;place-items:end;padding:14px}.heroDriver b{position:absolute;left:54px;top:34px;width:74px;height:54px;border-radius:4px;background:repeating-linear-gradient(90deg,#cdd4d7,#cdd4d7 6px,#8f9da2 6px 10px)}.heroMotor{width:132px;height:78px;border-radius:40px 9px 9px 40px;background:linear-gradient(90deg,#c29b5a,#f1dc9f 45%,#af8650);border:2px solid #8b754d}.leftMotorHero{left:150px;bottom:72px}.rightMotorHero{right:118px;bottom:64px}.wire{fill:none;stroke-width:8;stroke-linecap:round;filter:drop-shadow(0 4px 3px rgba(0,0,0,.22))}.red{stroke:#e43d30}.black{stroke:#222}.yellow{stroke:#f4bd35}.orange{stroke:#e97833}.blue{stroke:#2b72c5}.green{stroke:#25a65f}.landingBand{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;padding:0 clamp(18px,4vw,56px) 38px}.moduleStrip{min-height:104px;display:grid;align-content:center;gap:6px;padding:18px;background:#fffdf7d6;border:1px solid #d6cdbc}.moduleStrip:first-child{border-radius:8px 0 0 8px}.moduleStrip:last-child{border-radius:0 8px 8px 0}.moduleStrip span{color:#6a655a;font-size:.88rem}.authScreen{min-height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(320px,.9fr) minmax(320px,440px);gap:clamp(24px,5vw,80px);align-items:center}.authCard,.actionStream,.controlPanel,.reportPanel{background:#fffdf7e6;border:1px solid #d6cdbc;border-radius:8px;padding:18px;box-shadow:0 18px 42px #3d311a14}.dark .authCard,.dark .actionStream,.dark .controlPanel,.dark .reportPanel,.dark .moduleStrip{background:#262723eb;border-color:#555044}.authCard{display:grid;gap:14px}label{display:grid;gap:7px;color:#4e4b43;font-size:.88rem;font-weight:800}.dark label{color:#ddd6c8}input,textarea{width:100%;border:1px solid #cfc5b2;border-radius:8px;background:#fffdf8;color:#222;padding:11px 12px}.dark input,.dark textarea{background:#171817;border-color:#5b564a;color:#f4f0e8}.dashboard{display:grid;gap:20px}.dashboardHeader{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,520px);gap:20px;align-items:end}.dashboardStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.metric{min-height:94px;display:grid;align-content:center;gap:5px;padding:12px;border:1px solid #d6cdbc;border-radius:8px;background:#fff8e9}.dark .metric{background:#1e1f1d;border-color:#555044}.metric span{color:#625d51;font-size:.78rem}.dark .metric span{color:#bbb2a5}.metric strong{font-size:1.3rem}.moduleGrid{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:14px}.moduleCard{min-height:210px;display:grid;align-content:end;justify-items:start;text-align:left;gap:9px;padding:18px;background:linear-gradient(180deg,rgba(255,255,255,.24),transparent),#fffdf8;border:1px solid #d6cdbc}.dark .moduleCard{background:#252620;border-color:#555044;color:#f4f0e8}.moduleCard span{color:#6a655a;font-size:.86rem}.moduleCard strong{font-size:1.25rem}.labShell{min-height:calc(100vh - 72px);display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px}.labRail{display:grid;align-content:start;gap:8px}.labRail button{justify-content:flex-start;background:#fffdf7d1;font-weight:800}.dark .labRail button{background:#262723eb;border-color:#555044;color:#f4f0e8}.labRail button.selected{background:#dfe9c5;border-color:#718c4b}.dark .labRail button.selected{background:#4b5936;border-color:#cde48e}.labMain{min-width:0}.labTitle{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:16px}.labTitle h1{font-size:clamp(2rem,3.6vw,3.7rem);margin-bottom:0}.benchGrid{display:grid;grid-template-columns:minmax(180px,240px) minmax(520px,1fr) minmax(260px,340px);gap:14px}.instrumentStack,.wiringChecklist{display:grid;gap:12px;align-content:start}.instrument,.wiringChecklist,.breadboardStage{background:#fffdf7e6;border:1px solid #d6cdbc;border-radius:8px;padding:16px}.dark .instrument,.dark .wiringChecklist,.dark .breadboardStage{background:#252622f0;border-color:#555044}.instrument{min-height:126px;display:grid;align-content:center;gap:5px}.instrument span{color:#686357;font-weight:800;font-size:.86rem}.instrument strong{font-size:2rem;color:#263c2d}.dark .instrument strong{color:#e1c355}.instrument small{color:#6c665b}.oscilloscope svg{width:100%;height:80px;background:#1e3027;border-radius:6px}.oscilloscope path{fill:none;stroke:#8df188;stroke-width:5;stroke-linejoin:round}.breadboardStage{min-height:560px;padding:0;overflow:hidden}.labBoard{min-height:560px;position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(117,83,39,.08) 1px,transparent 1px) 0 0 / 58px 100%,linear-gradient(120deg,#ddbf83,#f1dca7 48%,#c69155)}.breadboard{position:absolute;left:42px;right:42px;bottom:28px;height:150px;border-radius:8px;background:#f6f0dd;border:1px solid #cec3a7;display:grid;grid-template-columns:repeat(14,1fr);gap:8px;padding:20px}.breadboard span{border-radius:50%;background:#b7ad97;box-shadow:inset 0 1px 2px #00000040}.esp32Board{left:82px;top:74px;width:210px;height:146px;border-radius:7px;background:linear-gradient(145deg,#0e745f,#0b5d50);border:2px solid #0a493e}.usbPort{position:absolute;left:84px;top:-11px;width:42px;height:18px;border-radius:4px;background:#d6d6d2;border:2px solid #999}.motorDriver{right:120px;top:135px;width:185px;height:138px;border-radius:7px;background:linear-gradient(145deg,#d62f2d,#b91f1e);border:2px solid #8f1615}.motorDriver strong{position:absolute;right:14px;bottom:12px;color:#fff0e9}.heatSink{position:absolute;left:52px;top:30px;width:70px;height:50px;border-radius:4px;background:repeating-linear-gradient(90deg,#cdd4d7,#cdd4d7 6px,#8f9da2 6px 10px)}.terminal{position:absolute;width:50px;height:24px;border-radius:4px;background:#255cc2;border:2px solid #163d88}.terminalA{left:12px;bottom:14px}.terminalB{right:12px;top:12px}.battery{right:74px;top:46px;width:142px;height:58px;display:grid;place-items:center;border-radius:6px;background:linear-gradient(90deg,#2d2d2b,#4d4d47);color:#f9e78a;font-weight:900}.motor{width:118px;height:68px;border-radius:34px 8px 8px 34px;background:linear-gradient(90deg,#d2b578,#eee0ad 42%,#b6975e);border:2px solid #8b754d}.motor span{position:absolute;right:-18px;top:22px;width:34px;height:20px;border-radius:4px;background:#777}.motorLeft{left:90px;bottom:224px}.motorRight{right:78px;bottom:222px}.wiringChecklist h2{margin-bottom:4px}.wiringChecklist button{width:100%;min-height:74px;display:grid;grid-template-columns:auto 60px 1fr;grid-template-areas:"dot pin target" "dot pin reason";justify-items:start;text-align:left;column-gap:10px;background:#fffaf0}.dark .wiringChecklist button{background:#1e1f1d;color:#f4f0e8;border-color:#555044}.dot{grid-area:dot;width:12px;height:12px;border-radius:50%;align-self:center}.dot.red{background:#e43d30}.dot.black{background:#222}.dot.yellow{background:#f4bd35}.dot.orange{background:#e97833}.dot.blue{background:#2b72c5}.dot.green{background:#25a65f}.wiringChecklist button span{grid-area:pin;font-weight:900}.wiringChecklist button strong{grid-area:target}.wiringChecklist button small{grid-area:reason;color:#70695e}.codingLab,.drivingLab,.raceLab{display:grid;gap:14px}.codeEditor{min-height:560px;font-family:SFMono-Regular,Consolas,monospace;line-height:1.55;background:#1f2724;color:#eaf6de;border-color:#3a5147}.driveGrid,.raceGrid{display:grid;grid-template-columns:minmax(420px,1fr) minmax(320px,420px);gap:14px;align-items:start}.raceGrid{grid-template-columns:minmax(420px,1fr) minmax(320px,420px) minmax(240px,320px)}.raceTrack{min-height:520px;position:relative;overflow:hidden;border-radius:8px;border:1px solid #cfc3ad;background:linear-gradient(120deg,#d6b982,#efd6a0)}.trackLane{position:absolute;inset:60px;border:76px solid #626861;border-radius:48% 40% 44% 54%}.trackLane:after{content:"";position:absolute;inset:-38px;border:10px dashed #fff5d4;border-radius:inherit}.trackCone{position:absolute;width:24px;height:38px;clip-path:polygon(50% 0,100% 100%,0 100%);background:#e65b2c}.coneA{left:25%;bottom:22%}.coneB{right:25%;top:22%}.coneC{right:35%;bottom:18%}.raceCar{position:absolute;left:44%;top:48%;width:96px;height:54px;transform:rotate(-12deg);border-radius:8px;background:#263238;box-shadow:0 12px 22px #0000003d}.raceCar span,.raceCar strong{position:absolute;top:15px;width:18px;height:24px;background:#0e8069}.raceCar span{left:18px}.raceCar strong{right:18px;background:#d7352e}.controlPanel,.reportPanel,.actionStream{display:grid;gap:14px}.slider{grid-template-columns:1fr auto;align-items:center}.slider span{grid-column:1 / -1}.slider input{padding:0;accent-color:#60733d}.slider output{font-weight:900}textarea{min-height:190px;resize:vertical;line-height:1.45}.panelHeader{display:flex;align-items:center;gap:8px;margin-bottom:4px}.empty{color:#686357;margin:0}.logItem{display:grid;gap:4px;padding:10px;border-radius:8px;background:#fff8e9;border:1px solid #d6cdbc}.dark .logItem{background:#1e1f1d;border-color:#555044}.logItem span{color:#60733d;font-size:.72rem;font-weight:900;text-transform:uppercase}.logItem small{color:#6d675d}.editorOnlyApp{background:#101214;min-height:100vh}.embeddedEditor{width:100%;min-height:min(76vh,900px);display:grid;grid-template-rows:auto 1fr;overflow:hidden;border:1px solid #c8c1b2;border-radius:8px;background:#111417;box-shadow:0 20px 70px #241d122e}.embeddedEditor.fullScreen{min-height:100vh;height:100vh;border:0;border-radius:0;box-shadow:none}.embedNotice{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 12px;border-bottom:1px solid #2c3137;background:#1b2025;color:#f2f5f6}.embedNotice div{min-width:0;display:flex;align-items:baseline;gap:12px}.embedNotice strong{white-space:nowrap}.embedNotice span{color:#aeb6be;font-size:.9rem}.embedNotice button{min-height:36px;border-color:#3b4550;background:#242b32;color:#f2f5f6;white-space:nowrap}.embeddedEditor iframe{width:100%;height:100%;min-height:720px;display:block;border:0;background:#111417}.embeddedEditor.fullScreen iframe{min-height:0}.embedBlocked{min-height:620px;display:grid;place-items:center;align-content:center;gap:14px;padding:32px;text-align:center;color:#eef3f7;background:linear-gradient(#24282d 1px,transparent 1px),linear-gradient(90deg,#24282d 1px,transparent 1px),#14181c;background-size:28px 28px}.embeddedEditor.fullScreen .embedBlocked{min-height:0}.embedBlocked h2{margin:0;font-size:1.35rem}.embedBlocked p{max-width:560px;margin:0;color:#b8c1ca;line-height:1.55}@media(max-width:1180px){.landing,.authScreen,.dashboardHeader,.benchGrid,.driveGrid,.raceGrid,.labShell{grid-template-columns:1fr}.landingBand,.moduleGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.labRail{grid-template-columns:repeat(5,minmax(120px,1fr));overflow-x:auto}}@media(max-width:720px){.topBar{height:auto;grid-template-columns:1fr;padding-top:12px;padding-bottom:12px}.topBar nav,.topActions{justify-content:flex-start}.landingBand,.moduleGrid,.dashboardStats{grid-template-columns:1fr}.benchHero,.breadboardStage,.labBoard,.raceTrack{min-height:380px}.heroBoard,.esp32Board{left:26px;top:82px;transform:scale(.75);transform-origin:top left}.heroDriver,.motorDriver{right:22px;top:162px;transform:scale(.75);transform-origin:top right}.heroSupply,.battery{right:24px;top:36px;transform:scale(.82);transform-origin:top right}.motorLeft{left:36px}.motorRight{right:30px}.wiringChecklist button{grid-template-columns:auto 1fr;grid-template-areas:"dot pin" "dot target" "dot reason"}.embedNotice{align-items:flex-start;flex-direction:column}.embedNotice div{align-items:flex-start;flex-direction:column;gap:2px}}
