.blocklyHost{width:100%;height:100%;position:relative}:root{--font:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;--bg:#f7f7f8;--surface:#fff;--surface-muted:#f2f3f5;--text:#111;--muted:#666;--border:#0000001f;--border-strong:#0000002e;--accent:#4c97ff;--accent-strong:#4c97ffe6;--ring:#4c97ff40;--r-sm:8px;--r-md:10px;--r-lg:12px;--r-pill:999px;--s-1:6px;--s-2:8px;--s-3:10px;--s-4:12px;--s-5:14px;--shadow-md:0 8px 24px #0000001f;--shadow-lg:0 8px 24px #0000002e;--input-h:36px;--input-w:84px;font-family:var(--font);color:var(--text);background:var(--bg);--eteCoachBarH:40px;--eteCoachBarGap:4px;--eteCoachBarShadow:2px;--etePanelsBottom:calc(var(--eteOverlayBottom,12px) + 16px);--eteSidePanelsBottom:calc(var(--eteOverlayBottom,12px) + 46px);--etePanelsTop:calc(var(--eteOverlayTop,6px) + var(--eteCoachBarH) + 8px)}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);margin:0}.appGrid{grid-template-rows:1fr;grid-template-columns:1fr;gap:8px;max-width:1500px;height:100%;min-height:100dvh;margin:0 auto;padding:6px;display:grid}.editorColumn{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}.editorCard{border-radius:var(--r-sm);background:#fff;border:1px solid #ddd;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.editorPanel{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}.editorCanvasWrap{border-radius:var(--r-sm);background:#fff;border:1px solid #ddd;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.editorPanel,.editorCanvasWrap,.editorStage{height:100%;position:relative}.uiRow{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.uiSpacer{flex:1}.uiButton{height:var(--input-h);border-radius:var(--r-pill);border:1px solid var(--border-strong);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffffe6;padding:0 14px;font-weight:700}.uiButton:hover{background:#fff}.uiButton:active{transform:translateY(1px)}.uiButton:disabled{opacity:.5;cursor:default}.uiButton.icon{width:var(--input-h);height:var(--input-h);place-items:center;padding:0;display:grid}.uiButton.icon svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;display:block}.uiButton.danger{background:#dc26260f;border-color:#dc262659}.uiButton.danger:hover{background:#dc262614}.uiInput{height:var(--input-h);width:var(--input-w);border-radius:var(--r-md);border:1px solid var(--border);color:var(--text);background:#ffffffeb;padding:0 10px}.uiInput:focus-visible{box-shadow:0 0 0 3px var(--ring);border-color:var(--accent-strong);outline:none}.overlayControls{z-index:50;gap:10px;display:flex;position:absolute;bottom:12px;right:12px}@media (max-width:980px){.appGrid{padding:4px}.uiButton{padding:0 12px}.overlayControls{gap:6px}}.kbd{border:1px solid var(--border);background:#0000000a;border-radius:8px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.workspaceShell{height:100%;min-height:0;position:relative}.etePaletteOpen .eteCoachBar{pointer-events:none;opacity:.92}.blocklyHost.eteBlocklyHost{box-sizing:border-box;width:100%;height:100%;position:relative;padding-top:0!important}.eteBlocklyRoot.eteBlocklyHostArea{position:absolute;inset:46px 0 0}.blocklyHost .blocklyMainBackground{stroke:#0000!important;stroke-width:0!important;fill:var(--surface,#fff)!important}.blocklyHost .blocklyZoom,.blocklyHost .blocklyTrash,.blocklyHost .blocklyZoomReset{visibility:hidden!important;opacity:0!important;pointer-events:none!important;display:none!important}.blocklyHost .blocklyGrid,.blocklyHost .blocklyGridPattern{display:none!important}.blocklyHost .blocklySvg{left:0!important}.blocklyHost .blocklyScrollbarHorizontal,.blocklyHost .blocklyScrollbarVertical{opacity:.6}.blocklyHost .blocklyScrollbarHorizontal .blocklyScrollbarBackground,.blocklyHost .blocklyScrollbarVertical .blocklyScrollbarBackground{fill:#0000000f!important}.blocklyHost .blocklyScrollbarHorizontal .blocklyScrollbarHandle,.blocklyHost .blocklyScrollbarVertical .blocklyScrollbarHandle{fill:#00000040!important}.blocklyHost .blocklyScrollbarHorizontal{height:8px!important}.blocklyHost .blocklyScrollbarVertical{width:8px!important}.blocklyHost .blocklyScrollbarHorizontal .blocklyScrollbarBackground,.blocklyHost .blocklyScrollbarHorizontal .blocklyScrollbarHandle{height:8px!important}.blocklyHost .blocklyScrollbarVertical .blocklyScrollbarBackground,.blocklyHost .blocklyScrollbarVertical .blocklyScrollbarHandle{width:8px!important}.eteCoachBar{box-sizing:border-box;z-index:80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);background:#ffffffeb;border-radius:16px;flex-wrap:wrap;align-items:center;min-height:40px;padding:4px 5px 2px;display:flex;position:absolute;top:3px;left:4px;right:4px;box-shadow:0 2px 6px #0000000f}.eteCoachField{flex:1;min-width:0;position:relative}.eteCoachSportPicker{background:#00000008;border-radius:12px;align-items:center;gap:0;margin-right:4px;padding:0;display:inline-flex}.eteCoachSportWrap{position:relative}.eteCoachSportSelect{appearance:none;color:var(--text);cursor:pointer;background:#ffffffeb;border:1px solid #00000029;border-radius:10px;min-width:82px;height:26px;padding:0 24px 0 8px;font-size:12px}.eteCoachSportWrap:after{content:"";pointer-events:none;border-bottom:1.6px solid #0000009e;border-right:1.6px solid #0000009e;width:6px;height:6px;position:absolute;top:50%;right:8px;transform:translateY(-60%)rotate(45deg)}.eteCoachSportSelect:focus-visible{box-shadow:0 0 0 3px var(--ring);border-color:var(--accent-strong);outline:none}.eteCoachInput{box-sizing:border-box;resize:none;width:100%;height:30px;color:var(--text);background:#00000008;border:1px solid #0000001f;border-radius:12px;padding:0 100px 0 8px;font-size:14px;line-height:30px;display:block;overflow:hidden}.eteCoachInput:focus-visible{box-shadow:0 0 0 3px var(--ring);border-color:var(--accent-strong);background:#ffffffeb;outline:none}.eteCoachInput.eteCoachInput--error{background:#e11d4814;border-color:#e11d48}.eteCoachInput.eteCoachInput--error:focus-visible{border-color:#e11d48;box-shadow:0 0 0 3px #e11d4833}.eteCoachInput--collapsed{appearance:none;white-space:nowrap;text-overflow:ellipsis;cursor:text;overflow:hidden}.eteCoachInput--expanded{white-space:pre-wrap;height:auto;min-height:0;max-height:34vh;margin:0;padding:2px 5px;line-height:1.05;overflow-y:hidden}.eteCoachInFieldActions{z-index:2;align-items:center;gap:2px;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%);padding:0!important}.eteCoachResetIcon{width:20px;height:20px;box-shadow:none;cursor:pointer;appearance:none;background:#bdbdbd;border:none;border-radius:999px;place-items:center;padding:0;line-height:0;display:grid;position:relative}.eteCoachResetIcon:hover:not(:disabled){background:#b3b3b3}.eteCoachResetIcon:disabled{opacity:1;cursor:default}.eteCoachResetIcon svg{width:100%;height:100%;shape-rendering:geometricPrecision;display:block}.eteCoachIconBtn{width:20px;height:20px;box-shadow:none;cursor:pointer;color:#000000bd;background:0 0;border:none;border-radius:8px;place-items:center;padding:0;line-height:0;display:grid;position:relative;overflow:visible}.eteCoachIconBtn:before{content:"";pointer-events:none;background:0 0;border-radius:999px;width:18px;height:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.eteCoachIconBtn:hover:not(:disabled):before{background:#0000000f}.eteCoachIconBtn:active:not(:disabled):before{background:#0000001a}.eteCoachIconBtn:disabled{opacity:.35;cursor:default}.eteCoachIconBtn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px;display:block}.etePlayIcon path{fill:currentColor;stroke:none}.eteCoachApplyBtn .etePlayIcon{width:17px;height:17px;transform:translate(0)}.eteCoachInFieldActions .eteCoachApplyBtn,.eteCoachExpandedActions .eteCoachApplyBtn{margin-left:-1px;margin-right:-1px}.eteCoachFoldToggle,.eteCoachExpandedActions{display:none}@media (max-width:720px){.eteCoachBar{align-content:flex-start;min-height:42px;padding:3px 4px 1px}.eteCoachField{flex:1 0 100%}.eteCoachSportPicker{flex:0 0 100%;gap:0;margin:0 0 4px;padding:0}.eteCoachSportSelect{min-width:76px;height:24px;font-size:12px}.eteCoachInput{height:32px;padding-left:8px;padding-right:96px;font-size:16px;line-height:32px}.eteCoachBar--mobileExpanded .eteCoachInFieldActions{display:none}.eteCoachBar--mobileExpanded .eteCoachInput--expanded{width:100%;max-height:30vh;margin-bottom:-1px;padding:3px 5px;line-height:1.05}.eteCoachBar--mobileExpanded .eteCoachField{margin:0;padding:0}.eteCoachBar--mobileExpanded{padding:2px 3px 1px}.eteCoachFoldToggle{color:#00000080;cursor:pointer;background:0 0;border:none;flex:0 0 100%;place-items:center;width:24px;height:8px;margin:-1px auto 0;padding:0;display:grid}.eteCoachFoldToggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.eteCoachExpandedActions{justify-content:flex-end;align-items:center;gap:2px;width:100%;margin-top:-1px;padding-right:0;display:flex}.eteCoachExpandedActions .eteCoachResetIcon,.eteCoachExpandedActions .eteCoachIconBtn{min-width:20px;min-height:20px}.eteCoachExpandedActions .eteCoachIconBtn:before{width:18px;height:18px}}.eteOverlayControls{right:var(--eteOverlayRight,12px);bottom:var(--eteOverlayBottom,12px);z-index:3001;gap:6px;display:flex;position:fixed}.eteExportMenuWrap{position:relative}.eteExportMenu{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff5;border:1px solid #0000001f;border-radius:10px;flex-direction:column;gap:3px;min-width:130px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 8px 20px #0000001f}.eteExportItem{color:var(--text);text-align:left;cursor:pointer;background:#0000000a;border:none;border-radius:8px;padding:8px 9px;font-size:12px}.eteExportItem:hover:not(:disabled){background:#00000014}.eteExportItem:disabled{opacity:.45;cursor:not-allowed}@media (max-width:980px){.eteOverlayControls{gap:6px}}.etePaletteOverlay{z-index:9000;opacity:0;pointer-events:none;transition:opacity .16s;position:fixed;inset:0}.etePaletteOverlay:before{content:"";pointer-events:none;background:#00000026;position:fixed;inset:0}.etePaletteOverlay.open{opacity:1;pointer-events:auto}.etePalettePanel{left:var(--etePaletteLeft,16px);top:var(--etePanelsTop,72px);bottom:var(--etePaletteBottom,34px);background:#fffffff5;border:1px solid #0000001f;border-radius:12px;flex-direction:column;width:min(340px,100vw - 32px);display:flex;position:fixed;overflow:hidden;box-shadow:0 10px 28px #0000002e}.etePaletteHeader{border-bottom:1px solid #00000014;padding:12px}.etePaletteTitle{font-weight:800}.etePaletteClose{position:relative}.etePaletteClose:before,.etePaletteClose:after{content:"";transform-origin:50%;pointer-events:none;background:currentColor;border-radius:2px;width:14px;height:2px;position:absolute;top:50%;left:50%}.etePaletteClose:before{transform:translate(-50%,-50%)rotate(45deg)}.etePaletteClose:after{transform:translate(-50%,-50%)rotate(-45deg)}.etePaletteItems{flex-direction:column;gap:10px;padding:12px;display:flex;overflow:auto}.etePaletteItem{cursor:pointer;background:#fff;border:1px solid #0000001f;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px;font-weight:700;display:flex;box-shadow:0 4px 14px #0000000f}.etePaletteItemPlus{background:#00000008;border:1px solid #0000001f;border-radius:999px;place-items:center;width:28px;height:28px;display:grid}.etePaletteItemPlus svg{width:16px;height:16px;display:block}.etePaletteSectionTitle{opacity:.65;margin:6px 2px 2px;padding:10px 4px 4px;font-size:12px;font-weight:800}@media (max-width:980px){.eteOverlayControls{gap:6px}}.etePanelHeader{border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;display:flex}.etePanelTitle{letter-spacing:-.15px;color:#000000d1;margin:0;font-size:13px;font-weight:800;line-height:1.1}.etePanelCloseBtn{position:relative}.etePanelCloseBtn:before,.etePanelCloseBtn:after{content:"";transform-origin:50%;pointer-events:none;background:currentColor;border-radius:2px;width:14px;height:2px;position:absolute;top:50%;left:50%}.etePanelCloseBtn:before{transform:translate(-50%,-50%)rotate(45deg)}.etePanelCloseBtn:after{transform:translate(-50%,-50%)rotate(-45deg)}:root{--eteRecapSafeRight:0px;--eteRecapSafeBottom:64px}.drawerPanel{z-index:2000;opacity:0;pointer-events:none;background:#ffffffeb;border:1px solid #0000001a;border-radius:16px;flex-direction:column;transition:opacity .16s,transform .16s;display:flex;position:fixed;overflow:hidden;transform:translate(10px);box-shadow:0 6px 16px #0000001a;right:calc(var(--etePanelsRight,10px) + var(--eteRecapSafeRight))!important;bottom:calc(10px + var(--eteRecapSafeBottom))!important;top:var(--etePanelsTop,72px)!important;width:min(420px,calc(100vw - 20px - var(--eteRecapSafeRight)))!important}.recapOverlayInner{flex-direction:column;gap:8px;display:flex}.recapEmpty{opacity:.65;margin:4px 0 0;font-size:12px}.recapOverlayInner>p{color:#000000b8;margin:0;font-size:12.5px;line-height:1.3}.recapOverlayInner>p b{color:#000000c7;font-weight:700}.recapOverlayInner>h3{letter-spacing:.6px;text-transform:uppercase;color:#00000073;margin:8px 0 0;font-size:11px;font-weight:800}.recapOverlayInner>ol{flex-direction:column;gap:0;margin:6px 0 0;padding-left:20px;display:flex}.recapOverlayInner>ol>li{background:0 0;border:none;margin:0;padding:10px 0}.recapOverlayInner>ol>li+li{border-top:1px solid #0000000f}.recapOverlayInner>ol>li>b{color:#000000d1;margin-bottom:3px;font-size:13px;font-weight:800;display:block}.recapOverlayInner>ol>li>div:first-of-type{color:#0000009e;font-size:12.5px;line-height:1.3}.recapMetaRow{color:#0000008c;flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:6px;font-size:11.5px;display:flex}.recapMetaLabel{color:#00000094;font-weight:700}.recapMetaValue{color:#0000009e;font-weight:600}.recapMetaSep{opacity:.28}@media (max-width:720px){:root{--eteToolboxSafeBottom:86px}.drawerPanel{top:10px;right:10px;bottom:calc(10px + var(--eteToolboxSafeBottom));width:min(420px,100vw - 20px)}}.drawerPanel{right:var(--etePanelsRight,10px);z-index:2000;opacity:0;pointer-events:none;background:#ffffffeb;border:1px solid #0000001a;border-radius:16px;flex-direction:column;width:min(420px,100vw - 20px);transition:opacity .16s,transform .16s;display:flex;position:fixed;overflow:hidden;transform:translate(10px);box-shadow:0 6px 16px #0000001a;top:var(--etePanelsTop,72px)!important;bottom:var(--eteSidePanelsBottom)!important}.drawerPanel.open{opacity:1;pointer-events:auto;transform:translate(0)}.drawerBody{scrollbar-width:thin;scrollbar-color:#00000040 transparent;padding:6px 10px 8px;overflow:auto}.drawerBody::-webkit-scrollbar{width:8px}.drawerBody::-webkit-scrollbar-track{background:0 0}.drawerBody::-webkit-scrollbar-thumb{background:#00000040;border-radius:999px}.settingsSection{background:0 0;border:none;border-radius:0;padding:6px 0}.settingsSection+.settingsSection{border-top:1px solid #0000000f;margin-top:0;padding-top:8px}.settingsLabel{color:#000000d1;margin:0 0 6px;font-weight:800}.settingsSection--language{padding-top:2px}.settingsSection--activity{padding-bottom:2px}.settingsLangRow{align-items:center;gap:12px;display:inline-flex}.settingsLangBtn.uiButton{letter-spacing:.1px;border-radius:999px;min-width:52px;height:28px;padding:0 10px;font-size:13px;font-weight:800}.settingsLangBtn.uiButton:not(.active){color:#000000c7;background:#00000004;border:1px solid #0000001a}.settingsLangBtn.uiButton.primary.active{box-shadow:0 0 0 2px #0000000d}.settingsRow{background:0 0;border:none;grid-template-columns:60px 92px max-content;justify-content:start;align-items:center;gap:8px;width:100%;padding:4px 0;display:grid}.settingsRow+.settingsRow{margin-top:4px}.settingsRow>span:first-child{color:#000000c7;font-size:13px;font-weight:800}.settingsRow .uiInput{border-radius:12px;width:92px;height:30px;padding:0 10px;font-size:14px}.settingsSelect.uiInput{cursor:pointer;width:140px}.settingsUnit{color:#00000085;justify-self:start;font-size:13px;font-weight:700}.settingsHint{color:#0000008f;margin-top:10px;font-size:12px}.settingsLink{color:#0f766e;font-size:13px;font-weight:600;line-height:1.35;text-decoration:none;display:inline-block}.settingsLink:hover{text-decoration:underline}.settingsIdentity{color:#000000b8;font-size:13px;font-weight:600}.settingsAboutHint{color:#0000008f;font-size:12px}.settingsAboutInline{isolation:isolate;flex-direction:column;justify-content:center;gap:6px;min-height:120px;padding-left:128px;display:flex;position:relative}.settingsSection--about .settingsLabel{margin-bottom:4px}.settingsSection--about .settingsAboutInline:before{content:"";opacity:1;pointer-events:none;z-index:-1;background-image:url(/TrainForge_logo.png);background-position:0;background-repeat:no-repeat;background-size:120px;position:absolute;inset:0}.settingsAboutIcons{align-items:center;gap:12px;display:flex}.settingsBrandIcon{justify-content:center;align-items:center;width:24px;height:24px;text-decoration:none;display:inline-flex}.settingsBrandIconImg{width:24px;height:24px;display:block}.settingsBrandIcon:hover{opacity:.82}.settingsLicenseNote{color:#0000008c;margin-top:2px;font-size:11px;line-height:1.3}.settingsLicenseTitle{margin-right:6px}.settingsLicenseLink{color:#0f766e;text-decoration:none}.settingsLicenseLink:hover{text-decoration:underline}@media (max-width:720px){.settingsLangRow{gap:14px}.settingsLangBtn.uiButton{min-width:58px;height:32px;font-size:14px}.settingsRow{grid-template-columns:64px 1fr max-content}.settingsRow .uiInput{width:100%;height:36px;font-size:16px}}
