.language-field .language-row{align-items:center;display:flex;gap:10px}.language-field select{background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:inherit;min-width:180px;padding:8px 10px}.profile-hint{margin:6px 0 0}:root{--bg:#f4f4f3;--panel:#ffffff;--panel-2:#f5f5f3;--ink:#2b2b2b;--muted:#6f6f6c;--line:#e5e5e2;--blue:#b8860b;--green:#2e7d52;--red:#c0392b;--amber:#b7791f;--dark:#393939;--rail-w:188px;--logo-swatch:#5b6573;--rb-gold:#ffd966;--rb-red:#ffd966;--rb-red-deep:#b8860b;--rb-salmon:#eb9290;--rb-gray:#bbbbbb;--rb-ink:#393939;--rb-ink-2:#575757;--scrollbar-track:var(--panel-2);--scrollbar-thumb:#c6c6c2;--scrollbar-thumb-hover:var(--muted);--grey-hover:#b8b8b4;--shadow-sm:0 1px 4px rgba(0,0,0,0.18);--shadow-md:0 10px 28px rgba(0,0,0,0.22);--tooltip-bg:var(--ink);--tooltip-text:var(--panel);--tooltip-border:var(--line);--pro-badge-bg:rgba(255,217,102,0.16);--pro-badge-text:var(--rb-red-deep);--pro-check-bg:#0f6e56;--pro-check-text:#ffffff;--msg-user-bg:rgba(255,217,102,0.18);--pro-term-bg:#1f1f1d;--pro-term-tab-bg:#232321;--pro-term-border:#34332f;--pro-term-text:#d3d1c7;--pro-term-muted:#888780;--pro-term-text-active:#f1efe8;--pro-term-build:#97c459;--pro-term-inspect:#ef9f27;--pro-term-tab-active-bg:#2c2c2a;--pro-term-dim:#5f5e5a;--pro-ground-bg:#0e1116}:root[data-theme=dark]{--bg:#2b2b2b;--panel:#373735;--panel-2:#323230;--ink:#f0f0ed;--muted:#b3b3af;--line:rgba(255,255,255,0.13);--blue:#ffd966;--green:#4caf7d;--red:#e8746a;--amber:#d8b14a;--scrollbar-track:#262624;--scrollbar-thumb:#55554f;--scrollbar-thumb-hover:#6f6f6c;--grey-hover:rgba(255,255,255,0.28);--shadow-sm:0 1px 4px rgba(0,0,0,0.45);--shadow-md:0 12px 30px rgba(0,0,0,0.55);--tooltip-bg:#0f0f0e;--tooltip-text:var(--ink);--pro-badge-bg:rgba(255,217,102,0.14);--pro-badge-text:var(--blue)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:2px solid var(--scrollbar-track);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:var(--scrollbar-track)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}button{align-items:center;background:var(--dark);border:1px solid var(--dark);border-radius:6px;color:white;cursor:pointer;display:inline-flex;font:inherit;font-size:13px;font-weight:650;gap:7px;height:34px;justify-content:center;padding:0 11px;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .12s ease;white-space:nowrap}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.45}.action-row .btn-run,.billing-upgrade-btn,.btn-primary,.course-cta,.lab-start-button,.lesson-nav-btn.primary,.pro-topbar-actions .btn-run,.robot-labs-button{background:var(--rb-gold);border:1px solid var(--rb-gold);color:#2b2b2b;box-shadow:0 6px 18px rgba(255,217,102,.45)}.action-row .btn-run:hover:not(:disabled),.billing-upgrade-btn:hover,.btn-primary:hover,.course-cta:hover,.lab-start-button:hover,.lesson-nav-btn.primary:hover,.pro-topbar-actions .btn-run:hover:not(:disabled),.robot-labs-button:hover{background:var(--rb-red-deep);border-color:var(--rb-red-deep);color:#2b2b2b;box-shadow:0 8px 22px rgba(184,134,11,.42)}.btn-secondary{background:var(--panel);border:1px solid var(--line);color:var(--ink);box-shadow:none}.btn-secondary:hover{background:var(--panel-2);border-color:var(--muted)}.btn-tertiary{background:#d5d5d5;border:1px solid #d5d5d5;color:#393939;box-shadow:none}.btn-tertiary:hover{background:#c4c4c4;border-color:#c4c4c4}[data-tooltip]{position:relative}[data-tooltip]:after{background:var(--tooltip-bg);border:1px solid var(--tooltip-border);border-radius:6px;bottom:calc(100% + 6px);box-shadow:var(--shadow-sm);color:var(--tooltip-text);content:attr(data-tooltip);font-size:12px;font-weight:600;left:50%;line-height:1.3;opacity:0;padding:5px 8px;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .12s ease;white-space:nowrap;z-index:1000}[data-tooltip]:focus-visible:after,[data-tooltip]:hover:after{opacity:1}[data-tooltip].tip-below:after{bottom:auto;top:calc(100% + 6px)}[data-tooltip].tip-left:after{left:auto;right:0;transform:none}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}select{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--ink);font:inherit;height:36px;padding:0 10px;width:100%}.ui-select{align-items:center;background:none;cursor:pointer;display:inline-flex;font:inherit;gap:6px;text-align:left}.ui-select:disabled{cursor:default;opacity:.55}.ui-select--skin{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--ink);height:36px;padding:0 10px;width:100%}.ui-select--skin:hover:not(:disabled){border-color:var(--muted)}.ui-select--skin[aria-expanded=true]{border-color:var(--blue)}.ui-select-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-select-caret{flex:0 0 auto;opacity:.55}.ui-select-menu{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:1px;max-height:60vh;overflow-y:auto;padding:4px;z-index:1200}.ui-select-option{background:transparent;border:0;border-radius:6px;color:var(--ink);cursor:pointer;display:block;font:inherit;font-size:12.5px;padding:6px 10px;text-align:left;white-space:nowrap;width:100%}.ui-select-option.is-active,.ui-select-option:hover{background:var(--panel-2)}.ui-select-option.is-sel{background:color-mix(in srgb,var(--blue) 16%,transparent);color:var(--blue);font-weight:600}pre{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;letter-spacing:0;margin:0;white-space:pre-wrap}.center-screen{align-items:center;display:flex;min-height:100vh;justify-content:center;padding:24px}.boot-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;max-width:440px;padding:26px;width:100%}.brand-mark{align-items:center;background:var(--dark);border-radius:6px;color:white;display:flex;font-weight:800;height:36px;justify-content:center;margin-bottom:16px;width:36px}.workspace-shell{display:grid;grid-gap:12px;gap:12px;min-height:100vh;padding:12px}.topbar{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:flex;justify-content:space-between;min-height:70px;padding:14px 16px}.topbar h1,.topbar p,h2,h3{margin:0}.topbar h1{font-size:22px;line-height:1.2}.eyebrow{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.service-strip{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.service-strip span,.status-pill{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;font-weight:700;padding:5px 9px}.status-running{background:#e8f7f0;border-color:#b7e4cf;color:var(--green)}.status-error{background:#fff0ee;border-color:#ffd2cc;color:var(--red)}.status-no_session,.status-stopped{background:var(--panel-2);border-color:var(--line);color:var(--muted)}.status-checking,.status-ran,.status-running_code,.status-starting{background:#eff6ff;border-color:var(--blue);color:var(--blue)}.status-passed,.status-ready{background:#e8f7f0;border-color:#b7e4cf;color:var(--green)}.status-failed{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.workspace-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(230px,.85fr) minmax(360px,1.45fr) minmax(320px,1.1fr);min-height:520px}.activity-sidebar,.bottom-console,.editor-panel,.sim-panel,.task-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0}.task-panel{display:flex;flex-direction:column;gap:13px;overflow:auto;padding:14px}.lab-topbar{align-items:flex-start;gap:16px}.topbar-actions{align-items:flex-end;display:flex;flex-direction:column;gap:10px}.app-nav{align-items:center;display:flex;gap:4px}.app-nav a{border:1px solid transparent;border-radius:6px;color:var(--muted);font-size:13px;font-weight:750;padding:7px 10px}.app-nav a.selected,.app-nav a:hover{background:#f8fafc;border-color:var(--line);color:var(--ink);text-decoration:none}.robot-context{color:var(--muted);font-size:13px;gap:8px;margin-top:6px}.lab-title-row,.robot-context{align-items:center;display:flex;flex-wrap:wrap}.lab-title-row{gap:10px}.robot-context-label{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.robot-context-value{font-weight:700}.robot-context-muted{color:var(--muted);font-size:12px}.robot-select{font-size:13px;font-weight:700;height:30px;min-width:150px;padding:0 8px;width:auto}.action-row{justify-content:flex-end}.action-row .btn-run{background:var(--rb-gold);border-color:var(--rb-gold);color:#2b2b2b}.action-row .btn-run:hover:not(:disabled){background:var(--rb-red-deep);border-color:var(--rb-red-deep);color:#2b2b2b}.actions-overflow{position:relative}.actions-overflow .icon-btn{background:var(--panel);border:1px solid var(--line);color:var(--muted);padding:0;width:34px}.actions-overflow .icon-btn:hover:not(:disabled){background:var(--panel-2);color:var(--ink)}.actions-menu{background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(16,24,40,.16);display:flex;flex-direction:column;gap:2px;min-width:190px;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:30}.actions-menu button{background:transparent;border:0;border-radius:7px;color:var(--ink);font-weight:600;height:32px;justify-content:flex-start;padding:0 9px;width:100%}.actions-menu button:hover:not(:disabled){background:var(--panel-2)}.workspace-alert{align-items:center;background:#fff0ee;border:1px solid #ffd2cc;border-radius:8px;color:var(--red);display:flex;font-size:13px;font-weight:650;gap:8px;padding:10px 12px}.skin-pending-alert{background:#f5f8ff;border-color:var(--blue);color:var(--blue)}.upgraded-grid{grid-template-columns:minmax(300px,.92fr) minmax(520px,1.5fr) minmax(420px,1.24fr);min-height:660px}.activity-sidebar{display:grid;grid-template-columns:48px minmax(0,1fr);min-height:660px;overflow:hidden;position:relative}.activity-bar{background:#e7edf6;border-right:1px solid #d4ddea;flex-direction:column;gap:6px;padding:8px 6px}.activity-bar,.activity-tab{align-items:center;display:flex}.activity-tab{background:transparent;border:0;border-radius:6px;color:#5b6b85;cursor:pointer;height:38px;justify-content:center;padding:0;position:relative;text-decoration:none;width:36px}.activity-tab:hover{background:#d6e0f0;color:#1e293b;text-decoration:none}.activity-tab.selected{background:#faf3df;color:var(--blue)}.activity-tab.selected:before{background:var(--blue);border-radius:999px;content:"";height:24px;left:-6px;position:absolute;width:3px}.side-panel-content{background:var(--bg);min-width:0;overflow:hidden}.side-panel-scroll{display:flex;flex-direction:column;gap:10px;height:100%;overflow:auto;padding:14px}.lesson-panel{gap:10px;max-height:calc(100vh - 218px)}.section-title{align-items:center;display:flex;gap:8px}.section-title h2{font-size:15px}.lesson-panel details{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:0}.lesson-panel summary{color:var(--ink);cursor:pointer;font-size:13px;font-weight:750;list-style-position:inside;padding:10px 11px}.lesson-panel details[open] summary{border-bottom:1px solid var(--line)}.lesson-panel ol,.lesson-panel p,.lesson-panel ul{color:var(--muted);font-size:13px;line-height:1.48;margin:0;padding:10px 13px 12px}.lesson-panel ol,.lesson-panel ul{padding-left:28px}.lesson-panel li+li{margin-top:6px}.lesson-panel code{background:var(--panel-2);border-radius:4px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;padding:1px 4px}.lesson-panel pre{background:var(--panel);border-top:1px solid var(--line);color:var(--muted);max-height:220px;overflow:auto;padding:11px}.project-editor{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-height:660px;overflow:hidden}.file-explorer{background:var(--panel-2);border-right:1px solid var(--line);display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;overflow:hidden}.side-file-explorer{border-right:0;height:100%}.compact-heading{min-height:50px;padding:10px 12px}.tree-root{overflow:auto;padding:8px 6px 12px}.tree-row{background:transparent;border:0;border-radius:5px;color:var(--muted);display:flex;font-size:12px;font-weight:600;gap:6px;height:29px;justify-content:flex-start;margin:1px 0;min-width:0;padding-right:7px;width:100%}.tree-row:hover{background:#e9eef5}.tree-row span{min-width:0;overflow:hidden;text-overflow:ellipsis}.folder-row{color:var(--muted)}.file-row.selected{background:#faf3df;color:var(--blue)}.dirty-dot{background:var(--amber);border-radius:999px;flex:0 0 auto;height:7px;margin-left:auto;width:7px}.tree-lock{color:#98a2b3;margin-left:auto}.dirty-dot+.tree-lock{margin-left:0}.editor-workbench{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0;overflow:hidden}.editor-tabs{align-items:flex-end;background:var(--bg);border-bottom:1px solid var(--line);display:flex;gap:3px;min-height:39px;overflow-x:auto;padding:6px 8px 0}.editor-tab{background:var(--panel-2);border:1px solid transparent;border-radius:7px 7px 0 0;color:var(--muted);flex:0 0 auto;font-size:12px;font-weight:700;height:33px;max-width:190px;padding:0 8px}.editor-tab.selected{background:var(--panel);border:1px solid transparent;border-radius:0;border-top:2px solid var(--blue);color:var(--ink)}.editor-tab span:first-child{overflow:hidden;text-overflow:ellipsis}.tab-dirty{color:var(--amber);font-size:11px}.tab-close{align-items:center;border-radius:4px;display:inline-flex;height:18px;justify-content:center;margin-left:auto;width:18px}.tab-close:hover{background:var(--line)}.editor-heading{min-height:58px}.editor-heading h2{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-frame{min-height:0}.sim-panel{grid-template-rows:auto auto minmax(420px,1fr) auto;min-height:660px;position:relative}.sim-heading{gap:10px;position:relative;z-index:6}.sim-heading h2{font-size:15px}.sim-toolbar{justify-content:flex-end}.camera-help{background:#f8fafc;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.45;padding:10px 12px}.camera-help strong{display:block;margin-bottom:5px}.camera-help ul{margin:0;padding-left:18px}.sim-panel .viewport{min-height:420px}.telemetry-card{background:#f8fafc;border-top:1px solid var(--line);display:grid;grid-gap:1px;gap:1px;grid-template-columns:repeat(3,minmax(0,1fr))}.telemetry-card div{background:var(--panel);display:flex;flex-direction:column;gap:3px;min-width:0;padding:10px 11px}.result-metrics span,.telemetry-card span{color:var(--muted);font-size:11px;font-weight:700;overflow-wrap:anywhere;text-transform:uppercase}.result-metrics strong,.telemetry-card strong{color:var(--ink);font-size:14px;overflow-wrap:anywhere}.goals-panel{background:#f8fafc;border-top:1px solid var(--line);display:flex;flex-direction:column}.goals-head{align-items:center;display:flex;gap:10px;justify-content:space-between;padding:8px 12px 6px}.goals-title{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.goals-verdict{border-radius:999px;font-size:12px;font-weight:600;padding:2px 10px}.goals-verdict.tone-idle{background:#eef2f8;color:var(--muted)}.goals-verdict.tone-live{background:#eaf2ff;color:var(--blue)}.goals-verdict.tone-pass{background:#e6f6ec;color:#1a7f47}.goals-list{display:flex;flex-direction:column;list-style:none;margin:0;padding:0 6px 8px;display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,1fr)}.goal-card{align-items:center;border:1px solid;border-radius:12px;display:flex;flex-direction:column;gap:2px;justify-content:center;min-height:78px;min-width:0;padding:9px 10px;text-align:center}.goal-card-label{font-size:.76rem;font-weight:600;line-height:1.15;opacity:.92}.goal-card-value{font-size:1.5rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:800;line-height:1.05}.goal-card-target{font-size:.72rem;font-weight:600;min-height:.9em;opacity:.6}.goal-card--todo{background:#e9edf3;border-color:#d7deea;color:#57606e}.goal-card--pass{background:#d6f5e1;border-color:#a3e6bd;color:#137a3e}.goal-card--fail{background:#fbdcdc;border-color:#f4b4b4;color:#bb2a25}:root[data-theme=dark] .blocks-mirror{background:var(--panel-2)}:root[data-theme=dark] .blocks-mirror-head,:root[data-theme=dark] .blocks-mirror-toggle{color:var(--muted)}:root[data-theme=dark] .blocks-mirror-tag{background:rgba(255,255,255,.08);color:var(--muted)}:root[data-theme=dark] .blocks-mirror-code{color:var(--ink)}:root[data-theme=dark] .goals-panel{background:var(--panel)}:root[data-theme=dark] .goals-verdict.tone-idle{background:rgba(255,255,255,.07)}:root[data-theme=dark] .goal-card--todo{background:rgba(255,255,255,.06);border-color:var(--line);color:#cfcfca}:root[data-theme=dark] .goal-card--pass{background:rgba(76,175,125,.16);border-color:rgba(76,175,125,.42);color:#74d6a3}:root[data-theme=dark] .goal-card--fail{background:rgba(232,116,106,.16);border-color:rgba(232,116,106,.42);color:#f1958c}.goals-empty{color:var(--muted);font-size:12px;list-style:none;padding:8px}.sim-status{align-items:center;display:flex;gap:7px}.sim-status-label{color:var(--muted);font-size:12px;font-weight:600}.scene-dot{border-radius:999px;flex:none;height:8px;width:8px}.scene-dot.idle{background:#c0c7d1}.scene-dot.starting{animation:pulse-dot 1.2s ease-in-out infinite;background:#f59e0b}.scene-dot.live{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.18)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.upgraded-console{gap:0;min-height:190px;padding:0;overflow:hidden}.console-tabs{align-items:center;background:#f8fafc;border-bottom:1px solid var(--line);display:flex;gap:4px;min-height:44px;padding:6px}.console-tabs button{background:transparent;border:0;border-radius:5px;color:var(--muted);height:31px}.console-tabs button.selected{background:var(--panel);border:1px solid var(--line);color:var(--ink)}.learner-log{display:grid;grid-gap:8px;gap:8px;padding:12px}.learner-event{align-items:center;background:#f8fafc;border:1px solid var(--line);border-radius:6px;color:var(--muted);display:flex;font-size:13px;min-height:34px;padding:8px 10px}.result-card{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;margin:12px;padding:14px}.result-card.passed{background:color-mix(in srgb,var(--green) 14%,var(--panel));border-color:color-mix(in srgb,var(--green) 38%,var(--panel))}.result-card.failed{background:color-mix(in srgb,var(--amber) 14%,var(--panel));border-color:color-mix(in srgb,var(--amber) 38%,var(--panel))}.result-card h2,.result-card p{margin:0}.result-card p{color:var(--muted);font-size:13px;line-height:1.45;overflow-wrap:anywhere}.result-metrics{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.result-metrics div{background:var(--panel);border:1px solid var(--line);border-radius:6px;display:flex;flex-direction:column;gap:4px;min-width:0;padding:9px 10px}.next-step{background:var(--panel-2);border-radius:6px;overflow-wrap:anywhere;padding:10px}.advanced-log{border-radius:0;max-height:280px}.garage-page{display:grid;grid-template-columns:minmax(0,1fr);min-height:100vh}.topbar-back{align-items:center;color:var(--muted);display:inline-flex;font-size:12px;font-weight:700;gap:4px;margin-bottom:4px}.topbar-back:hover{color:var(--ink)}.garage-main{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;height:100vh;padding:12px}.garage-layout{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(220px,.55fr) minmax(460px,1.25fr) minmax(360px,.95fr);flex:1 1 auto;min-height:0}.catalog-layout{grid-template-columns:minmax(198px,.49fr) minmax(520px,1.35fr) minmax(198px,.47fr)}.garage-catalog-panel,.garage-preview,.garage-side,.robot-info-panel,.skin-grid-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0}.garage-side{align-content:start;display:grid;grid-gap:12px;gap:12px;padding:14px}.garage-label{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.garage-side p{margin:0}.garage-rule,.garage-side p{color:var(--muted);font-size:13px;line-height:1.45}.garage-rule{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:12px}.garage-catalog-panel{display:grid;grid-gap:0;gap:0;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.garage-category-tabs{border-bottom:1px solid var(--line);gap:7px;padding:10px}.garage-category-tab,.garage-category-tabs{align-items:center;display:flex;min-width:0}.garage-category-tab{background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer;flex:0 1 40px;font-size:13px;font-weight:800;gap:6px;height:38px;justify-content:center;overflow:hidden;padding:0;text-align:left;transition:flex-basis .18s ease,flex-grow .18s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease;white-space:nowrap}.garage-category-tab svg,.garage-subtype-tab svg{flex:0 0 auto}.garage-category-tab.selected{flex:1 1 auto;justify-content:flex-start;padding:0 11px}.garage-category-label{display:inline-block;max-width:0;opacity:0;overflow:hidden;text-overflow:ellipsis;transition:max-width .18s ease,opacity .14s ease}.garage-category-tab.selected .garage-category-label{max-width:160px;opacity:1}.garage-category-tab:hover{background:var(--panel-2);border-color:var(--rb-gold)}.garage-category-tab:not(.selected){gap:0}.garage-category-tab.selected{background:var(--rb-gold);border-color:var(--rb-gold);color:#2b2b2b;box-shadow:0 4px 14px rgba(255,217,102,.4)}.garage-subtype-tabs{align-items:center;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:7px;padding:10px}.garage-subtype-tab{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:999px;color:var(--ink);cursor:pointer;display:flex;font-size:12px;font-weight:800;gap:6px;min-height:32px;padding:6px 10px;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;white-space:nowrap}.garage-subtype-tab:hover{background:var(--panel-2);border-color:#d5d5d5}.garage-subtype-tab.selected{background:#d5d5d5;border-color:#d5d5d5;color:#393939}.garage-subtype-tab.disabled,.skin-card.locked{cursor:not-allowed;opacity:.58}.garage-model-section{display:grid;grid-template-rows:minmax(0,1fr);min-height:0;overflow:hidden}.garage-model-heading{border-bottom:1px solid var(--line)}.garage-model-grid{min-height:0}.garage-model-grid .skin-card-description{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.garage-preview{display:grid;grid-template-rows:minmax(420px,1fr) auto;overflow:hidden}.garage-canvas-title{color:#eef2f8;font-size:16px;font-weight:700;left:50%;letter-spacing:.2px;margin:0;max-width:calc(100% - 320px);overflow:hidden;pointer-events:none;position:absolute;text-align:center;text-overflow:ellipsis;text-shadow:0 1px 10px rgba(0,0,0,.6),0 1px 2px rgba(0,0,0,.45);top:14px;transform:translateX(-50%);white-space:nowrap;z-index:3}.garage-canvas{background:radial-gradient(120% 95% at 50% 32%,#49535f 0,#2c333d 75%);min-height:420px;position:relative}.garage-renderer,.garage-renderer canvas{display:block;height:100%;width:100%}.garage-canvas-state{align-items:center;color:var(--muted);display:flex;gap:8px;inset:0;justify-content:center;position:absolute}.garage-preview-note{border-top:1px solid var(--line);color:var(--muted);font-size:12px;padding:10px 12px}.skin-grid-panel{display:flex;flex-direction:column;overflow:hidden}.skin-grid-panel .skin-grid{flex:1 1;min-height:0}.garage-showroom .garage-canvas-state{color:#c7d2e3}.garage-spec-overlay{align-items:center;background:rgba(10,14,22,.62);border:1px solid rgba(148,163,184,.22);border-radius:10px;color:#e6edf7;display:flex;flex-wrap:wrap;gap:8px;left:12px;padding:8px 11px;position:absolute;top:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.garage-spec-name{font-size:13px;font-weight:800}.garage-spec-dims{color:#9fb0c8;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.garage-grade-badge{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:rgba(10,14,22,.62);border:1px solid rgba(148,163,184,.22);border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.28);color:#e6edf7;display:flex;gap:9px;padding:7px 11px 7px 8px;position:absolute;right:12px;top:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none;--grade-accent:#94a3b8}.garage-grade-code{align-items:center;background:var(--grade-accent);border-radius:9px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);color:#0b0f16;display:flex;font-size:17px;font-weight:800;height:38px;justify-content:center;letter-spacing:.5px;min-width:38px}.garage-grade-meta{display:flex;flex-direction:column;gap:6px;min-width:66px}.garage-grade-label{font-size:12.5px;font-weight:700;line-height:1}.garage-grade-score{background:rgba(148,163,184,.25);border-radius:999px;height:5px;overflow:hidden;position:relative}.garage-grade-bar{background:var(--grade-accent);border-radius:999px;bottom:0;left:0;position:absolute;top:0}.garage-grade-badge[data-grade=R1]{--grade-accent:#bbbbbb}.garage-grade-badge[data-grade=R2]{--grade-accent:#ffd966}.garage-grade-badge[data-grade=R3]{--grade-accent:#b8860b}.garage-grade-badge[data-grade=R4]{--grade-accent:#eb9290}.garage-grade-badge[data-grade=R5]{--grade-accent:#c10001}.garage-grade-badge[data-grade=R6]{--grade-accent:#810705}.garage-grade-badge[data-grade=R5] .garage-grade-code,.garage-grade-badge[data-grade=R6] .garage-grade-code{color:#f5e8e8}.garage-grade-tooltip{background:rgba(10,14,22,.97);border:1px solid rgba(148,163,184,.2);border-radius:12px;box-shadow:0 10px 32px rgba(0,0,0,.5);color:#e6edf7;display:none;min-width:260px;padding:13px 14px 12px;pointer-events:auto;position:absolute;right:0;top:calc(100% + 8px);z-index:200}.garage-grade-tooltip:before{content:"";height:8px;left:0;position:absolute;right:0;top:-8px}.garage-grade-badge:focus-within .garage-grade-tooltip,.garage-grade-badge:hover .garage-grade-tooltip{display:block}.garage-grade-tooltip-current{align-items:flex-start;display:flex;gap:10px;margin-bottom:10px}.garage-grade-tooltip-cur-code{align-items:center;background:var(--grade-accent);border-radius:7px;color:#0b0f16;display:flex;flex-shrink:0;font-size:15px;font-weight:800;height:34px;justify-content:center;min-width:34px}.garage-grade-badge[data-grade=R5] .garage-grade-tooltip-cur-code,.garage-grade-badge[data-grade=R6] .garage-grade-tooltip-cur-code{color:#f5e8e8}.garage-grade-tooltip-cur-text{display:flex;flex-direction:column;gap:3px}.garage-grade-tooltip-cur-text strong{font-size:13px;font-weight:700;line-height:1.2}.garage-grade-tooltip-cur-text span{color:#94a3b8;font-size:11.5px;line-height:1.4}.garage-grade-tooltip-sep{background:rgba(148,163,184,.18);height:1px;margin-bottom:9px}.garage-grade-tooltip-scheme-title{color:#94a3b8;font-size:10.5px;font-weight:600;letter-spacing:.05em;margin-bottom:7px;text-transform:uppercase}.garage-grade-tooltip-scheme{display:flex;flex-direction:column;gap:5px}.garage-grade-tooltip-row{align-items:center;border-radius:6px;color:#94a3b8;display:flex;font-size:12px;gap:7px;padding:2px 4px}.garage-grade-tooltip-row.active{background:rgba(148,163,184,.08);color:#e6edf7;font-weight:700}.garage-grade-tooltip-dot{background:#94a3b8;border-radius:50%;flex-shrink:0;height:9px;width:9px}.garage-grade-tooltip-row[data-grade=R1] .garage-grade-tooltip-dot{background:#bbbbbb}.garage-grade-tooltip-row[data-grade=R2] .garage-grade-tooltip-dot{background:#ffd966}.garage-grade-tooltip-row[data-grade=R3] .garage-grade-tooltip-dot{background:#b8860b}.garage-grade-tooltip-row[data-grade=R4] .garage-grade-tooltip-dot{background:#eb9290}.garage-grade-tooltip-row[data-grade=R5] .garage-grade-tooltip-dot{background:#c10001}.garage-grade-tooltip-row[data-grade=R6] .garage-grade-tooltip-dot{background:#810705}.garage-grade-tooltip-code{font-size:11px;font-weight:700;min-width:22px}.garage-grade-tooltip-name{flex:1 1}.garage-grade-more{background:rgba(148,163,184,.12);border:1px solid rgba(148,163,184,.22);border-radius:7px;color:#e6edf7;cursor:pointer;font-size:12px;font-weight:600;margin-top:11px;padding:6px 10px;text-align:center;width:100%}.garage-grade-more:hover{background:rgba(148,163,184,.2);color:#ffd966}.modal-panel:has(.grade-scheme){width:min(680px,100%)}.grade-scheme{display:flex;flex-direction:column;gap:12px}.grade-scheme-intro{color:var(--muted);font-size:14px;line-height:1.55;margin:0}.grade-scheme-svg{display:block;height:auto;width:100%}.grade-scheme-svg text{font-family:inherit}.grade-scheme-foot{border-top:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.5;margin:0;padding-top:12px}.garage-color-bay{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:10px}.garage-color-bay .panel-heading h2{align-items:center;display:flex;gap:6px}.color-bay-status{align-items:center;display:flex;gap:8px}.color-reset-all{align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;color:var(--muted);cursor:pointer;display:flex;font-size:12px;font-weight:700;gap:4px;padding:4px 9px}.color-reset-all:disabled{cursor:default;opacity:.5}.color-swatch-row{display:flex;flex-direction:column;gap:6px}.color-swatch{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:1fr auto 116px;width:100%}.color-swatch-controls{display:contents}.color-swatch-chip{border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 4px rgba(15,23,42,.18);cursor:pointer;display:block;flex:none;height:24px;overflow:hidden;width:24px}.color-swatch-chip input[type=color]{border:none;cursor:pointer;height:200%;margin:-25% 0 0 -25%;padding:0;width:200%}.color-swatch-label{color:var(--ink);flex:1 1;font-size:13px;font-weight:700;text-align:left}.color-swatch-reset{align-items:center;background:var(--ink);border:none;border-radius:999px;color:#fff;cursor:pointer;display:flex;font-size:12px;height:18px;justify-content:center;line-height:1;width:18px}.garage-panel-tabs{border-bottom:1px solid var(--line);display:flex;gap:6px;padding-bottom:8px}.garage-panel-tab{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--muted);cursor:pointer;display:flex;flex:1 1;font-size:13px;font-weight:700;gap:6px;justify-content:center;padding:7px 10px}.garage-panel-tab.selected{background:var(--panel-2);border-color:var(--line);color:var(--ink)}.garage-customize-tab,.garage-model-tab{display:grid;grid-gap:14px;gap:14px}.garage-customize-section{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:10px}.finish-select{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--ink);cursor:pointer;font-size:12px;font-weight:600;padding:3px 6px;width:100%}.preset-strip{display:flex;flex-wrap:wrap;gap:8px}.preset-chip{align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;color:var(--ink);cursor:pointer;display:flex;font-size:12px;font-weight:700;gap:8px;padding:4px 10px 4px 5px}.preset-chip:hover{border-color:#4f86c6}.preset-swatches{display:inline-flex}.preset-swatch{border:1px solid #fff;border-radius:999px;box-shadow:0 0 0 1px var(--line);height:14px;margin-left:-5px;width:14px}.preset-swatch:first-child{margin-left:0}.preset-label{white-space:nowrap}.logo-edit-list{display:flex;flex-direction:column;gap:8px}.logo-edit-row{align-items:center;display:flex;gap:10px;justify-content:space-between}.logo-edit-info{display:grid;grid-gap:2px;gap:2px;min-width:0}.logo-edit-label{color:var(--ink);font-size:13px;font-weight:700}.logo-edit-current{color:var(--muted);font-size:12px}.logo-edit-btn{align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:12px;font-weight:700;gap:6px;padding:7px 12px}.logo-edit-btn:hover{border-color:var(--blue);color:var(--blue)}.logo-drawer{background:var(--panel);border-radius:8px;display:flex;flex-direction:column;inset:0;position:absolute;transform:translateX(100%);transition:transform .22s ease;z-index:20}.logo-drawer.open{box-shadow:-10px 0 28px rgba(0,0,0,.18);transform:none}.logo-drawer-header{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;gap:10px;padding:12px}.logo-drawer-close{align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;color:var(--ink);cursor:pointer;display:inline-flex;flex-shrink:0;height:44px;justify-content:center;width:44px}.logo-drawer-close:hover{border-color:var(--blue);color:var(--blue)}.logo-drawer-titles{display:grid;grid-gap:2px;gap:2px;min-width:0}.logo-drawer-title{font-size:18px;font-weight:800;margin:0}.logo-drawer-subtitle{color:var(--muted);font-size:14px;margin:0}.logo-remove-btn{align-items:center;align-self:flex-start;background:transparent;border:1px solid var(--line);border-radius:8px;color:var(--red);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:6px;margin:10px 12px 0;padding:7px 12px}.logo-remove-btn:hover:not(:disabled){border-color:var(--red)}.logo-remove-btn:disabled{cursor:not-allowed;opacity:.45}.logo-size-row{align-items:center;display:flex;gap:10px;padding:10px 12px 0}.logo-size-end{color:var(--muted);flex:none;font-size:11px;font-weight:700}.logo-size-track{align-items:center;display:flex}.logo-size-range,.logo-size-track{flex:1 1;min-width:0;position:relative}.logo-size-range{accent-color:#ffd966;cursor:pointer;height:22px;z-index:1}.logo-size-range:disabled{cursor:not-allowed;opacity:.45}.logo-size-marks{inset:0 9px;pointer-events:none;position:absolute}.logo-size-marks span{background:var(--ink);border-radius:1px;height:7px;opacity:.3;position:absolute;top:50%;transform:translate(-50%,-50%);width:2px}.logo-card-grid{align-content:start;display:grid;flex:1 1;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,1fr);overflow-y:auto;padding:12px}.logo-card{align-items:center;aspect-ratio:1;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:6px;height:auto;justify-content:center;padding:8px;position:relative;white-space:normal}.logo-card.selected,.logo-card:hover{border-color:#ffd966;box-shadow:0 0 0 2px rgba(255,217,102,.3)}.logo-card-swatch{align-items:center;background:var(--logo-swatch);border-radius:8px;display:flex;flex:1 1;justify-content:center;min-height:0;width:100%}.logo-card-swatch img{max-height:82%;max-width:82%;object-fit:contain}.logo-card-badge{background:#ffd966;border-radius:999px;color:#393939;font-size:9px;font-weight:800;padding:2px 7px;position:absolute;right:6px;top:6px;z-index:1}.garage-name-input{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:14px;font-weight:600;padding:8px 10px;width:100%}.robot-custom-name{color:var(--ink);font-size:15px;font-style:italic;font-weight:700;margin:2px 0 0}.skin-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));overflow:auto;padding:12px}.skin-card{align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);display:grid;grid-gap:8px;gap:8px;height:auto;justify-content:stretch;padding:8px;text-align:left;white-space:normal}.skin-card.selected,.skin-card:hover{border-color:var(--blue);box-shadow:0 0 0 2px rgba(184,134,11,.1)}.skin-card.locked:hover{border-color:var(--line);box-shadow:none}.skin-card img{background:var(--bg);border-radius:6px;height:84px;object-fit:cover;width:100%}.garage-model-grid .skin-card{height:220px;overflow:hidden}.skin-card-action,.skin-card-title{align-items:center;display:flex;font-size:13px;font-weight:800;gap:6px;justify-content:space-between}.skin-card-description{color:var(--muted);font-size:12px;font-weight:500;line-height:1.35;min-height:2.7em}.skin-meta-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.skin-meta-row span{background:var(--panel-2);border-radius:999px;color:var(--muted);font-size:11px;font-weight:800;padding:3px 7px;text-transform:capitalize}.skin-card-action{color:var(--muted);justify-content:flex-start;min-height:18px}.robot-info-panel{display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;position:relative}.robot-info-content{align-content:start;display:grid;grid-gap:12px;gap:12px;overflow:auto;padding:12px}.robot-subtype-desc .robot-type-eyebrow{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;margin:0 0 2px;text-transform:uppercase}.robot-subtype-desc .robot-type-title{color:var(--ink);font-size:17px;font-weight:800;line-height:1.25;margin:0 0 8px}.robot-subtype-desc p{color:var(--muted);font-size:13px;line-height:1.45;margin:0}.robot-subtype-desc .robot-size{color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;margin-top:6px}.has-tip{cursor:help}.badge-tooltip{background:#0f172a;border-radius:6px;box-shadow:0 10px 26px rgba(15,23,42,.22);color:#f1f5f9;font-size:12px;font-weight:600;line-height:1.4;max-width:260px;padding:7px 10px;pointer-events:none;position:fixed;white-space:normal;z-index:1000}.badge-tooltip-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11.5px;font-weight:500;max-width:380px;white-space:pre-wrap}.robot-info-section{align-content:start;display:grid;grid-gap:8px;gap:8px}.robot-info-section h3{color:var(--muted);font-size:12px;font-weight:900;margin:0;text-transform:uppercase}.chip-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:7px}.info-chip{border:1px solid var(--line);border-radius:5px;color:var(--muted);font-weight:700;padding:3px 7px}.code-chip,.info-chip{background:var(--panel-2);font-size:11px}.code-chip{border-color:var(--line);border-radius:4px;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-weight:600}:root[data-theme=dark] .code-chip,:root[data-theme=dark] .info-chip{background:var(--rb-ink-2);border-color:transparent;color:#ececeb}.see-all-link{background:transparent;border:0;border-radius:0;color:var(--muted);cursor:pointer;font-size:11px;font-weight:700;height:auto;padding:3px 4px;text-decoration:none}.see-all-link:hover{color:var(--blue);text-decoration:underline}.compact-list{display:grid;grid-gap:6px;gap:6px;line-height:1.35;padding-left:18px}.compact-list,.muted-note{color:var(--muted);font-size:13px;margin:0}.muted-note{line-height:1.4}.workspace-shell.focus-editor .activity-sidebar,.workspace-shell.focus-editor .lesson-panel,.workspace-shell.focus-editor .sim-panel,.workspace-shell.focus-editor .upgraded-console,.workspace-shell.focus-sim .activity-sidebar,.workspace-shell.focus-sim .lesson-panel,.workspace-shell.focus-sim .project-editor,.workspace-shell.focus-sim .upgraded-console{display:none}.focus-editor .upgraded-grid,.focus-sim .upgraded-grid{grid-template-columns:1fr}.workspace-shell.focus-editor .project-editor,.workspace-shell.focus-sim .sim-panel{min-height:calc(100vh - 112px)}.bottom-console h2,.panel-heading h2,.task-panel h2,.task-panel h3{font-size:14px}.task-panel pre{color:var(--muted);font-size:13px;line-height:1.5}.editor-panel,.sim-panel{display:grid;grid-template-rows:auto 1fr;overflow:hidden}.panel-heading{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;min-height:56px;padding:11px 12px}.panel-heading p{color:var(--muted);font-size:12px;margin:3px 0 0}.button-row,.control-bar{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.editor-frame{min-height:420px}.editor-fallback{background:#f6f8fc;border:0;color:#1e293b;height:100%;padding:12px;width:100%}:root[data-theme=dark] .editor-fallback{background:var(--panel-2);color:var(--ink)}.block-editor-loading{align-items:center;background:#f1f4f9;color:#64748b;display:flex;height:100%;justify-content:center}.blocks-split{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:0}.blocks-canvas{min-height:0;overflow:hidden;position:relative}.block-editor-host{background:#f1f4f9;height:100%;width:100%}.blocklyToolboxDiv{border-right:1px solid #d6deea!important}.blocklyFlyoutBackground{fill:#eef2f8}.blocklySelected>.blocklyPath{stroke:var(--blue)!important;stroke-width:1.5px!important}.blocklyHighlightedConnectionPath{stroke:var(--blue)!important}.blocks-mirror{background:#f6f8fc;border-top:1px solid var(--line);display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.blocks-mirror-head{align-items:center;color:#5b6b85;display:flex;font-size:12px;gap:6px;letter-spacing:.02em;padding:6px 10px;text-transform:uppercase}.blocks-mirror-tag{background:#e2e8f3;border-radius:4px;color:#5b6b85;font-size:10px;margin-left:auto;padding:2px 6px;text-transform:none}.blocks-mirror-code{color:#1e293b;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5;margin:0;padding:4px 12px 12px;white-space:pre}.activity-divider{background:#454545;height:1px;margin:4px 0;width:24px}.viewport{background:#111827;min-height:420px}.viewport iframe{border:0;height:100%;inset:0;position:absolute;width:100%}.viewport-empty{align-items:center;color:white;display:flex;flex-direction:column;gap:6px;height:100%;justify-content:center;padding:16px;text-align:center}.viewport-empty p{font-weight:700;margin:0}.viewport-empty span{color:#c9c9c6;font-size:13px}.viewport-hint{color:#94a3b8;font-size:13px;font-weight:400;margin:0}.viewport-error{background:rgba(180,35,24,.12)}.viewport-error p{color:#fca5a5}.connection-dot{background:#98a2b3;border-radius:999px;display:inline-block;height:10px;width:10px}.connection-dot.connected{background:var(--green)}.bottom-console{display:grid;grid-gap:10px;gap:10px;padding:12px}.console-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1.4fr) minmax(280px,.7fr)}.logs,.result pre{background:var(--dark);border-radius:6px;color:#d0d5dd;font-size:12px;line-height:1.45;max-height:240px;min-height:130px;overflow:auto;padding:12px}.result{border:1px solid var(--line);border-radius:8px;padding:12px}.result p{margin:8px 0}.result.passed{background:#e8f7f0;border-color:#b7e4cf}.result.failed{background:#fff7ed;border-color:#fed7aa}.inline-error,.inline-status{align-items:center;color:var(--muted);display:inline-flex;font-size:13px;gap:7px}.error-text,.inline-error{color:var(--red)}.muted{color:var(--muted);font-size:13px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1100px){.console-grid,.workspace-grid{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column;gap:12px}.service-strip{justify-content:flex-start}}.workspace-shell .upgraded-grid{grid-template-columns:var(--col-left,minmax(300px,.92fr)) minmax(0,1.5fr) var(--col-right,minmax(420px,1.24fr));min-height:660px}.workspace-shell.focus-editor .upgraded-grid,.workspace-shell.focus-sim .upgraded-grid{grid-template-columns:minmax(0,1fr)}.col-resize-handle{bottom:0;cursor:col-resize;position:absolute;top:0;width:9px;z-index:7}.col-resize-left{right:0}.col-resize-right{left:0}.col-resize-handle:after{background:transparent;bottom:6px;content:"";left:50%;position:absolute;top:6px;transform:translateX(-50%);transition:background .12s ease;width:2px}.col-resize-handle:hover:after,body.col-resizing .col-resize-handle:after{background:var(--blue)}body.col-resizing{cursor:col-resize!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}body.col-resizing iframe{pointer-events:none}.row-resize-handle{cursor:row-resize;height:9px;left:0;position:absolute;right:0;z-index:7}.row-resize-top{top:0}.row-resize-bottom{bottom:0}.row-resize-handle:after{background:transparent;content:"";height:2px;left:6px;position:absolute;right:6px;top:50%;transform:translateY(-50%);transition:background .12s ease}.row-resize-handle:hover:after,body.row-resizing .row-resize-handle:after{background:var(--blue)}body.row-resizing{cursor:row-resize!important;-webkit-user-select:none;-moz-user-select:none;user-select:none}body.row-resizing iframe{pointer-events:none}@media (max-width:1100px){.col-resize-handle,.row-resize-handle{display:none}}.workspace-shell .project-editor{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-height:660px}.workspace-shell .sim-panel{display:grid;grid-template-rows:auto auto minmax(420px,1fr) auto;min-height:660px}.workspace-shell .editor-frame{min-height:0}.workspace-shell .viewport{min-height:420px}.workspace-shell .upgraded-console{gap:0;padding:0}.workspace-shell .advanced-log{border-radius:0;max-height:280px}.workspace-shell.focus-sim .sim-panel{min-height:calc(100vh - 112px)}@media (max-width:1280px){.workspace-shell .upgraded-grid{grid-template-columns:minmax(300px,.82fr) minmax(480px,1.35fr)}.workspace-shell .sim-panel{grid-column:1/-1;min-height:520px;grid-template-rows:auto auto minmax(360px,1fr) auto}}@media (max-width:1180px){.garage-layout{grid-template-columns:minmax(300px,.85fr) minmax(460px,1.15fr)}.robot-info-panel{grid-column:1/-1}}@media (max-width:900px){.activity-sidebar,.workspace-shell .project-editor,.workspace-shell .upgraded-grid{grid-template-columns:1fr}.activity-sidebar{grid-template-rows:48px minmax(0,1fr)}.activity-bar{border-bottom:1px solid #454545;border-right:0;flex-direction:row}.file-explorer{border-bottom:1px solid var(--line);border-right:0;max-height:250px}.result-metrics,.telemetry-card{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-actions{align-items:stretch;width:100%}.action-row,.sim-toolbar{justify-content:flex-start}.garage-layout,.garage-shell,.skin-grid{grid-template-columns:1fr}.garage-shell{grid-template-rows:48px minmax(0,1fr)}.garage-activity-bar{min-height:48px}}.icon-button{height:30px;padding:0 9px}.tree-hint{color:var(--muted);font-size:11px;line-height:1.5;margin:6px 10px 12px}.tree-hint code{background:var(--bg);border-radius:4px;padding:0 4px}.snapshots-panel{gap:12px}.snapshot-list{display:grid;grid-gap:8px;gap:8px}.snapshot-empty{font-size:12px;line-height:1.5}.snapshot-row{align-items:center;background:#f8fafc;border:1px solid var(--line);border-radius:7px;display:flex;gap:8px;justify-content:space-between;padding:9px 10px}.snapshot-meta{display:grid;grid-gap:2px;gap:2px;min-width:0}.snapshot-meta strong{font-size:13px}.snapshot-meta span{color:var(--muted);font-size:11px}.snapshot-meta time{color:#98a2b3;font-size:11px}.ghost-button{background:var(--panel);border:1px solid var(--line);color:var(--ink);flex:0 0 auto;height:30px;padding:0 10px}.ghost-button:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.advanced-logs{display:grid;grid-gap:8px;gap:8px}.log-toolbar{align-items:center;background:#f8fafc;border:1px solid var(--line);border-radius:6px;color:var(--muted);display:flex;gap:8px;padding:0 10px}.log-search{background:transparent;border:0;color:var(--ink);flex:1 1;font:inherit;font-size:12px;height:32px;outline:none}.log-source>summary{cursor:pointer;font-size:12px;font-weight:650;list-style:revert;padding:4px 2px}.log-source-count{color:var(--muted);font-weight:500;margin-left:8px}.terminal-console{display:grid;grid-gap:8px;gap:8px;grid-template-rows:minmax(0,1fr) auto;min-height:220px}.pro-terminal-console{grid-template-rows:minmax(0,1fr)}.pro-terminal-host,.pro-terminal-loading{background:var(--pro-term-bg);border-radius:6px;height:320px;max-height:52vh;padding:8px;overflow:hidden}.pro-terminal-host,.pro-terminal-host .xterm-viewport{scrollbar-color:#55554f #262624}.pro-terminal-host ::-webkit-scrollbar-track{background:#262624}.pro-terminal-host ::-webkit-scrollbar-thumb{background:#55554f;border-color:#262624}.pro-terminal-host .xterm-viewport{overflow-y:auto!important}.lab-pro-badge{align-self:center;background:var(--color-info-bg,#e6f1fb);border-radius:6px;color:var(--color-info-text,#0c447c);font-size:11px;font-weight:500;letter-spacing:.02em;padding:2px 8px}.pro-shell{display:flex;flex-direction:column;gap:8px;height:100vh;min-height:0;padding:10px}.pro-topbar{gap:12px;justify-content:space-between}.pro-topbar,.pro-topbar-title{align-items:center;display:flex}.pro-topbar-title{gap:10px;min-width:0}.pro-topbar-title h1{font-size:16px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pro-badge{background:var(--pro-badge-bg);border-radius:6px;color:var(--pro-badge-text);font-size:11px;padding:2px 8px;white-space:nowrap}.pro-topbar-actions{display:flex;gap:6px}.pro-topbar-actions button{align-items:center;background:var(--panel,#fff);border:1px solid var(--line,#e3e6ea);border-radius:7px;color:var(--ink,#1a1a1a);cursor:pointer;display:inline-flex;font-size:13px;gap:6px;padding:6px 12px}.pro-topbar-actions button:disabled{cursor:default;opacity:.5}.pro-topbar-actions .icon-button{padding:0 9px}.pro-topbar-actions .btn-check{background:var(--pro-check-bg);border-color:var(--pro-check-bg);color:var(--pro-check-text)}.pro-grid{display:grid;flex:1 1;grid-gap:8px;gap:8px;grid-template-columns:var(--pro-cols,minmax(0,1.3fr) minmax(380px,1fr));min-height:0}.pro-work{grid-gap:8px;grid-template-rows:var(--pro-work-top-h,minmax(0,1.55fr)) minmax(160px,1fr);min-width:0}.pro-work,.pro-work-top{display:grid;gap:8px;min-height:0;position:relative}.pro-work-top{grid-gap:8px;grid-template-columns:var(--pro-tree-w,150px) minmax(0,1fr)}.pro-editor,.pro-guidance,.pro-robot,.pro-terminal-col,.pro-tree{background:var(--panel,#fff);border:1px solid var(--line,#e3e6ea);border-radius:8px;min-height:0;min-width:0;overflow:hidden;position:relative}.pro-tree{display:flex;flex-direction:column}.pro-tree .tree-root{flex:1 1;overflow:auto;padding:4px}.pro-pane-head{align-items:center;border-bottom:1px solid var(--line,#e3e6ea);color:var(--muted,#6b7280);display:flex;font-size:11px;gap:6px;letter-spacing:.04em;padding:6px 8px;text-transform:uppercase}.pro-pane-head .icon-button{margin-left:auto}.pro-editor{display:flex;flex-direction:column}.pro-editor-body{flex:1 1;min-height:0}.pro-editor-body>*{height:100%}.pro-bottom{display:grid;grid-gap:8px;gap:8px;grid-template-columns:var(--pro-bottom-w,minmax(0,1fr)) minmax(0,1fr);min-height:0;position:relative}.pro-guidance,.pro-terminal-col{display:flex;flex-direction:column}.pro-subtabs{background:var(--panel-2);border-bottom:1px solid var(--line,#e3e6ea);display:flex;gap:4px;padding:6px}.pro-subtabs button{align-items:center;background:transparent;border:0;border-radius:5px;color:var(--muted,#6b7280);cursor:pointer;display:inline-flex;font-size:12px;gap:5px;padding:5px 9px}.pro-subtabs button.selected{background:var(--panel,#fff);border:1px solid var(--line,#e3e6ea);color:var(--ink,#1a1a1a)}.pro-guidance-body{flex:1 1;min-height:0;overflow:auto;padding:10px}.pro-tutor-pane.tutor-dock{border-top:0;display:flex;flex-direction:column;height:100%;min-height:0}.pro-tutor-pane.tutor-dock .tutor-dock-open{flex:1 1;max-height:none;min-height:0}.pro-brief pre{font-size:12px;white-space:pre-wrap}.pro-brief-summary{font-weight:500;margin:0 0 8px}.pro-tutor-pane{display:flex;flex-direction:column;height:100%}.pro-result-scroll{font-size:13px}.pro-terminal-col{background:var(--pro-term-bg);border-color:var(--pro-term-border)}.pro-term-bar{align-items:center;background:var(--pro-term-tab-bg);border-bottom:1px solid var(--pro-term-border);display:flex;gap:2px;padding:4px 6px}.pro-term-tab{align-items:center;background:transparent;border:0;border-radius:4px;color:var(--pro-term-muted);cursor:pointer;display:inline-flex;font-family:var(--font-mono,ui-monospace,monospace);font-size:11.5px;gap:6px;padding:4px 11px}.pro-term-tab:hover{color:var(--pro-term-text)}.pro-term-tab.selected{background:var(--pro-term-tab-active-bg);color:var(--pro-term-text-active)}.pro-term-dot{background:var(--pro-term-dim);border-radius:50%;display:inline-block;height:6px;width:6px}.pro-term-tab.selected .pro-term-dot.build{background:var(--pro-term-build)}.pro-term-tab.selected .pro-term-dot.inspect{background:var(--pro-term-inspect)}.pro-term-hint{color:var(--pro-term-dim);font-size:11px;margin-left:auto;padding-right:8px}.pro-term-hint,.pro-terminal-idle{font-family:var(--font-mono,ui-monospace,monospace)}.pro-terminal-idle{color:var(--pro-term-muted);font-size:12px;padding:16px}.pro-term-stack{display:grid;flex:1 1;grid-template:1fr/1fr;min-height:0}.pro-term-slot{grid-area:1/1;min-height:0;overflow:hidden}.pro-term-slot.hidden{display:none}.pro-term-slot .pro-terminal-host{border-radius:0;height:100%;max-height:none;min-height:0}.pro-robot{display:flex;flex-direction:column}.pro-robot-head{justify-content:space-between}.pro-robot-head>span{align-items:center;display:inline-flex;gap:6px}.pro-robot-controls{display:flex;gap:4px}.pro-robot-controls button{background:var(--panel,#fff);border:1px solid var(--line,#e3e6ea);border-radius:5px;color:var(--ink,#1a1a1a);cursor:pointer;display:inline-flex;padding:4px}.pro-robot-controls button:disabled{cursor:default;opacity:.4}.pro-robot-stack{display:grid;flex:1 1;grid-gap:1px;gap:1px;grid-template-rows:var(--pro-gt-h,minmax(0,1fr)) minmax(0,2fr);min-height:0}.pro-ground-truth{background:var(--pro-ground-bg);position:relative}.pro-ground-truth iframe{border:0;display:block;height:100%;width:100%}.pro-viewer-idle{align-items:center;display:flex;height:100%;justify-content:center}.pro-perception{border-top:1px solid var(--line,#e3e6ea);display:flex;flex-direction:column;min-height:0}.pro-perception-body{flex:1 1;min-height:0;overflow:hidden}.pro-perception-idle{height:100%;overflow:auto;padding:8px}.perc-root{--pbg:var(--panel-2,#f5f5f3);--ppane:var(--panel,#ffffff);--pline:var(--line,#e5e5e2);--ptext:var(--ink);--pmuted:var(--muted,#6f6f6c);--pscope:var(--panel-2,#f5f5f3);--pring:rgba(0,0,0,0.18);background:var(--pbg);color:var(--ptext);display:flex;flex-direction:column;gap:6px;height:100%;overflow:hidden;padding:6px}:root[data-theme=dark] .perc-root{--pring:rgba(255,255,255,0.22)}.perc-conn{align-items:center;background:var(--ppane);border:1px solid var(--pline);border-radius:6px;color:var(--pmuted);display:flex;flex:0 0 auto;font-size:11px;gap:6px;padding:4px 8px}.perc-conn.is-bad{color:var(--amber)}.perc-offline{align-items:center;background:var(--pbg);color:var(--pmuted);display:flex;font-size:12px;height:100%;justify-content:center;padding:16px;text-align:center}.basic-sim-toggle{display:inline-flex;gap:2px;padding:2px;margin-right:auto;border-radius:8px;border:1px solid var(--line);background:var(--panel-2)}.basic-sim-toggle-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:600;cursor:pointer}.basic-sim-toggle-btn.is-active{background:var(--panel);color:var(--ink);box-shadow:var(--shadow-sm)}.basic-perc{display:flex;flex-direction:column;height:100%;gap:6px}.basic-perc-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.basic-perc-tab{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:10px;border:1px solid var(--pline);background:var(--ppane);color:var(--pmuted);font-size:13.5px;font-weight:700;cursor:pointer}.basic-perc-tab.is-active{border-color:var(--blue);color:var(--ptext);background:color-mix(in srgb,var(--rb-gold) 14%,var(--ppane))}.basic-perc-dot{width:9px;height:9px;margin-left:auto;border-radius:50%;background:var(--pmuted);opacity:.4}.basic-perc-dot.is-live{background:var(--green);opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 25%,transparent)}.basic-perc-scope{flex:1 1;min-height:0;position:relative;overflow:hidden;border-radius:10px;border:1px solid var(--pline);background:var(--pscope)}.basic-perc-empty,.basic-perc-offline{display:flex;align-items:center;justify-content:center;height:100%;padding:24px;text-align:center;color:var(--muted);font-size:14px}@media (prefers-reduced-motion:reduce){.basic-perc-tab,.basic-sim-toggle-btn{transition:none}}.perc-pane{background:var(--ppane);border:1px solid var(--pline);border-radius:8px;flex:1 1;min-height:0;overflow:hidden;position:relative}.perc-pane-head{align-items:center;display:flex;gap:6px;left:0;padding:6px 7px;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.perc-pane-head>*{pointer-events:auto}.perc-pane-select{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--ptext);cursor:pointer;font-size:12px;font-weight:600;max-width:28%;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap;width:28%}.perc-pane-select:focus,.perc-pane-select:hover{background:var(--ppane);border-color:var(--pline);box-shadow:var(--shadow-sm)}.perc-pane-select option{background:var(--ppane);color:var(--ptext)}.perc-split-btn{background:var(--ppane);border:1px solid var(--pline);border-radius:6px;box-shadow:var(--shadow-sm);color:var(--pmuted);cursor:pointer;font-size:13px;line-height:1;margin-left:auto;padding:4px 9px}.perc-split-btn:hover{border-color:var(--grey-hover);color:var(--ptext)}.perc-pane-body{bottom:0;left:0;overflow:auto;padding:38px 8px 8px;position:absolute;right:0;top:0}.perc-pane-body.is-scope{overflow:hidden;padding:0}.perc-scope{height:100%;position:relative;width:100%}.perc-scope-center,.perc-scope-empty{align-items:center;display:flex;justify-content:center}.perc-scope-empty{color:var(--pmuted);font-size:12px;height:100%;padding:16px;text-align:center}.perc-dial{display:block;height:100%;width:100%}.perc-cam-img{display:block;max-height:100%;max-width:100%;object-fit:contain}.perc-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:var(--pbg);background:color-mix(in srgb,var(--pbg) 74%,transparent);border:1px solid var(--pline);border-radius:6px;bottom:8px;color:var(--pmuted);display:flex;flex-direction:column;font-size:11px;gap:1px;left:8px;line-height:1.5;padding:5px 8px;pointer-events:none;position:absolute}.perc-overlay b{color:var(--ptext);font-family:var(--font-mono,ui-monospace,monospace)}.perc-head-hz{color:var(--pmuted);font-size:10px;white-space:nowrap}.perc-dot{background:var(--pmuted);border-radius:50%;flex:0 0 auto;height:8px;opacity:.45;width:8px}.perc-dot.is-live{background:var(--green);box-shadow:0 0 0 2px rgba(34,197,94,.25);opacity:1}.perc-empty{color:var(--pmuted);font-size:12px;padding:10px 2px}.perc-canvas{display:block;height:100%;inset:0;position:absolute}.perc-canvas,.perc-topics-filter{background:var(--pscope);width:100%}.perc-topics-filter{border:1px solid var(--pline);border-radius:6px;color:var(--ptext);font-size:12px;margin-bottom:6px;padding:5px 8px}.perc-topic-item{align-items:center;background:none;border:0;border-radius:4px;color:var(--ptext);cursor:pointer;display:flex;font:inherit;gap:8px;padding:4px 6px;text-align:left;width:100%}.perc-topic-item:hover{background:var(--pscope)}.perc-topic-item.is-sel{background:rgba(37,99,235,.16)}.perc-topic-name{font-family:var(--font-mono,ui-monospace,monospace);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.perc-topic-type{margin-left:auto}.perc-topic-hz,.perc-topic-type{color:var(--pmuted);font-size:10px}.perc-echo{background:var(--pscope);color:var(--ptext);flex:1 1 auto;font-family:var(--font-mono,ui-monospace,monospace);font-size:11px;margin-top:6px;min-height:0;overflow:auto;padding:8px;white-space:pre-wrap;word-break:break-word}.perc-echo,.perc-graph-node{border:1px solid var(--pline);border-radius:6px}.perc-graph-node{margin-bottom:6px;padding:6px 8px}.perc-graph-name{color:var(--ptext);font-family:var(--font-mono,ui-monospace,monospace);font-size:12px;font-weight:600}.perc-graph-io{color:var(--pmuted);font-size:11px;margin-top:3px}.perc-graph-io .perc-pub{color:var(--blue)}.perc-graph-io .perc-sub{color:var(--green)}.perc-plot-pick{background:var(--pscope);border:1px solid var(--pline);border-radius:6px;color:var(--ptext);font-size:12px;margin-bottom:6px;max-width:100%;padding:4px 7px}.perc-plot-pick option{background:var(--ppane);color:var(--ptext)}.perc-topics-split{display:flex;gap:8px;height:100%;min-height:0}.perc-topics-list{display:flex;flex:0 0 42%;flex-direction:column;min-height:0;min-width:130px}.perc-topic-items{overflow-y:auto}.perc-topic-items,.perc-topics-detail{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.perc-topics-detail{min-width:0}.perc-detail-head{align-items:center;border-bottom:1px solid var(--pline);display:flex;gap:8px;padding-bottom:5px}.perc-graph-list{display:flex;flex-direction:column}.perc-plot-controls{display:flex;flex-wrap:wrap;gap:6px}.perc-plot-chart{height:240px;max-height:60vh;width:100%}.pro-statusbar{align-items:center;background:var(--panel,#fff);border:1px solid var(--line,#e3e6ea);border-radius:8px;display:flex;font-size:11px;gap:10px;overflow:hidden;padding:5px 10px}.pro-status-goals{align-items:center;color:var(--muted,#6b7280);display:inline-flex;gap:6px;white-space:nowrap}.pro-status-dot{background:var(--muted);border-radius:50%;display:inline-block;height:7px;width:7px}.pro-status-dot.ok{background:var(--green)}.pro-status-chip{background:var(--panel-2);border-radius:6px;color:#444441;font-size:10.5px;padding:2px 8px;white-space:nowrap}.pro-status-chip.chip-pass{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}.pro-status-chip.chip-fail{background:color-mix(in srgb,var(--amber) 18%,transparent);color:var(--amber)}.pro-status-telemetry{color:var(--muted,#6b7280);font-family:var(--font-mono,monospace);margin-left:auto;white-space:nowrap}.terminal-output{background:var(--dark);border-radius:6px;color:#d0d5dd;font-size:12px;max-height:240px;min-height:140px;overflow:auto;padding:12px}.terminal-output .muted{color:#98a2b3}.terminal-output code{background:#454545;border-radius:4px;color:#e4e7ec;padding:0 4px}.terminal-entry{margin-bottom:10px}.terminal-command{color:#f2f4f7;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.terminal-prompt{color:var(--blue);font-weight:700;margin-right:4px}.terminal-stream{color:#d0d5dd;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;margin:4px 0 0;white-space:pre-wrap;word-break:break-word}.terminal-stderr{color:#fca5a5}.terminal-error{color:#fda29b}.terminal-muted{color:#98a2b3}.terminal-input-row{align-items:center;background:var(--dark);border-radius:6px;display:flex;gap:8px;padding:6px 10px}.terminal-input{background:transparent;border:0;color:#f2f4f7;flex:1 1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;height:30px;outline:none}.terminal-input::placeholder{color:var(--muted)}.context-menu{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px rgba(16,24,40,.18);display:grid;grid-gap:2px;gap:2px;min-width:168px;padding:5px;position:fixed;z-index:60}.context-item{background:transparent;border:0;border-radius:5px;color:var(--muted);font-size:13px;font-weight:600;height:32px;justify-content:flex-start;padding:0 9px;width:100%}.context-item:hover:not(:disabled){background:var(--bg)}.context-danger{color:var(--red)}.context-danger:hover:not(:disabled){background:#fdecea}.diagnosis{background:color-mix(in srgb,var(--amber) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--amber) 32%,var(--panel));border-radius:8px;padding:10px 12px}.diagnosis-title{align-items:center;color:var(--red);display:flex;font-size:12px;font-weight:700;gap:6px;margin:0 0 6px;text-transform:uppercase}.diagnosis ul{margin:0;padding-left:18px}.diagnosis li{color:var(--muted);font-size:13px;line-height:1.5}.feedback-list{display:grid;grid-gap:6px;gap:6px}.feedback-item{align-items:flex-start;background:color-mix(in srgb,var(--amber) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--amber) 30%,var(--panel));border-radius:7px;color:var(--ink);display:flex;font-size:13px;gap:8px;line-height:1.45;overflow-wrap:anywhere;padding:8px 10px}.feedback-item svg{color:var(--amber);flex:0 0 auto;margin-top:1px}.attempts-heading{border-top:1px solid var(--line);margin-top:6px}.attempt-list{display:grid;grid-gap:6px;gap:6px}.attempt-row-wrap{align-items:stretch;background:#f8fafc;border:1px solid var(--line);border-radius:7px;display:flex;gap:0;overflow:hidden}.attempt-row-wrap.selected{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.attempt-row{align-items:center;background:transparent;border:0;border-radius:0;color:var(--ink);flex:1 1;gap:9px;justify-content:flex-start;min-width:0;padding:8px 10px}.attempt-row:hover{background:var(--bg)}.attempt-badge{align-items:center;border-radius:5px;display:inline-flex;font-size:12px;font-weight:700;gap:4px;padding:3px 7px}.attempt-badge.passed{background:#e8f7f0;color:var(--green)}.attempt-badge.error,.attempt-badge.failed{background:#fdecea;color:var(--red)}.attempt-meta{display:grid;grid-gap:1px;gap:1px;min-width:0;text-align:left}.attempt-meta strong{font-size:13px}.attempt-meta time{color:var(--muted);font-size:11px}.attempt-replay{background:transparent;border:0;border-left:1px solid var(--line);border-radius:0;color:var(--blue);flex:0 0 auto;padding:0 11px}.attempt-replay:hover{background:#faf3df}.replay-panel{display:grid;grid-gap:12px;gap:12px;padding:4px}.replay-controls{align-items:center;display:flex;gap:12px}.replay-verdict{border-radius:5px;flex:0 0 auto;font-size:12px;font-weight:700;padding:4px 9px}.replay-verdict.pass{background:#e8f7f0;color:var(--green)}.replay-verdict.fail{background:#fdecea;color:var(--red)}.replay-live{align-items:center;background:#fee2e2;border-radius:5px;color:var(--red);display:inline-flex;flex:0 0 auto;font-size:11px;font-weight:800;letter-spacing:.04em;padding:4px 8px}.replay-slider{flex:1 1;accent-color:var(--blue);height:4px}.replay-time{color:var(--muted);flex:0 0 auto;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.replay-score-bar{align-items:flex-end;background:#0f172a;border-radius:6px;display:flex;gap:1px;height:64px;overflow:hidden;padding:4px}.replay-tick{background:#475467;border:0;border-radius:1px;flex:1 1;min-width:0;opacity:.55;padding:0}.replay-tick.pass{background:#34d399}.replay-tick.fail{background:#fb7185}.replay-tick.active{opacity:1;outline:1px solid #ffffff}.replay-body{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.replay-col-title{align-items:center;color:var(--muted);display:flex;font-size:11px;font-weight:700;gap:5px;margin:0 0 6px;text-transform:uppercase}.replay-telemetry{border-top:1px solid var(--line);border-radius:7px;border:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden}.replay-telemetry span{text-transform:capitalize}.replay-criteria{display:grid;grid-gap:6px;gap:6px}@media (max-width:900px){.replay-body{grid-template-columns:1fr}}.lab-shell{display:flex;flex-direction:column;gap:16px;min-height:100vh;padding:18px 4vw 48px}.lab-library-topbar{align-items:flex-end;border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding-bottom:14px}.lab-layout{align-items:start;display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) 360px}.lab-catalog{display:flex;flex-direction:column;gap:14px}.lab-filter-tabs{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.lab-filter-tab{background:var(--panel);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;font-weight:700;height:30px;padding:0 14px}.lab-filter-tab.selected{background:var(--rb-gold);border-color:var(--rb-gold);color:#2b2b2b}.lab-concept-clear{background:var(--panel-2);border:1px solid var(--blue);border-radius:999px;color:var(--blue);font-size:12px;font-weight:700;height:30px;padding:0 12px}.lab-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.lab-filterbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.lab-search{position:relative;width:200px}.lab-search>svg{color:var(--muted);left:10px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.lab-search input{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:13px;height:36px;padding:0 10px 0 32px;width:100%}.lab-select{font-size:13px;max-width:190px;width:auto}.lab-count{color:var(--muted);font-size:12px;margin-left:auto;white-space:nowrap}.lab-empty-state{align-items:flex-start;display:flex;flex-direction:column;gap:10px}.lab-gallery-grid{display:grid;grid-gap:20px;gap:20px;grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:1200px){.lab-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:820px){.lab-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.lab-gcard{align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;height:auto;overflow:hidden;padding:0;text-align:left;white-space:normal;transition:border-color .15s,box-shadow .15s,transform .15s}.lab-gcard:hover{border-color:var(--blue);box-shadow:0 0 0 2px rgba(184,134,11,.12);transform:translateY(-2px)}.lab-gcard-tile{align-items:center;background:var(--panel-2);border-bottom:1px solid var(--line);display:flex;flex-shrink:0;height:104px;justify-content:center;position:relative}.lab-gcard-tile>svg{color:var(--muted);opacity:.85}.lab-gcard-tile.fam-air{background:rgba(120,160,210,.15)}.lab-gcard-tile.fam-arm{background:rgba(184,134,11,.14)}.lab-gcard-tile.fam-aqua{background:rgba(70,150,150,.15)}.lab-gcard-tile.fam-legged{background:rgba(150,120,185,.15)}.lab-gcard-badge{position:absolute;right:8px;top:8px}.lab-gcard-body{display:flex;flex:1 1 auto;flex-direction:column;gap:8px;padding:12px 14px}.lab-gcard-title{font-size:14px;font-weight:800;line-height:1.3;margin:0;overflow-wrap:break-word}.lab-gcard-meta{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:12px;gap:8px;margin-top:auto}.lab-gcard-meta>span{align-items:center;display:inline-flex;gap:4px}.modal-panel:has(.lab-modal){max-width:460px;padding:0;width:95vw}.lab-modal{display:flex;flex-direction:column;max-height:86vh;overflow:hidden}.lab-modal-banner{align-items:center;background:var(--panel-2);display:flex;flex-shrink:0;height:148px;justify-content:center;position:relative}.lab-modal-banner.fam-air{background:rgba(120,160,210,.15)}.lab-modal-banner.fam-arm{background:rgba(184,134,11,.14)}.lab-modal-banner.fam-aqua{background:rgba(70,150,150,.15)}.lab-modal-banner.fam-legged{background:rgba(150,120,185,.15)}.lab-modal-banner>svg{color:var(--muted);opacity:.9}.lab-modal-close{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:999px;color:var(--ink);cursor:pointer;display:flex;height:30px;justify-content:center;position:absolute;right:10px;top:10px;width:30px}.lab-modal-body{overflow-y:auto;padding:16px 20px 20px}.lab-modal .lab-detail-content{padding:0}.lab-card{align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--ink);display:flex;flex-direction:column;gap:8px;height:auto;padding:14px;text-align:left;white-space:normal}.lab-card.selected,.lab-card:hover{border-color:var(--blue);box-shadow:0 0 0 2px rgba(184,134,11,.12)}.lab-card-head{align-items:center;display:flex;gap:8px;justify-content:space-between}.lab-card-head h3{font-size:14px;font-weight:800;margin:0}.lab-card-summary{color:var(--muted);font-size:12px;line-height:1.4;margin:0}.lab-card-meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:12px}.lab-card-meta span{align-items:center;display:inline-flex;font-size:11px;font-weight:700;gap:4px;text-transform:capitalize}.lab-card-concepts{display:flex;flex-wrap:wrap;gap:6px}.lab-chip{background:var(--panel-2);border:1px solid transparent;border-radius:999px;color:var(--muted);font-size:11px;font-weight:700;padding:3px 8px}.lab-chip-button{cursor:pointer;height:auto}.lab-chip-button:hover{background:var(--panel-2);border-color:var(--blue);color:var(--blue)}.lab-diff{border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.02em;padding:3px 8px;text-transform:uppercase}.diff-beginner{background:#e7f6ef;color:var(--green)}.diff-intermediate{background:#fef3e2;color:var(--amber)}.diff-advanced{background:#fdecec;color:var(--red)}:root[data-theme=dark] .lab-chip{background:rgba(255,255,255,.09);border-color:transparent;color:#d2d2cd}:root[data-theme=dark] .lab-chip-button:hover{background:rgba(255,217,102,.18);border-color:var(--blue);color:var(--blue)}:root[data-theme=dark] .diff-beginner{background:rgba(76,175,125,.18);color:#74d6a3}:root[data-theme=dark] .diff-intermediate{background:rgba(216,177,74,.2);color:#ecca6b}:root[data-theme=dark] .diff-advanced{background:rgba(232,116,106,.18);color:#f1958c}.lab-detail{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;position:-webkit-sticky;position:sticky;top:18px}.lab-detail-content{display:flex;flex-direction:column;gap:14px}.lab-detail-head{display:flex;flex-direction:column;gap:8px}.lab-detail-head h2{font-size:19px;font-weight:800;margin:0}.lab-detail-head .lab-diff{align-self:flex-start}.lab-detail-summary{color:var(--muted);font-size:13px;line-height:1.45;margin:0}.lab-start-button{background:var(--rb-gold);border-color:var(--rb-gold);color:#2b2b2b;height:40px;width:100%}.lab-start-button:hover{background:var(--rb-red-deep);border-color:var(--rb-red-deep);color:#2b2b2b}.lab-detail-meta{display:flex;flex-wrap:wrap;gap:8px}.lab-detail-section{border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;padding-top:12px}.lab-detail-section h4{align-items:center;color:var(--ink);display:flex;font-size:12px;font-weight:800;gap:6px;margin:0;text-transform:uppercase}.lab-detail-section p{line-height:1.5;margin:0}.lab-detail-section p,.lab-empty{color:var(--muted);font-size:13px}.lab-empty{padding:12px 4px}@media (max-width:900px){.lab-layout{grid-template-columns:1fr}.lab-detail{position:static}.lab-grid{grid-template-columns:1fr}}.app-shell{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100vh}.app-shell.rail-collapsed{grid-template-columns:58px minmax(0,1fr)}.rail-collapsed .app-rail{align-items:center;padding:14px 8px}.rail-collapsed .app-rail-brandname,.rail-collapsed .app-rail-label,.rail-collapsed .app-rail-soon,.rail-collapsed .user-avatar-name{display:none}.rail-collapsed .app-rail-link{justify-content:center;padding:9px 0}.app-rail-logo-toggle,.rail-collapsed .user-avatar-btn,.rail-collapsed .user-menu-wrap{justify-content:center;width:100%}.app-rail-logo-toggle{align-items:center;background:transparent;border:0;border-radius:8px;cursor:pointer;display:flex;height:38px;padding:0;position:relative}.app-rail-logo-toggle:hover{background:#454545}.app-rail-logo-default,.app-rail-logo-expand{align-items:center;display:flex;justify-content:center}.app-rail-logo-expand{background:transparent;color:#fff;display:none}.app-rail-logo-toggle:hover .app-rail-logo-default{display:none}.app-rail,.app-rail-logo-toggle:hover .app-rail-logo-expand{display:flex}.app-rail{background:var(--dark);border-right:1px solid #454545;color:#c9c9c6;flex-direction:column;gap:6px;height:100vh;padding:14px 10px;position:-webkit-sticky;position:sticky;top:0;white-space:nowrap;z-index:1000}.rail-collapsed .app-rail-head{justify-content:center}.app-rail-head{align-items:center;display:flex;gap:4px;justify-content:space-between;margin-bottom:12px}.app-rail-head img{height:24px;width:auto}.app-rail-collapse{align-items:center;background:transparent;border:0;border-radius:7px;color:#94a3b8;cursor:pointer;display:flex;flex:none;height:30px;justify-content:center;padding:0;width:30px}.app-rail-collapse:hover{background:#454545;color:#fff}.app-rail-brand{align-items:center;color:#fff;display:flex;gap:10px;padding:4px 8px}.app-rail-brand:hover{text-decoration:none}.app-rail-mark{background:var(--blue);border-radius:7px;color:#fff;font-size:14px;font-weight:900;padding:4px 9px}.app-rail-brandname{color:#fff;font-size:15px;font-weight:800}.app-rail-group{display:flex;flex-direction:column;gap:4px}.app-rail-spacer{flex:1 1}.app-rail-link{align-items:center;border-radius:8px;color:#c9c9c6;display:flex;font-size:13px;font-weight:700;gap:10px;padding:9px 10px;text-decoration:none}.app-rail-link:hover{background:#454545;color:#fff;text-decoration:none}.app-rail-link.selected{background:#4f4f4f;color:#fff}.app-rail-label{flex:1 1}.app-rail-soon{background:#334155;border-radius:999px;color:#c9c9c6;font-size:9px;font-weight:800;letter-spacing:.04em;padding:2px 6px;text-transform:uppercase}.app-outlet{min-height:100vh;min-width:0}.coming-soon{align-items:center;color:var(--muted);display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:80vh;padding:24px;text-align:center}.coming-soon h1{color:var(--ink);margin:0}.coming-soon p{max-width:420px}@media (max-width:720px){.app-shell{grid-template-columns:56px minmax(0,1fr)}.app-rail-brandname,.app-rail-label,.app-rail-soon{display:none}.app-rail-link{justify-content:center}}.robot-labs-button{align-items:center;display:inline-flex;gap:8px;justify-content:center;width:100%}.modal-overlay{background:rgba(16,24,40,.55);display:grid;inset:0;padding:24px;place-items:center;position:fixed;z-index:50}.modal-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 60px rgba(16,24,40,.35);display:flex;flex-direction:column;max-height:85vh;overflow:hidden;width:min(960px,100%)}.modal-header{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:8px;justify-content:space-between;padding:14px 16px}.modal-header h2{font-size:16px;margin:0}.modal-back{align-items:center;background:transparent;border:0;color:var(--ink);display:inline-flex;font-weight:700;gap:6px;padding:4px 6px}.modal-back:hover{color:var(--blue)}.modal-close{align-items:center;background:transparent;border:0;color:var(--muted);display:inline-flex;padding:4px}.modal-close:hover{color:var(--ink)}.modal-body{overflow:auto;padding:16px}.modal-lab-layout{align-items:start;display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(0,1fr) 320px}.modal-lab-catalog{display:flex;flex-direction:column;gap:12px;min-width:0}.modal-lab-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.modal-lab-detail{border-left:1px solid var(--line);padding-left:16px}@media (max-width:680px){.modal-lab-layout{grid-template-columns:minmax(0,1fr)}.modal-lab-detail{border-left:0;padding-left:0}}.auth-panel{display:flex;flex-direction:column;gap:12px;text-align:left}.auth-panel h1{margin:4px 0 6px;font-size:22px}.auth-field{display:grid;grid-gap:5px;gap:5px}.auth-field span{color:var(--muted);font-size:12px;font-weight:700}.auth-field input{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:14px;height:38px;padding:0 11px;width:100%}.auth-field input:focus{border-color:var(--blue);outline:none}.auth-panel>button[type=submit]{align-items:center;display:inline-flex;gap:7px;justify-content:center;height:40px;margin-top:4px}.auth-error{background:#fef3f2;border:1px solid #fecdca;border-radius:6px;color:var(--red)}.auth-error,.auth-notice{font-size:13px;padding:8px 10px}.auth-notice{background:#faf3df;border:1px solid var(--blue);border-radius:6px;color:#8a6d1a}.auth-toggle{color:var(--muted);font-size:13px;margin:2px 0 0}.link-button{background:none;border:0;color:var(--blue);cursor:pointer;font-size:13px;font-weight:700;height:auto;padding:0}.auth-loading{align-items:center;color:var(--muted);display:flex;flex-direction:column;gap:10px;justify-content:center;min-height:60vh}.auth-loading p{font-size:13px;margin:0}.auth-loading .auth-retry{background:transparent;border:1px solid rgba(127,127,127,.4);border-radius:8px;color:inherit;cursor:pointer;font-size:13px;padding:6px 16px}.auth-loading .auth-retry:disabled{cursor:default;opacity:.6}.user-menu-wrap{border-top:1px solid rgba(255,255,255,.08);margin-top:4px;padding:6px 0 8px;position:relative}.user-avatar-btn{align-items:center;background:transparent;border:0;border-radius:8px;box-sizing:border-box;color:#e5e9f0;cursor:pointer;display:flex;font-size:13px;gap:10px;height:auto;justify-content:flex-start;padding:9px 10px;text-align:left;transition:background .15s;white-space:normal;width:100%}.user-avatar-btn:hover{background:#454545}.user-avatar-circle{align-items:center;background:var(--rb-gold);border-radius:50%;color:#2b2b2b;display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:28px;justify-content:center;width:28px}.user-avatar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-popover{background:var(--panel);border:1px solid var(--line);border-radius:8px;bottom:calc(100% + 4px);box-shadow:0 4px 16px rgba(0,0,0,.14);left:0;min-width:160px;position:absolute;right:0;z-index:200}.user-popover-header{border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;padding:8px 12px 7px;text-transform:uppercase}.user-popover-item{align-items:center;background:transparent;border:0;border-radius:0;box-sizing:border-box;color:var(--ink);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:10px;height:auto;justify-content:flex-start;padding:9px 12px 9px 10px;text-decoration:none;transition:background .12s;white-space:normal;width:100%}.user-popover-item:hover{background:var(--panel-2)}.user-popover-item:first-of-type{border-radius:0}.user-popover-item:last-of-type{border-radius:0 0 7px 7px}.user-popover-signout{color:var(--red)}.user-popover-sub{position:relative}.user-popover-sub>.user-popover-item{justify-content:flex-start}.user-popover-chev{margin-left:auto;color:var(--muted)}.user-popover-submenu{position:absolute;left:100%;top:-6px;min-width:156px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.14);padding:4px 0;z-index:210;opacity:0;visibility:hidden;transform:translateX(-3px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease;transition-delay:.4s}.user-popover-submenu:before{content:"";position:absolute;top:-8px;bottom:-8px;left:-18px;width:18px}.user-popover-sub:focus-within .user-popover-submenu,.user-popover-sub:hover .user-popover-submenu,.user-popover-submenu:hover{opacity:1;visibility:visible;transform:translateX(0);transition-delay:0s}.user-popover-check{margin-left:auto;color:var(--blue)}.profile-shell{gap:16px;padding:20px}.profile-card,.profile-shell{display:flex;flex-direction:column}.profile-card{gap:12px;max-width:520px}.profile-row{align-items:center;color:var(--ink);display:flex;font-size:14px;gap:9px}.profile-hint{color:var(--muted);font-size:13px;margin:4px 0 0}.not-found-screen{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:70vh;padding:24px;text-align:center}.not-found-screen h1{font-size:22px;margin:0}.not-found-screen p{color:var(--muted);margin:0}.not-found-link{color:var(--blue);font-weight:700;margin-top:6px;text-decoration:none}.course-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.course-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--ink);display:flex;flex-direction:column;gap:10px;padding:16px;text-decoration:none;transition:border-color .15s,box-shadow .15s}.course-card:hover{border-color:var(--blue);box-shadow:0 0 0 2px rgba(184,134,11,.12);text-decoration:none}.course-card-head{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.course-card-head h3{font-size:15px;font-weight:800;margin:0}.course-card-summary{color:var(--muted);font-size:12.5px;line-height:1.45;margin:0}.course-card-meta{color:var(--muted);display:flex;flex-wrap:wrap;gap:12px}.course-card-meta span{align-items:center;display:inline-flex;font-size:11px;font-weight:700;gap:4px}.course-progress{align-items:center;display:flex;gap:9px}.progress-bar{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;flex:1 1;height:8px;overflow:hidden}.progress-fill{background:var(--blue);border-radius:999px;height:100%;transition:width .3s ease}.course-progress-label{color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.course-detail-shell{gap:14px}.back-link{align-items:center;color:var(--muted);display:inline-flex;font-size:13px;font-weight:700;gap:5px;text-decoration:none;width:-moz-fit-content;width:fit-content}.back-link:hover{color:var(--blue)}.course-detail-summary{color:var(--muted);font-size:13.5px;line-height:1.5;margin:6px 0 0;max-width:70ch}.course-detail-progress{max-width:520px}.course-detail-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.course-cta{align-items:center;background:var(--rb-gold);border-color:var(--rb-gold);color:#2b2b2b;display:inline-flex;gap:7px;height:40px;padding:0 16px}.course-cta,.course-cta:hover{text-decoration:none}.course-prereq{color:var(--muted);font-size:12.5px;margin:0}.course-prereq a{color:var(--blue);text-transform:capitalize}.course-modules{display:flex;flex-direction:column;gap:16px}.course-module{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.course-module-head{border-bottom:1px solid var(--line);padding:14px 16px}.course-module-head h2{font-size:15px;font-weight:800;margin:0}.course-module-head p{color:var(--muted);font-size:12.5px;margin:4px 0 0}.lesson-list{list-style:none;margin:0;padding:0}.lesson-list li+li{border-top:1px solid var(--line)}.lesson-row{align-items:center;background:transparent;border:0;border-radius:0;color:var(--ink);cursor:pointer;display:flex;font-size:13.5px;font-weight:500;gap:11px;height:auto;justify-content:flex-start;padding:12px 16px;text-align:left;white-space:normal;width:100%}.lesson-check,.lesson-row:hover{background:var(--panel-2)}.lesson-check{align-items:center;border:1px solid var(--line);border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.lesson-check.done{background:var(--green);border-color:var(--green)}.lesson-type{align-items:center;color:var(--muted);display:flex}.lesson-title{flex:1 1}.lesson-action{color:var(--muted);display:flex}.reading-shell{gap:14px}.reading-article{background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--ink);line-height:1.65;max-width:760px;padding:26px 30px}.reading-article h1{font-size:24px;font-weight:800;margin:0 0 14px}.reading-article h2{font-size:18px;font-weight:800;margin:24px 0 10px}.reading-article p{margin:0 0 14px}.reading-article ol,.reading-article ul{margin:0 0 14px;padding-left:22px}.reading-article li{margin:4px 0}.reading-article code{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;padding:1px 5px}.reading-article pre{background:#0f172a;border-radius:8px;color:#e2e8f0;overflow:auto;padding:14px 16px}.reading-article pre code{background:transparent;border:0;color:inherit;padding:0}.reading-article blockquote{border-left:3px solid var(--blue);color:var(--muted);margin:0 0 14px;padding:2px 0 2px 14px}.reading-article a{color:var(--blue)}.reading-actions{max-width:760px}.certificate-shell{align-items:center;gap:14px}.certificate-toolbar{justify-content:space-between}.certificate,.certificate-toolbar{display:flex;max-width:720px;width:100%}.certificate{align-items:center;background:linear-gradient(160deg,#ffffff,#f3f7ff);border:2px solid var(--blue);border-radius:14px;flex-direction:column;gap:6px;padding:44px 40px;text-align:center}.certificate-seal{color:var(--blue);margin-bottom:6px}.certificate-eyebrow{color:var(--blue);font-size:13px;font-weight:800;letter-spacing:.14em;margin:0;text-transform:uppercase}.certificate-line{color:var(--muted);font-size:13px;margin:8px 0 0}.certificate-name{font-size:30px;font-weight:800;margin:4px 0}.certificate-course{color:var(--blue);font-size:20px;font-weight:800;margin:4px 0}.certificate-meta{color:var(--muted);display:flex;font-size:12px;font-weight:600;gap:24px;margin-top:14px}.certificate-brand{color:var(--ink);font-size:14px;font-weight:900;letter-spacing:.04em;margin-top:18px}.profile-section-title{align-items:center;display:flex;font-size:14px;font-weight:800;gap:7px;margin:0 0 4px}.certificate-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.certificate-list-item{align-items:center;border:1px solid var(--line);border-radius:8px;color:var(--ink);display:flex;gap:10px;padding:10px 12px;text-decoration:none}.certificate-list-item:hover{border-color:var(--blue);text-decoration:none}.certificate-list-text{display:flex;flex-direction:column}.certificate-list-text time{color:var(--muted);font-size:11px}@media print{.app-rail,.certificate-toolbar{display:none!important}.app-shell{display:block}}.portfolio-shell{max-width:920px}.role-student{background:var(--panel-2);border-color:var(--blue);color:var(--blue)}.role-admin{background:#fef3e2;border-color:#f4d6a8;color:var(--amber)}.stat-row{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));max-width:920px}.stat-tile{align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:2px;padding:14px 16px}.stat-value{color:var(--ink);font-size:22px;font-weight:800}.stat-label{color:var(--muted);font-size:12px;font-weight:600}.portfolio-section{background:var(--panel);border:1px solid var(--line);border-radius:12px;max-width:920px;padding:16px 18px}.skill-list{display:flex;flex-direction:column;gap:9px;margin-top:6px}.skill-row{align-items:center;display:grid;grid-gap:12px;gap:12px;grid-template-columns:200px 1fr 44px}.skill-name{color:var(--ink);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-count{color:var(--muted);font-size:12px;font-weight:700;text-align:right}.badge-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-top:6px}.badge{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:5px;padding:16px 12px 14px;text-align:center}.badge,.badge-icon{align-items:center;display:flex}.badge-icon{background:var(--blue);border-radius:50%;color:#fff;height:44px;justify-content:center;margin-bottom:4px;width:44px}.badge.locked{opacity:.62}.badge.locked .badge-icon{background:#aeb8c7}.badge-title{color:var(--ink);font-size:13px;font-weight:800}.badge-desc{color:var(--muted);font-size:11px;line-height:1.35}.badge-meta{color:var(--green);font-size:11px;font-weight:700;margin-top:2px}.badge-progress{background:var(--line);border-radius:999px;height:5px;margin-top:6px;overflow:hidden;width:100%}.badge-progress-fill{background:#aeb8c7;height:100%}.profile-owner-banner{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--muted);display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:8px 14px}.profile-banner-link{align-items:center;color:var(--blue);display:inline-flex;font-size:13px;gap:3px;text-decoration:none;white-space:nowrap}.profile-banner-link:hover{text-decoration:underline}.profile-identity{align-items:center;display:flex;gap:18px;padding:4px 0}.profile-avatar-wrap{flex-shrink:0}.profile-avatar{align-items:center;background:var(--panel-2);border:2.5px solid var(--rb-gold);border-radius:50%;color:var(--ink);display:flex;font-size:26px;font-weight:700;height:72px;justify-content:center;width:72px}.profile-identity-info{display:flex;flex-direction:column;gap:5px;min-width:0}.profile-identity-name-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.profile-identity-name{font-size:20px;font-weight:800}.profile-tier-badge{background:var(--rb-gold);border-radius:5px;color:var(--dark);font-size:11px;font-weight:700;padding:2px 7px}.profile-role-pill{font-size:11px}.profile-identity-meta{color:var(--muted);font-size:13px}.profile-identity-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:2px}.profile-section-head{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:10px}.profile-section-head .profile-section-title{margin-bottom:0}.profile-toggle-btn{background:none;border:1px solid var(--line);border-radius:5px;color:var(--muted);cursor:pointer;font-size:12px;padding:3px 10px}.profile-toggle-btn:hover{border-color:var(--blue);color:var(--blue)}.profile-count-muted{color:var(--muted);font-size:13px;font-weight:400;margin-left:6px}.profile-fav-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.profile-fav-card{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:7px;padding:16px 12px;text-align:center}.profile-fav-icon{border-radius:50%;height:44px;width:44px}.profile-fav-icon,.profile-fav-replay-thumb{align-items:center;background:var(--panel-2);color:var(--muted);display:flex;justify-content:center}.profile-fav-replay-thumb{border-radius:6px;height:52px;position:relative;width:100%}.profile-fav-duration{background:rgba(0,0,0,.5);border-radius:3px;bottom:5px;color:#fff;font-size:11px;padding:1px 5px;position:absolute;right:6px}.profile-fav-name{color:var(--ink);font-size:13px;font-weight:700;line-height:1.3}.profile-fav-sub{color:var(--muted);font-size:11px}.profile-fav-empty{align-items:center;background:var(--panel-2);border:1.5px dashed var(--line);border-radius:10px;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;font-size:12px;gap:8px;justify-content:center;min-height:100px;text-decoration:none;transition:border-color .15s,color .15s}.profile-fav-empty:hover{border-color:var(--blue);color:var(--blue)}.profile-badge-strip{display:flex;flex-direction:column;gap:8px}.profile-badge-chip{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;padding:8px 12px}.profile-badge-chip-icon{align-items:center;color:var(--blue);display:flex;flex-shrink:0}.profile-badge-chip-title{color:var(--ink);font-size:13px;font-weight:700}.profile-badge-chip-date{color:var(--muted);font-size:11px;margin-top:2px}.portfolio-settings{max-width:520px}.handle-input-row{align-items:center;display:flex;gap:6px}.handle-prefix{color:var(--muted);font-size:13px;font-weight:700}.handle-input-row input{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--ink);flex:1 1;font-size:14px;height:36px;padding:0 10px}.handle-input-row input:focus{border-color:var(--blue);outline:none}.visibility-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.public-portfolio-shell{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:940px;min-height:100vh;padding:28px 24px 64px}.public-portfolio-header{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;justify-content:space-between;padding:18px 20px}.public-portfolio-header h1{font-size:24px;margin:2px 0}.public-portfolio-sub{color:var(--muted);font-size:13px;margin:0}.public-portfolio-footer{color:var(--muted);font-size:12px;padding-top:8px;text-align:center}.portfolio-private{align-items:center;display:flex;flex-direction:column;gap:10px;justify-content:center;min-height:70vh;text-align:center}.portfolio-private h1{font-size:22px;margin:0}.portfolio-private p{color:var(--muted);margin:0}@media (max-width:640px){.skill-row{grid-template-columns:130px 1fr 38px}}.tutor-panel{flex-direction:column;height:100%;padding:12px}.tutor-messages,.tutor-panel{display:flex;gap:10px;min-height:0}.tutor-messages{flex:1 1;flex-direction:column;overflow-y:auto;padding-right:4px}.tutor-empty{align-items:center;color:var(--muted);display:flex;flex-direction:column;gap:8px;margin:auto;max-width:460px;text-align:center}.tutor-message{display:flex;max-width:88%}.tutor-message.user{align-self:flex-end}.tutor-message.assistant{align-self:flex-start}.tutor-message-body{border-radius:10px;font-size:13px;line-height:1.5;padding:9px 12px}.tutor-message.user .tutor-message-body{background:var(--msg-user-bg);color:var(--ink)}.pro-tutor-pane .tutor-message.assistant .tutor-message-body{background:var(--panel-2)}.tutor-message.assistant .tutor-message-body{background:var(--panel);border:1px solid var(--line);color:var(--ink)}.tutor-mission{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex:none;font-size:12.5px}.tutor-mission>summary{align-items:center;color:var(--muted);cursor:pointer;display:flex;font-weight:700;gap:6px;list-style:none;padding:8px 10px}.tutor-mission[open]>summary{border-bottom:1px solid var(--line)}.tutor-mission p{color:var(--ink);margin:8px 10px 0}.tutor-mission pre{margin:8px 0 4px;max-height:180px;overflow:auto;padding:0 10px 8px;white-space:pre-wrap}.activity-tutor.selected{color:var(--blue)}.tutor-message-body>:first-child{margin-top:0}.tutor-message-body>:last-child{margin-bottom:0}.tutor-message-body p{margin:0 0 8px}.tutor-message-body pre{background:#0f172a;border-radius:6px;color:#e2e8f0;margin:8px 0;overflow-x:auto;padding:8px 10px}.tutor-message-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.tutor-message-body :not(pre)>code{background:rgba(184,134,11,.12);border-radius:4px;padding:1px 4px}.tutor-typing{align-items:center;color:var(--muted);display:flex;gap:6px}.sim-toolbar .is-on{border-color:var(--blue);color:var(--blue)}.sim-toolbar .icon-btn.is-on{background:color-mix(in srgb,var(--blue) 16%,transparent)}.tutor-hint-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tutor-hint-actions button{border-radius:8px;cursor:pointer;font-size:12.5px;font-weight:600;padding:5px 12px}.tutor-hint-yes{background:var(--blue);border:1px solid var(--blue);color:var(--dark)}.tutor-hint-yes:hover{filter:brightness(1.06)}.tutor-hint-no{background:var(--panel);border:1px solid var(--line);color:var(--ink)}.tutor-hint-no:hover{border-color:var(--blue)}.tutor-input-row{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:0 1px 2px rgba(15,23,42,.04);display:flex;gap:6px;margin:8px;padding:4px 5px 4px 14px}.tutor-input-row:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(184,134,11,.16)}.tutor-input{background:none;border:none;color:var(--ink);flex:1 1;font-family:inherit;font-size:13.5px;min-width:0;padding:7px 0}.tutor-input:focus{outline:none}.tutor-input::placeholder{color:var(--muted)}.tutor-send{align-items:center;background:var(--rb-gold,#ffd966);border:none;border-radius:50%;color:#2b2b2b;cursor:pointer;display:inline-flex;flex:none;height:32px;justify-content:center;transition:background .15s ease,transform .1s ease;width:32px}.tutor-send:hover:not(:disabled){background:#f0c84a}.tutor-send:active:not(:disabled){transform:scale(.94)}.tutor-send:disabled{background:var(--panel-2);color:var(--muted);cursor:default}.ask-tutor-btn{align-items:center;background:color-mix(in srgb,var(--blue) 12%,var(--panel));border:1px solid var(--blue);border-radius:8px;color:var(--blue);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:6px}.ask-tutor-btn:hover{background:color-mix(in srgb,var(--blue) 22%,var(--panel))}.admin-dashboard{background:#0f172a;color:#e2e8f0;--fg:#e2e8f0;display:flex;flex-direction:column;height:100%;min-height:100vh;overflow:hidden}.admin-header{padding:20px 24px 0}.admin-title{font-size:20px;font-weight:700;color:var(--fg,#e2e8f0);margin:0 0 16px}.admin-tabs{display:flex;gap:4px;padding:0 24px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.admin-tab{background:none;border:none;border-bottom:2px solid transparent;color:rgba(255,255,255,.55);cursor:pointer;font-size:13px;font-weight:600;margin-bottom:-1px;padding:10px 14px;transition:color .15s,border-color .15s}.admin-tab:hover{color:rgba(255,255,255,.85)}.admin-tab.selected{border-bottom-color:var(--blue);color:#fff}.admin-content{flex:1 1;overflow-y:auto;padding:20px 24px}.admin-loading{align-items:center;color:rgba(255,255,255,.5);display:flex;gap:10px;font-size:14px}.admin-error{color:#f87171;font-size:14px}.admin-empty{color:rgba(255,255,255,.4);font-size:13px}.admin-stats-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-bottom:24px}.admin-stat-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px}.admin-stat-value{font-size:26px;font-weight:700;color:#fff;line-height:1.1}.admin-stat-label{color:rgba(255,255,255,.5);font-size:11px;font-weight:600;margin-top:4px;text-transform:uppercase;letter-spacing:.04em}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;font-size:13px;min-width:600px;width:100%}.admin-th{background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.55);font-size:11px;font-weight:700;letter-spacing:.05em;padding:8px 12px;text-align:left;text-transform:uppercase;white-space:nowrap}.admin-th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.admin-th.sortable:hover{color:rgba(255,255,255,.85)}.admin-tr:hover{background:rgba(255,255,255,.03)}.admin-td{border-bottom:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.8);padding:8px 12px;vertical-align:top}.admin-lab-name{display:flex;flex-direction:column;gap:2px}.admin-lab-slug{font-family:monospace;font-size:12px;color:rgba(255,255,255,.55)}.admin-lab-title{font-weight:600}.admin-criteria-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.admin-criterion{font-size:12px}.admin-criterion-count{color:rgba(255,255,255,.4)}.admin-none{color:rgba(255,255,255,.3)}.admin-email{font-size:12px;font-family:monospace}.admin-role-badge{border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.05em;padding:2px 6px;text-transform:uppercase}.admin-role-admin{background:var(--blue)22;border:1px solid var(--blue);color:var(--blue)}.admin-role-student{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.5)}.admin-session-status{border-radius:4px;font-size:11px;font-weight:700;padding:2px 6px;text-transform:uppercase}.admin-status-running{background:#16a34a22;border:1px solid #16a34a;color:#4ade80}.admin-status-starting{background:#ca8a0422;border:1px solid #ca8a04;color:#fbbf24}.admin-status-error{background:#dc262622;border:1px solid #dc2626;color:#f87171}.admin-status-stopped{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.4)}.admin-section-heading{color:rgba(255,255,255,.7);font-size:13px;font-weight:700;letter-spacing:.04em;margin:24px 0 10px;text-transform:uppercase}.admin-sessions-panel{display:flex;flex-direction:column}.infra-header{align-items:center;display:flex;justify-content:space-between}.infra-back-link{align-items:center;color:rgba(255,255,255,.6);display:inline-flex;gap:6px;font-size:13px;font-weight:600;text-decoration:none}.infra-back-link:hover{color:rgba(255,255,255,.9)}.infra-panel{display:flex;flex-direction:column}.infra-filter-bar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.infra-filter{display:flex;flex-direction:column;gap:4px}.infra-filter>span{color:rgba(255,255,255,.5);font-size:11px;font-weight:600;text-transform:uppercase}.infra-filter select{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#fff;font-size:13px;padding:7px 10px}.infra-chart-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));margin:8px 0 20px}.infra-chart-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;display:flex;flex-direction:column;padding:16px}.infra-chart-head{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:10px}.infra-chart-title{color:#fff;font-size:14px;font-weight:700}.infra-chart-help{color:rgba(255,255,255,.5);font-size:12px;margin-top:2px}.infra-chart-export{align-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:6px;color:rgba(255,255,255,.8);cursor:pointer;display:inline-flex;gap:4px;font-size:12px;padding:5px 9px}.infra-chart-export:hover{background:rgba(255,255,255,.12);color:#fff}.infra-chart-export:disabled{cursor:default;opacity:.4}.infra-chart-body{min-height:240px;width:100%}.infra-chart-skeleton{background:rgba(255,255,255,.04);border-radius:8px;height:240px;width:100%}.infra-alert-strip{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 16px}.infra-alert-strip>span{border-radius:6px;font-size:12px;padding:6px 10px}.infra-alert-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.infra-alert-row{align-items:center;border-radius:8px;display:flex;gap:10px;font-size:13px;padding:10px 12px}.infra-alert-kind{font-size:11px;font-weight:700;text-transform:uppercase;opacity:.8}.infra-sev-info{background:rgba(255,217,102,.13);border-left:3px solid var(--blue);color:var(--amber)}.infra-sev-warning{background:#fbbf2422;border-left:3px solid #fbbf24;color:#fcd34d}.infra-sev-critical{background:#f8717122;border-left:3px solid #f87171;color:#fca5a5}.infra-detail{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);border-radius:12px;margin-top:20px;padding:16px}.infra-link-card{align-items:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#fff;display:flex;gap:12px;margin-top:16px;padding:14px 16px;text-decoration:none;transition:background .12s}.infra-link-card:hover{background:rgba(255,255,255,.1)}.infra-link-card span{display:flex;flex-direction:column}.infra-link-title{font-weight:700}.infra-link-desc{color:rgba(255,255,255,.6);font-size:12px}.infra-actions{display:flex;gap:6px;flex-wrap:wrap}.la-wall{background:#f8717122;border:1px solid #f87171;border-radius:4px;color:#fca5a5;font-size:10px;font-weight:700;margin-left:8px;padding:1px 6px}.ws-queue-cancel{background:transparent;border:1px solid var(--muted,#667085);border-radius:8px;color:var(--muted,#667085);cursor:pointer;font-size:13px;margin-top:10px;padding:6px 12px}.ws-queue-cancel:hover:not(:disabled){border-color:var(--ink,var(--ink));color:var(--ink,var(--ink))}.ws-queue-cancel:disabled{opacity:.5;cursor:default}.challenges-page{max-width:960px;margin:0 auto;padding:32px 24px 64px}.challenges-header{margin-bottom:28px}.challenges-eyebrow{color:var(--accent);font-size:.75rem;font-weight:600;letter-spacing:.08em;margin:0 0 6px;text-transform:uppercase}.challenges-title{align-items:center;display:flex;font-size:1.75rem;font-weight:700;gap:10px;margin:0}.challenges-title-icon{color:var(--accent);flex-shrink:0}.challenges-tabs{border-bottom:1px solid var(--line);display:flex;gap:4px;margin-bottom:24px}.challenges-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;font-size:.875rem;font-weight:500;margin-bottom:-1px;padding:8px 16px;transition:color .15s,border-color .15s}.challenges-tab:hover{color:var(--fg)}.challenges-tab.selected{border-bottom-color:var(--accent);color:var(--fg)}.challenges-empty,.challenges-error,.challenges-loading{color:var(--muted);padding:40px 0;text-align:center}.challenges-loading{align-items:center;display:flex;gap:10px;justify-content:center}.challenges-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.challenge-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--fg);display:flex;flex-direction:column;gap:8px;padding:20px;text-decoration:none;transition:border-color .15s,transform .1s}.challenge-card:hover{border-color:var(--accent);transform:translateY(-2px)}.challenge-card-header{align-items:center;display:flex;gap:8px;justify-content:space-between}.challenge-card-icon{color:var(--accent)}.challenge-card-title{font-size:1.05rem;font-weight:600;margin:0}.challenge-card-desc{color:var(--muted);font-size:.875rem;margin:0}.challenge-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.challenge-meta-badge{background:var(--bg);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.72rem;font-weight:500;padding:2px 10px}.challenge-meta-diff{color:var(--accent)}.challenge-card-stats{color:var(--muted);display:flex;font-size:.8rem;gap:12px;margin-top:auto;padding-top:8px}.challenge-status{border-radius:999px;font-size:.7rem;font-weight:600;padding:2px 10px;text-transform:uppercase}.challenge-status-active{background:rgba(34,197,94,.12);color:#22c55e}.challenge-status-closed{background:var(--bg);color:var(--muted)}.challenge-status-draft{background:rgba(249,115,22,.12);color:#f97316}.challenge-page{max-width:800px;margin:0 auto;padding:32px 24px 64px}.challenge-page-error,.challenge-page-loading{align-items:center;display:flex;flex-direction:column;gap:16px;min-height:200px;justify-content:center}.challenge-breadcrumb{margin-bottom:20px}.challenge-back-link{color:var(--muted);font-size:.875rem;text-decoration:none;transition:color .15s}.challenge-back-link:hover{color:var(--accent)}.challenge-page-header{margin-bottom:32px}.challenge-page-badges{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.challenge-page-title{align-items:center;display:flex;font-size:1.75rem;font-weight:700;gap:10px;margin:0 0 8px}.challenge-page-icon{color:var(--accent);flex-shrink:0}.challenge-page-desc{color:var(--muted);margin:0 0 20px}.challenge-page-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.challenge-enter-btn{background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 22px;text-decoration:none;transition:background .15s,opacity .15s}.challenge-enter-btn:hover{opacity:.88}.challenge-enter-btn:disabled{cursor:not-allowed;opacity:.55}.challenge-entered-badge{background:rgba(34,197,94,.12);border-radius:8px;color:#22c55e;font-size:.9rem;font-weight:600;padding:10px 18px}.challenge-section-heading{font-size:1rem;font-weight:600;letter-spacing:.03em;margin:0 0 12px;text-transform:uppercase}.challenge-my-entry{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-bottom:28px;padding:20px}.challenge-my-stats{display:flex;gap:32px}.challenge-my-stat{display:flex;flex-direction:column;gap:4px}.challenge-my-stat-value{font-size:1.5rem;font-weight:700}.challenge-my-stat-label{color:var(--muted);font-size:.8rem}.challenge-labs-section,.challenge-leaderboard-section,.challenge-rules-section{margin-bottom:32px}.challenge-rules-body{background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:.9rem;line-height:1.7;padding:16px 20px}.challenge-rules-body p{margin:0 0 8px}.challenge-rules-body p:last-child{margin-bottom:0}.challenge-labs-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.challenge-lab-item{display:inline-block}.challenge-lab-link{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--fg);font-size:.85rem;padding:4px 12px;text-decoration:none;text-transform:capitalize;transition:border-color .15s}.challenge-lab-link:hover{border-color:var(--accent)}.challenge-empty{color:var(--muted);font-size:.9rem;padding:24px 0}.leaderboard-table-wrap{border:1px solid var(--line);border-radius:10px;overflow:hidden}.leaderboard-table{border-collapse:collapse;font-size:.875rem;width:100%}.leaderboard-th{background:var(--panel);color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:.04em;padding:10px 14px;text-align:left;text-transform:uppercase}.leaderboard-th,.leaderboard-tr:not(:last-child) td{border-bottom:1px solid var(--line)}.leaderboard-td{padding:11px 14px;vertical-align:middle}.leaderboard-rank-cell{width:60px}.leaderboard-rank-badge{font-size:1.1rem}.leaderboard-rank-num{color:var(--muted);font-size:.875rem;font-weight:600}.leaderboard-participant{font-weight:500}.leaderboard-score{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.leaderboard-concepts{color:var(--muted);font-size:.8rem;max-width:240px}.leaderboard-page{max-width:900px;margin:0 auto;padding:32px 24px 64px}.leaderboard-header{margin-bottom:24px}.leaderboard-eyebrow{color:var(--accent);font-size:.75rem;font-weight:600;letter-spacing:.08em;margin:0 0 6px;text-transform:uppercase}.leaderboard-title{align-items:center;display:flex;font-size:1.75rem;font-weight:700;gap:10px;margin:0}.leaderboard-title-icon{color:var(--accent);flex-shrink:0}.leaderboard-controls{align-items:center;display:flex;gap:12px;margin-bottom:24px}.leaderboard-filter-label{color:var(--muted);font-size:.875rem}.leaderboard-filter-select{background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--fg);font-size:.875rem;padding:8px 12px}.leaderboard-empty,.leaderboard-loading{color:var(--muted);padding:40px 0;text-align:center}.leaderboard-loading{align-items:center;display:flex;gap:10px;justify-content:center}.teacher-dashboard{max-width:1100px;margin:0 auto;padding:32px 24px}.teacher-header{align-items:center;display:flex;gap:12px;margin-bottom:24px}.teacher-header-icon{color:var(--color-accent,var(--blue))}.teacher-title{font-size:1.7rem;font-weight:700;margin:0}.teacher-tabs{border-bottom:1px solid var(--line);display:flex;gap:4px;margin-bottom:24px}.teacher-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);cursor:pointer;font-size:.9rem;padding:8px 16px;transition:color .15s}.teacher-tab:hover{color:var(--ink)}.teacher-tab.active{border-bottom-color:var(--color-accent,var(--blue));color:var(--ink);font-weight:600}.teacher-tab-content{padding-top:4px}.teacher-create-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.teacher-input{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:.9rem;padding:8px 12px;min-width:180px}.teacher-input::placeholder{color:var(--muted)}.teacher-input:focus{border-color:var(--color-accent,var(--blue));outline:none}.teacher-btn-primary{align-items:center;background:var(--rb-gold);border:none;border-radius:6px;color:#2b2b2b;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:6px;padding:8px 18px;transition:opacity .15s}.teacher-btn-primary:hover{opacity:.85}.teacher-btn-primary:disabled{opacity:.5}.teacher-select{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:.9rem;margin-bottom:16px;padding:8px 12px}.teacher-loading{align-items:center;display:flex;gap:8px;padding:32px 0}.teacher-empty,.teacher-loading{color:var(--muted);font-size:.9rem}.teacher-empty{padding:20px 0}.teacher-error{color:#f97171;font-size:.85rem;margin-top:8px}.teacher-classroom-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.teacher-pass-icon{color:#4ade80}.teacher-fail-icon{color:#f87171}.teacher-progress-cell{align-items:center;display:flex;gap:6px}.teacher-progress-score{font-size:.85rem;opacity:.75}.teacher-progress-none{color:var(--muted)}.classroom-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px}.classroom-card-name{cursor:pointer;font-size:1rem;font-weight:600;margin:0 0 4px}.classroom-card-name:hover{color:var(--color-accent,var(--blue))}.classroom-card-desc{color:var(--muted);font-size:.85rem;margin:0 0 10px}.classroom-card-meta{align-items:center;display:flex;gap:12px;margin-bottom:10px}.classroom-card-stat{align-items:center;color:var(--muted);display:flex;font-size:.82rem;gap:4px}.classroom-card-code-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.classroom-card-code-label{color:var(--muted);font-size:.8rem}.classroom-card-code{background:var(--panel-2);border-radius:4px;font-family:monospace;font-size:.85rem;letter-spacing:.04em;padding:2px 8px}.classroom-card-icon-btn{background:none;border:1px solid var(--line);border-radius:4px;color:var(--muted);cursor:pointer;padding:4px 6px;position:relative;transition:color .15s}.classroom-card-icon-btn:hover{color:var(--ink)}.classroom-card-copied{color:#4ade80;font-size:.75rem;left:50%;position:absolute;top:-18px;transform:translateX(-50%)}.assignment-manager{max-width:600px}.assignment-list{list-style:none;margin:0 0 16px;padding:0}.assignment-item{align-items:center;background:var(--panel-2);border-radius:6px;display:flex;gap:10px;margin-bottom:6px;padding:10px 12px}.assignment-slug{flex:1 1;font-family:monospace;font-size:.9rem}.assignment-due{color:var(--muted);font-size:.8rem}.assignment-remove-btn{background:none;border:none;color:#f87171;cursor:pointer;padding:2px}.assignment-remove-btn:hover{color:#fca5a5}.assignment-add-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.classrooms-page{max-width:900px;margin:0 auto;padding:32px 24px}.classrooms-header{align-items:center;display:flex;gap:12px;margin-bottom:24px}.classrooms-header-icon{color:var(--color-accent,var(--blue))}.classrooms-title{font-size:1.7rem;font-weight:700;margin:0}.classroom-join-form{display:flex;gap:8px;margin-bottom:8px}.classroom-join-input{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--ink);flex:1 1;font-size:.9rem;max-width:280px;padding:8px 12px}.classroom-join-input::placeholder{color:var(--muted)}.classroom-join-btn{align-items:center;background:var(--rb-gold);border:none;border-radius:6px;color:#2b2b2b;cursor:pointer;display:flex;font-weight:600;gap:6px;padding:8px 18px;transition:opacity .15s}.classroom-join-btn:hover{opacity:.85}.classroom-join-btn:disabled{opacity:.5}.classroom-join-error{color:#f87171;font-size:.85rem;margin-bottom:12px;margin-top:4px}.classroom-loading{align-items:center;color:var(--muted);display:flex;font-size:.9rem;gap:8px;padding:32px 0}.classroom-empty{color:var(--muted);font-size:.9rem;padding:20px 0}.classroom-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}.classroom-list-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;color:inherit;display:block;padding:16px 20px;text-decoration:none;transition:border-color .15s}.classroom-list-card:hover{border-color:var(--color-accent,var(--blue))}.classroom-list-card-header{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.classroom-list-card-name{font-size:1rem;font-weight:600}.classroom-list-card-teacher{color:var(--muted);font-size:.82rem}.classroom-list-card-progress{background:var(--panel-2);border-radius:4px;height:6px;margin-bottom:4px;overflow:hidden;position:relative}.classroom-progress-bar-fill{background:#4ade80;border-radius:4px;height:100%;transition:width .3s}.classroom-progress-label{color:var(--muted);font-size:.78rem}.classroom-error{color:#f87171;padding:32px 0}.classroom-detail-page{max-width:900px;margin:0 auto;padding:32px 24px}.classroom-detail-header{margin-bottom:24px}.classroom-breadcrumb{align-items:center;color:var(--muted);display:flex;font-size:.85rem;gap:8px;margin-bottom:6px}.classroom-breadcrumb a{color:var(--muted);text-decoration:none}.classroom-breadcrumb a:hover{color:var(--ink)}.classroom-detail-teacher{color:var(--muted);font-size:.9rem;margin:0}.classroom-assignments-section{margin-top:8px}.classroom-assignments-title{font-size:1.1rem;font-weight:600;margin-bottom:14px}.classroom-lab-link{color:inherit;text-decoration:none}.classroom-lab-link:hover{color:var(--color-accent,var(--blue))}.classroom-not-started{color:var(--muted);font-size:.82rem}.join-classroom-page{align-items:center;display:flex;justify-content:center;min-height:60vh;padding:32px 24px}.join-classroom-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;max-width:400px;padding:40px 36px;text-align:center;width:100%}.join-classroom-icon{color:var(--color-accent,var(--blue));margin-bottom:12px}.join-classroom-title{font-size:1.4rem;font-weight:700;margin:0 0 24px}.join-classroom-form{display:flex;flex-direction:column;gap:10px}.join-classroom-input{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:1rem;padding:10px 14px;text-align:center}.join-classroom-input::placeholder{color:var(--muted)}.join-classroom-input:focus{border-color:var(--color-accent,var(--blue));outline:none}.join-classroom-btn{align-items:center;background:var(--rb-gold);border:none;border-radius:6px;color:#2b2b2b;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:10px 0;transition:opacity .15s}.join-classroom-btn:hover{opacity:.85}.join-classroom-btn:disabled{opacity:.5}.join-classroom-error{color:#f87171;font-size:.85rem;margin-top:10px}.billing-page{max-width:760px;margin:0 auto;padding:32px 24px}.billing-header{align-items:center;display:flex;gap:12px;margin-bottom:8px}.billing-header-icon{color:var(--color-accent,var(--blue))}.billing-title{font-size:1.7rem;font-weight:700;margin:0}.billing-intro{color:rgba(255,255,255,.6);font-size:.95rem;margin:0 0 24px}.billing-loading{align-items:center;color:rgba(255,255,255,.5);display:flex;gap:8px;padding:32px 0}.billing-current{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;margin-bottom:24px;padding:20px 22px}.billing-current-row{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:6px 0}.billing-label{color:rgba(255,255,255,.55);font-size:.9rem}.billing-plan-badge{border-radius:999px;font-size:.8rem;font-weight:700;padding:3px 12px;text-transform:uppercase;letter-spacing:.04em}.billing-plan-badge.plan-free{background:rgba(255,255,255,.12);color:#fff}.billing-plan-badge.plan-regular{background:rgba(255,217,102,.2);color:var(--blue)}.billing-plan-badge.plan-pro{background:rgba(255,217,102,.25);color:var(--blue)}.billing-plan-badge.plan-school{background:rgba(74,222,128,.2);color:#86efac}.billing-entitlements{list-style:none;margin:14px 0 0;padding:0}.billing-entitlements li{align-items:center;color:rgba(255,255,255,.75);display:flex;font-size:.9rem;gap:8px;padding:3px 0}.billing-entitlements svg{color:#4ade80}.billing-cancel-btn{background:none;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:rgba(255,255,255,.7);cursor:pointer;font-size:.85rem;margin-top:16px;padding:7px 14px}.billing-cancel-btn:hover{border-color:#f87171;color:#f87171}.billing-cancel-btn:disabled{opacity:.5}.billing-upgrade{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px 22px}.billing-upgrade-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}.billing-subtitle{font-size:1.1rem;font-weight:600;margin:0}.billing-period-toggle{background:rgba(255,255,255,.06);border-radius:8px;display:inline-flex;padding:3px}.billing-period-toggle button{background:none;border:none;border-radius:6px;color:rgba(255,255,255,.6);cursor:pointer;font-size:.82rem;padding:6px 14px}.billing-period-toggle button.active{background:var(--rb-gold);color:#2b2b2b}.billing-plan-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,1fr)}.billing-plan-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:16px;text-align:center}.billing-plan-card.plan-pro{border-color:rgba(255,217,102,.5)}.billing-plan-name{font-size:1rem;font-weight:700;margin-bottom:12px}.billing-upgrade-btn{align-items:center;background:var(--rb-gold);border:none;border-radius:6px;color:#2b2b2b;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:600;gap:6px;justify-content:center;padding:8px 16px;width:100%}.billing-upgrade-btn:hover{opacity:.9}.billing-upgrade-btn:disabled{opacity:.45;cursor:default}.billing-pricing-link{color:rgba(255,255,255,.6);display:inline-block;font-size:.85rem;margin-top:16px;text-decoration:underline}.billing-confirm{color:rgba(255,255,255,.7);display:flex;flex-direction:column;gap:14px;min-height:50vh}.billing-confirm,.feature-interest-btn{align-items:center;justify-content:center}.feature-interest-btn{background:none;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:rgba(255,255,255,.85);cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:6px;padding:8px 16px}.feature-interest-btn:hover:not(:disabled){border-color:var(--rb-gold);color:var(--rb-gold)}.feature-interest-btn:disabled{cursor:default;opacity:.6}.feature-interest-confirmed{align-items:center;background:rgba(74,222,128,.12);border-radius:6px;color:#4ade80;display:inline-flex;font-size:.85rem;font-weight:600;gap:6px;padding:8px 16px}.billing-plan-card .feature-interest-btn,.billing-plan-card .feature-interest-confirmed{margin-top:10px}.tier-lock-badge{align-items:center;background:rgba(255,217,102,.22);border-radius:999px;color:var(--blue);display:inline-flex;font-size:.72rem;font-weight:700;gap:4px;letter-spacing:.03em;padding:2px 9px;text-transform:uppercase}.tier-lock-badge.tier-regular{background:rgba(255,217,102,.2);color:var(--blue)}.tier-lock-badge.tier-pro{background:var(--dark);border:1px solid rgba(255,217,102,.35);color:var(--rb-gold)}.side-panel-content.guided-content{grid-column:1/-1;padding:0}.left-split{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:0}.lesson-dock{display:flex;min-height:0;overflow:hidden}.lesson-driver{display:flex;flex-direction:column;gap:12px;min-height:0;min-width:0;overflow-wrap:anywhere;overflow-x:hidden;overflow-y:auto;padding:14px 14px 16px;width:100%}.lesson-breadcrumb{align-items:baseline;display:flex;flex-wrap:wrap;font-size:.82rem;font-weight:600;gap:5px;min-width:0}.lesson-breadcrumb-course{color:var(--blue);text-decoration:none}.lesson-breadcrumb-course:hover{text-decoration:underline}.lesson-breadcrumb-sep{color:var(--muted)}.lesson-breadcrumb-act,.lesson-breadcrumb-lab{color:var(--ink);min-width:0;overflow-wrap:anywhere}.lesson-breadcrumb-act{font-weight:700}.modal-overlay:has(.robot-picker){z-index:900}.modal-panel:has(.robot-picker){max-width:900px;padding:0;width:95vw}.robot-picker{display:flex;flex-direction:column;max-height:92vh;min-height:0}.robot-picker-head{align-items:center;border-bottom:1px solid var(--line,#e2e8f0);display:flex;justify-content:space-between;padding:13px 16px}.robot-picker-head h2{font-size:1.1rem;font-weight:800;margin:0}.robot-picker-body{display:grid;grid-template-columns:250px 1fr;height:min(620px,80vh);min-height:0}.robot-picker-list{border-right:1px solid var(--line,#e2e8f0);display:flex;flex-direction:column;gap:10px;min-height:0;overflow-y:auto;padding:14px}.robot-card{aspect-ratio:2/3;height:auto;background:linear-gradient(135deg,#2b3442,#1b212b);border:2px solid transparent;border-radius:12px;cursor:pointer;flex:none;overflow:hidden;padding:0;position:relative;width:100%}.robot-card:hover{border-color:#f0d68a}.robot-card.is-selected{border-color:#ffd966}.robot-card-img{height:100%;inset:0;object-fit:cover;position:absolute;width:100%}.robot-card-shade{background:linear-gradient(180deg,rgba(8,12,20,.66),rgba(8,12,20,.05) 36%,rgba(8,12,20,.1) 56%,rgba(8,12,20,.82));inset:0;position:absolute}.robot-card-type{align-items:center;color:rgba(255,255,255,.95);display:flex;font-size:.72rem;font-weight:600;gap:5px;left:10px;max-width:calc(100% - 84px);position:absolute;top:9px}.robot-card-type svg{flex:none}.robot-card-type span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.robot-card-name{bottom:9px;color:#fff;display:-webkit-box;font-size:1.02rem;font-weight:800;left:11px;line-height:1.16;overflow:hidden;position:absolute;right:11px;text-align:left;-webkit-box-orient:vertical;-webkit-line-clamp:2}.robot-card-badge{background:#ffd966;border-radius:999px;color:#2a2a2a;font-size:.56rem;font-weight:800;letter-spacing:.04em;padding:2px 7px;position:absolute;right:8px;top:8px;text-transform:uppercase}.robot-picker-detail{display:flex;flex-direction:column;min-height:0;min-width:0;padding:14px 16px}.robot-picker-3d{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;flex:1 1;min-height:240px;overflow:hidden}.robot-picker-3d .garage-preview{display:grid;grid-template-rows:1fr;height:100%}.robot-picker-3d .garage-canvas-title{font-size:.92rem;left:10px;max-width:calc(100% - 150px);text-align:left;top:9px;transform:none}.robot-picker-3d .garage-canvas{min-height:0}.robot-picker-3d .garage-preview-note{display:none}.robot-picker-badges{display:flex;flex:none;flex-direction:column;gap:10px;padding-top:12px}.robot-picker-badges .robot-info-section h3{color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.02em;margin:0 0 5px;text-transform:uppercase}.robot-picker-foot{border-top:1px solid var(--line,#e2e8f0);display:flex;gap:9px;justify-content:flex-end;padding:12px 16px}.btn-ghost{background:#fff;border:1px solid #c9c9c6;border-radius:10px;color:#334155;cursor:pointer;font-size:.9rem;font-weight:600;padding:9px 16px}.btn-ghost:hover{border-color:#94a3b8}.btn-primary{background:var(--rb-gold);border:1px solid var(--rb-gold);border-radius:10px;color:#2b2b2b;cursor:pointer;font-size:.9rem;font-weight:700;padding:9px 18px}.btn-primary:hover{background:var(--rb-red-deep);border-color:var(--rb-red-deep)}@media (max-width:640px){.robot-picker-body{grid-template-columns:1fr;height:auto}.robot-picker-list{border-bottom:1px solid #e2e8f0;border-right:none;flex-direction:row;max-height:none;overflow-x:auto}.robot-card{min-width:220px}}.lesson-progress{display:flex;flex-direction:column;gap:5px}.lesson-progress-track{background:var(--line);border-radius:999px;height:7px;overflow:hidden}.lesson-progress-fill{background:linear-gradient(90deg,var(--blue),#22c55e);border-radius:999px;height:100%;transition:width .35s ease}.lesson-progress-label{color:var(--muted);font-size:.74rem;font-weight:600;letter-spacing:.02em}.lesson-step{display:flex;flex-direction:column;gap:10px}.lesson-step-title{align-items:flex-start;color:var(--ink);display:flex;font-size:1.05rem;font-weight:800;gap:8px;margin:0;min-width:0;overflow-wrap:anywhere}.lesson-step-title svg{color:var(--blue);flex:none}.lesson-step-body{color:var(--ink);font-size:.92rem;line-height:1.55;min-width:0;overflow-wrap:anywhere}.lesson-step-title svg{margin-top:2px}.lesson-step-body p{margin:0 0 8px}.lesson-step-body p:last-child{margin-bottom:0}.lesson-step-body code{background:var(--panel-2);border-radius:5px;font-size:.85em;padding:1px 5px}.lesson-step-body strong{color:var(--ink)}.lesson-media img{border:1px solid var(--line,#dbe3ef);border-radius:12px;max-width:100%}.lesson-media figcaption{color:var(--muted);font-size:.78rem;margin-top:4px}.lesson-cta{align-items:center;align-self:flex-start;background:linear-gradient(180deg,#34d058,#16a34a);border:none;border-radius:12px;box-shadow:0 6px 16px rgba(22,163,74,.32);color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:800;gap:8px;padding:11px 20px;transition:transform .12s ease,box-shadow .12s ease}.lesson-cta:hover:not(:disabled){box-shadow:0 9px 22px rgba(22,163,74,.4);transform:translateY(-1px)}.lesson-cta:disabled{cursor:default;filter:grayscale(.4);opacity:.65}.lesson-cta-next{background:linear-gradient(180deg,#4a4a4a,var(--dark));box-shadow:0 6px 16px rgba(0,0,0,.22)}.lesson-complete{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;display:flex;flex-direction:column;gap:8px;padding:12px 14px}.lesson-complete-title{align-items:center;color:#047857;display:flex;font-size:1rem;font-weight:800;gap:7px;margin:0}.lesson-complete p{color:#334155;font-size:.88rem;margin:0}.lesson-nav{display:flex;gap:8px;justify-content:space-between;margin-top:auto;padding-top:6px}.lesson-nav-btn{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--ink);cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:5px;padding:8px 13px}.lesson-nav-btn:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.lesson-nav-btn:disabled{cursor:default;opacity:.4}.lesson-nav-btn.primary{background:var(--rb-gold);border-color:var(--rb-gold);color:#2b2b2b}.lesson-nav-btn.primary:hover{background:var(--rb-red-deep);border-color:var(--rb-red-deep);color:#2b2b2b}.tutor-dock{border-top:1px solid var(--line,#dbe3ef);flex:none}.tutor-dock-open{display:flex;flex-direction:column;max-height:46vh;min-height:220px}.tutor-dock.tutor-expanded{animation:tutor-pop .18s ease;background:var(--panel);border:1px solid var(--line);border-radius:16px;bottom:14px;box-shadow:0 24px 64px rgba(15,23,42,.28);height:min(72vh,calc(100vh - 110px));max-width:calc(100vw - 24px);overflow:hidden;position:fixed;transform-origin:bottom left;width:clamp(420px,38vw,660px);z-index:850}@keyframes tutor-pop{0%{opacity:0;transform:translateY(18px) scale(.95)}to{opacity:1;transform:none}}.tutor-dock.tutor-expanded .tutor-dock-open{flex:1 1;height:100%;max-height:none;min-height:0}.tutor-dock.tutor-expanded .tutor-dock-open .tutor-messages{gap:12px;padding:14px 16px}.tutor-dock.tutor-expanded .tutor-message-body{font-size:14px}.tutor-dock.tutor-expanded .tutor-dock-open .tutor-input-row{margin:6px 12px 12px}.tutor-dock-head{align-items:center;background:var(--panel-2);border-bottom:1px solid var(--line,#e2e8f0);display:flex;justify-content:space-between;padding:7px 10px 7px 12px}.tutor-head-id{color:var(--ink);font-size:.92rem;font-weight:700;gap:8px}.tutor-avatar,.tutor-head-id{align-items:center;display:inline-flex}.tutor-avatar{background:linear-gradient(135deg,#7b6cf6,#4f8cf0);border-radius:50%;box-shadow:0 1px 3px rgba(91,75,208,.35);color:#fff;flex:none;height:26px;justify-content:center;overflow:hidden;width:26px}.tutor-avatar img{display:block;height:100%;object-fit:cover;width:100%}.tutor-avatar-sm{box-shadow:0 1px 2px rgba(91,75,208,.3);height:22px;width:22px}.tutor-head-btn{align-items:center;background:none;border:none;border-radius:8px;color:var(--muted);cursor:pointer;display:inline-flex;justify-content:center;padding:4px}.tutor-head-btn:hover{background:var(--panel-2);color:var(--ink)}.tutor-dock-open .tutor-messages{flex:1 1;min-height:0;overflow-y:auto;padding:10px 12px}.tutor-dock-open .tutor-input-row{margin:4px 8px 8px}.sensors-panel{background:var(--panel);flex-direction:column;gap:6px;padding:8px 10px 10px}.basic-sensor-window,.sensors-panel{border-top:1px solid var(--line,#dbe3ef);display:flex}.basic-sensor-window{flex:0 0 clamp(220px,30vh,320px);min-height:0;overflow:hidden;flex-direction:column}.basic-sensor-window .perc-root{flex:1 1 auto;min-height:0;height:100%}.editor-mode-switch{display:flex;gap:4px;flex:0 0 auto;padding:7px 9px;border-bottom:1px solid var(--line,#dbe3ef)}.editor-mode-switch .ems-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:5px 12px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--muted,#5f6b7e);cursor:pointer}.editor-mode-switch .ems-btn:hover{background:var(--panel-2,rgba(0,0,0,.04))}.editor-mode-switch .ems-btn.is-active{background:var(--panel-2,#eef2fb);color:var(--ink,#1e293b);border-color:var(--line,#dbe3ef);font-weight:600}.tune-panel{background:var(--panel);display:flex;flex:1 1 auto;flex-direction:column;gap:12px;min-height:0;overflow-y:auto;padding:14px 16px 18px}.tune-head{align-items:center;display:flex;gap:10px}.tune-method-pill{align-items:center;background:color-mix(in srgb,var(--rb-gold) 14%,var(--panel));border:1px solid var(--blue);border-radius:10px;color:var(--ink);display:inline-flex;font-size:13.5px;font-weight:700;gap:7px;padding:7px 13px}.tune-code-link{background:none;border:0;color:var(--blue);cursor:pointer;font-size:12.5px;font-weight:600;margin-left:auto;padding:4px 2px;white-space:nowrap}.tune-code-link:hover{text-decoration:underline}.tune-blurb{color:var(--muted);font-size:13px;line-height:1.45;margin:-2px 0 0}.tune-params{gap:12px}.tune-param,.tune-params{display:flex;flex-direction:column}.tune-param{border-top:1px solid var(--line);gap:6px;padding-top:12px}.tune-param:first-child{border-top:0;padding-top:2px}.tune-param-top{align-items:center;display:flex;gap:8px}.tune-param-label{color:var(--ink);font-size:13.5px;font-weight:700}.tune-chip{border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:10.5px;font-weight:700;padding:2px 8px;white-space:nowrap}.tune-chip--geometric{background:color-mix(in srgb,var(--rb-gold) 18%,var(--panel));border-color:color-mix(in srgb,var(--rb-gold) 45%,var(--line));color:var(--blue)}.tune-chip--response{background:var(--panel-2)}.tune-param-value{color:var(--ink);font-size:15px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:800;margin-left:auto;white-space:nowrap}.tune-param-unit{color:var(--muted);font-size:12px;font-weight:600}.tune-slider{accent-color:var(--blue);width:100%}.tune-param-help{color:var(--muted);font-size:12px;line-height:1.4;margin:0}.code-blocks-ref{flex:0 0 auto}.code-blocks-ref-host{min-height:0;overflow:hidden}.code-blocks-ref-host .block-editor-host{height:100%}.sensors-head{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sensors-grid{display:grid;grid-gap:7px;gap:7px;grid-template-columns:1fr 1fr}.sensor-card{align-items:baseline;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;display:flex;gap:6px;justify-content:space-between;min-width:0;padding:7px 12px}.sensor-card-label{color:var(--muted);font-size:.86rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sensor-card-value{color:var(--ink);flex:none;font-size:1.1rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:800;line-height:1.1;white-space:nowrap}.celebration{align-items:center;display:flex;inset:0;justify-content:center;pointer-events:none;position:fixed;z-index:200}.celebration-card{background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(15,23,42,.28);display:flex;flex-direction:column;gap:8px;max-width:340px;padding:26px 28px;pointer-events:auto;text-align:center}.celebration-icon{align-items:center;border-radius:50%;display:flex;height:72px;justify-content:center;margin:0 auto 4px;width:72px}.celebration-icon.success{background:#dcfce7;color:#16a34a}.celebration-icon.failure{background:#fef3c7;color:#d97706}.celebration-card h3{color:#0f172a;font-size:1.3rem;font-weight:800;margin:0}.celebration-card p{color:#475569;font-size:.92rem;margin:0}.celebration-actions{align-items:center;display:flex;flex-direction:column;gap:8px;margin-top:10px}.celebration-actions .lesson-cta{justify-content:center;width:100%}.celebration-secondary{background:none;border:0;color:#2563eb;cursor:pointer;font-size:.85rem;font-weight:600;margin-top:4px;padding:4px 8px;text-decoration:underline}.celebration-secondary:hover{color:#1d4ed8}.confetti,.scene-result{inset:0;overflow:hidden;pointer-events:none;position:absolute}.scene-result{align-items:center;background:rgba(15,23,42,.28);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;z-index:30}.scene-result--success{background:rgba(22,163,74,.18)}.scene-result--failure{background:rgba(220,38,38,.2)}.scene-result-card{align-items:center;background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(15,23,42,.34);display:flex;flex-direction:column;gap:7px;max-width:300px;padding:24px 30px 26px;pointer-events:auto;position:relative;text-align:center}.scene-result-icon{align-items:center;border-radius:50%;display:flex;height:76px;justify-content:center;margin-bottom:2px;width:76px}.scene-result-icon.success{background:#dcfce7;color:#16a34a}.scene-result-icon.failure{background:#fee2e2;color:#dc2626}.scene-result-card h3{color:#0f172a;font-size:1.45rem;font-weight:800;margin:0}.scene-result-card p{color:#475569;font-size:.95rem;margin:0}.scene-retry-btn{align-items:center;background:#dc2626;border:0;border-radius:12px;color:#fff;cursor:pointer;display:inline-flex;font-size:1.05rem;font-weight:800;gap:9px;justify-content:center;margin-top:10px;padding:13px 26px;transition:background .15s,transform .1s}.scene-retry-btn:hover{background:#b91c1c}.scene-retry-btn:active{transform:scale(.97)}.scene-result-close{align-items:center;background:transparent;border:0;border-radius:8px;color:#94a3b8;cursor:pointer;display:flex;height:28px;justify-content:center;position:absolute;right:8px;top:8px;width:28px}.scene-result-close:hover{background:#f1f5f9;color:#475569}.scene-confetti{inset:0;overflow:hidden;pointer-events:none;position:absolute}.scene-confetti-bit{height:14px;width:9px}.confetti-bit,.scene-confetti-bit{border-radius:2px;position:absolute;top:0}.confetti-bit{height:10px;width:7px}@media (prefers-reduced-motion:reduce){.confetti{display:none}.lesson-progress-fill{transition:none}}.workspace-shell.ws-guided{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;min-height:0;overflow:hidden}.workspace-shell.ws-guided .upgraded-grid{flex:1 1 auto;min-height:0}.workspace-shell.ws-guided .project-editor{height:100%;min-height:0}.workspace-shell.ws-guided .editor-workbench{display:flex;flex-direction:column;height:100%;min-height:0}.workspace-shell.ws-guided .editor-frame{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.workspace-shell.ws-guided .sim-panel{display:flex;flex-direction:column;min-height:0}.workspace-shell.ws-guided .viewport{flex:1 1 auto;min-height:240px}.workspace-shell.ws-guided .goals-panel,.workspace-shell.ws-guided .sensors-panel{flex:0 0 auto}.workspace-shell.ws-guided .action-row,.workspace-shell.ws-guided .editor-heading{display:none}.workspace-shell.ws-guided .learner-log{max-height:130px}.workspace-shell.ws-guided .bottom-console{display:none}.blocks-mirror-toggle{align-items:center;background:none;border:none;color:#5b6b85;cursor:pointer;display:inline-flex;margin-left:auto;padding:2px}.blocks-mirror-toggle:hover{color:var(--blue)}.workspace-shell.ws-guided .blocks-split,.workspace-shell.ws-playful .blocks-split{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0}.workspace-shell.ws-guided .blocks-canvas,.workspace-shell.ws-playful .blocks-canvas{flex:1 1 auto;min-height:200px}.workspace-shell.ws-guided .blocks-mirror,.workspace-shell.ws-playful .blocks-mirror{flex:0 0 auto;min-height:0;display:flex;flex-direction:column}.blocks-mirror-head{flex:0 0 auto}.blocks-mirror-code{display:block;overflow:auto}.blocks-mirror-resize{flex:0 0 auto;height:7px;cursor:ns-resize;background:#e7e6e1;border-top:1px solid var(--line);position:relative}.blocks-mirror-resize:after{content:"";position:absolute;left:50%;top:2px;width:34px;height:3px;border-radius:3px;background:#b8b6ad;transform:translateX(-50%)}.blocks-mirror-resize:hover{background:#dedcd4}.blocks-mirror-resize:hover:after{background:#8c8a80}.btn-start{align-items:center;background:#ffd966;border:1px solid #f2c94c;border-radius:10px;box-shadow:0 3px 10px rgba(242,201,76,.45);color:#2a2a2a;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:800;gap:7px;padding:8px 16px}.btn-start:hover:not(:disabled){background:#ffce4d}.btn-start:disabled{cursor:default;filter:grayscale(.35);opacity:.55}.sim-run-row{align-items:center;gap:8px}.viewport{position:relative}.sim-status-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:rgba(255,255,255,.85);border-radius:999px;box-shadow:0 1px 4px rgba(15,23,42,.15);padding:4px 11px;position:absolute;right:10px;top:10px;z-index:5}.lesson-run-hint{align-items:flex-start;background:#fff7e0;border:1px dashed #f2c94c;border-radius:8px;color:#8a6d1e;display:flex;font-size:.82rem;font-weight:600;gap:6px;margin:0;min-width:0;padding:7px 11px}.lesson-run-hint svg{color:#d39e2a;flex:none;margin-top:1px}.child-list{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-gap:10px;gap:10px}.child-card{padding:12px 14px;border:1px solid var(--border,rgba(0,0,0,.1));border-radius:12px;background:var(--surface,#fff)}.child-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.child-meta{display:block;margin-top:2px;font-size:12.5px}.child-meta,.child-remove{color:var(--muted,#6b7280)}.child-remove{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border,rgba(0,0,0,.1));border-radius:8px;background:transparent;cursor:pointer}.child-remove:hover{color:#b3261e;border-color:#b3261e}.child-contacts{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border,rgba(0,0,0,.1))}.child-contacts-title{margin:0 0 6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b7280)}.child-contact-row{display:flex;gap:9px;align-items:flex-start;margin:6px 0;font-size:13px;line-height:1.45;cursor:pointer}.child-contact-row input[type=checkbox]{width:17px;height:17px;margin-top:1px;flex:0 0 auto;cursor:pointer}.child-unverified{color:#b26a00;font-style:normal}.child-legal-link{position:relative;z-index:1;color:var(--accent,#a4762b);font-weight:600;text-decoration:underline;text-underline-offset:2px}.child-legal-footnote{margin:6px 0 0 26px;font-size:11.5px;line-height:1.5;color:var(--muted,#6b7280)}.child-add-btn,.child-cancel,.child-submit{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:9px;border:1px solid var(--border,rgba(0,0,0,.12));background:transparent;font-size:13.5px;font-weight:600;cursor:pointer}.child-add-btn{margin-top:12px}.child-submit{background:var(--accent,#a4762b);border-color:transparent;color:#fff}.child-submit:disabled{opacity:.5;cursor:not-allowed}.child-form{margin-top:14px;padding:14px;border:1px solid var(--border,rgba(0,0,0,.1));border-radius:12px}.child-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:10px;gap:10px}.child-field{display:flex;flex-direction:column;gap:4px;font-size:12.5px}.child-field span{font-weight:600;color:var(--muted,#6b7280)}.child-field input,.child-field select{height:34px;padding:0 9px;border:1px solid var(--border,rgba(0,0,0,.14));border-radius:8px;background:var(--surface,#fff);font:inherit}.child-consent-row{display:flex;gap:9px;align-items:flex-start;margin:14px 0 0;font-size:13px;line-height:1.45;cursor:pointer}.child-consent-row input[type=checkbox]{width:17px;height:17px;margin-top:1px;flex:0 0 auto;cursor:pointer}.child-clickwrap{margin:10px 0 0;font-size:11.5px;line-height:1.5;color:var(--muted,#6b7280)}.child-form-actions{display:flex;gap:8px;margin-top:12px}.child-error{margin:10px 0 0;font-size:13px;color:#b3261e}.comms-row{display:flex;gap:10px;align-items:flex-start;margin:10px 0 0;font-size:13.5px;line-height:1.45;cursor:pointer}.comms-row input[type=checkbox]{width:18px;height:18px;margin-top:1px;flex:0 0 auto;cursor:pointer}.comms-footnote{margin:6px 0 0 28px;font-size:11.5px;line-height:1.5;color:var(--muted,#6b7280)}.unsubscribe-shell{min-height:100vh;display:grid;place-items:center;padding:32px 20px;background:#faf9f7}.unsubscribe-card{width:100%;max-width:460px;background:#fff;border:1px solid #ececec;border-radius:16px;padding:34px 30px;text-align:center;box-shadow:0 12px 40px rgba(20,20,20,.07);color:#2b2b2b}.unsubscribe-card h1{font-size:21px;font-weight:800;margin:14px 0 10px}.unsubscribe-card p{font-size:14.5px;line-height:1.55;color:#575757;margin:0 0 10px}.unsubscribe-note{font-size:12.5px!important;color:#7a7a7a!important;margin-top:16px!important}.unsubscribe-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;padding:12px 22px;border-radius:12px;border:1px solid transparent;background:var(--rb-red,#ffd966);color:#2b2b2b;font-size:15px;font-weight:700;cursor:pointer}.unsubscribe-btn:disabled{opacity:.6;cursor:default}.replay-track{align-items:stretch;display:flex;gap:8px;margin:8px 0 4px}.replay-canvas{background:rgba(15,23,42,.04);border-radius:8px;flex:1 1;min-height:168px;overflow:hidden}.replay-transport{display:flex;flex-direction:column;gap:4px;justify-content:flex-start}.replay-play,.replay-rate{align-items:center;background:#fff;border:1px solid rgba(15,23,42,.14);border-radius:6px;color:#0f172a;cursor:pointer;display:flex;font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;justify-content:center;min-width:34px;padding:5px 6px}.replay-play:hover,.replay-rate:hover{background:#f4f4f3}.replay-rate.selected{background:#0f6e56;border-color:#0f6e56;color:#fff}.replay-source{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}.sim-step-overlay{-webkit-backdrop-filter:blur(3px);align-items:center;backdrop-filter:blur(3px);background:rgba(255,255,255,.85);border-radius:10px;bottom:12px;box-shadow:0 1px 4px rgba(15,23,42,.15);display:flex;gap:4px;left:12px;padding:4px 6px;position:absolute;z-index:3}.sim-step-btn{align-items:center;background:transparent;border:none;border-radius:6px;color:#0f172a;cursor:pointer;display:flex;padding:4px}.sim-step-btn:hover{background:rgba(15,23,42,.08)}.sim-step-time{color:#475569;font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-right:2px}.tune-handover{background:#eef4f1;border:1px solid #b9d3c9;border-radius:10px;display:flex;flex-direction:column;gap:6px;margin-top:14px;padding:12px}.tune-handover-lead{color:#0b5442;font-size:13px;font-weight:700;margin:0}.tune-handover-body{color:#55554f;font-size:12px;line-height:1.45;margin:0}.tune-handover-cta{align-items:center;align-self:flex-start;background:#0f6e56;border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:6px;margin-top:4px;padding:7px 12px}.tune-handover-cta:hover{background:#0b5442}.perc-scope .perc-legend{top:auto;bottom:8px;opacity:.85;font-size:11px}.observe-hint{color:var(--muted);font-size:13px;margin:4px 0}.observe-done{align-self:flex-start;margin-top:14px}.sandbox-banner{background:color-mix(in srgb,var(--blue) 12%,transparent);border-radius:8px;padding:6px 10px}