body,html{margin:0;padding:0;overflow:auto;width:100%;height:100%}body::-webkit-scrollbar,html::-webkit-scrollbar{display:none}body,html{-ms-overflow-style:none;scrollbar-width:none}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.icon-hover-effect{transition:opacity .18s ease,transform .18s cubic-bezier(.2,.7,.3,1.2);cursor:pointer}.icon-hover-effect:hover{opacity:.85;transform:scale(1.18)}.about-backdrop,.app-controls{--icon-color:#333399;--app-controls-bg:rgba(255,255,255,0.86);--app-controls-border:rgba(0,0,0,0.07);--app-controls-shadow:0 10px 30px rgba(0,0,0,0.11),0 1px 3px rgba(0,0,0,0.07);--app-controls-title:#16161a;--app-controls-text:#55555e;--app-controls-muted:#9a9aa4;--app-controls-divider:rgba(0,0,0,0.08);--app-controls-hover:rgba(0,0,0,0.045);--app-controls-field-bg:rgba(0,0,0,0.025);--app-controls-field-border:rgba(0,0,0,0.1);--app-controls-field-hover:rgba(0,0,0,0.05);--app-controls-menu-bg:rgba(255,255,255,0.97);--app-controls-menu-shadow:0 12px 28px rgba(0,0,0,0.16)}.app-controls{position:fixed;top:20px;left:20px;z-index:1000;width:268px;display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:14px;border:1px solid var(--app-controls-border);background:var(--app-controls-bg);box-shadow:var(--app-controls-shadow);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);color:var(--app-controls-text);font-family:var(--font-geist-sans),system-ui,-apple-system,sans-serif;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}.app-controls,.app-controls *,.app-controls :after,.app-controls :before{box-sizing:border-box}[data-theme=dark] .about-backdrop,[data-theme=dark] .app-controls{--icon-color:#FEC226;--app-controls-bg:rgba(20,20,24,0.86);--app-controls-border:rgba(255,255,255,0.09);--app-controls-shadow:0 10px 30px rgba(0,0,0,0.5),0 1px 3px rgba(0,0,0,0.4);--app-controls-title:#f4f4f6;--app-controls-text:#b8b8c2;--app-controls-muted:#7e7e8a;--app-controls-divider:rgba(255,255,255,0.1);--app-controls-hover:rgba(255,255,255,0.07);--app-controls-field-bg:rgba(255,255,255,0.05);--app-controls-field-border:rgba(255,255,255,0.12);--app-controls-field-hover:rgba(255,255,255,0.09);--app-controls-menu-bg:rgba(32,32,38,0.98);--app-controls-menu-shadow:0 12px 28px rgba(0,0,0,0.55)}[data-monochrome=true] .about-backdrop,[data-monochrome=true] .app-controls{--icon-color:#000000}[data-theme=dark][data-monochrome=true] .about-backdrop,[data-theme=dark][data-monochrome=true] .app-controls{--icon-color:#ffffff}.app-controls-button{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.app-controls-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:26px;padding-left:2px}.app-controls-title{font-size:16px;font-weight:600;line-height:1.2;color:var(--app-controls-title);-webkit-user-select:none;-moz-user-select:none;user-select:none;letter-spacing:-.01em}.app-controls-header-actions{display:flex;align-items:center;gap:2px}.app-controls-header-button{display:flex;align-items:center;justify-content:center;margin:0;padding:5px;border:none;background:transparent;cursor:pointer;border-radius:8px;color:inherit;transition:background-color .15s ease}.app-controls-header-button:focus-visible,.app-controls-header-button:hover{background:var(--app-controls-hover)}.app-controls-header-button[aria-pressed=true]{background:var(--app-controls-hover)}.app-controls-header-button:focus-visible .icon-hover-effect,.app-controls-header-button:hover .icon-hover-effect,.app-controls-play-button:focus-visible .icon-hover-effect,.app-controls-play-button:hover .icon-hover-effect,.app-controls-row:focus-visible .icon-hover-effect,.app-controls-row:hover .icon-hover-effect{opacity:1;transform:scale(1.18)}.app-controls-section-title{font-size:10px;font-weight:600;color:var(--app-controls-muted);text-transform:uppercase;letter-spacing:.08em;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0 8px 4px}.app-controls-divider{height:1px;background:var(--app-controls-divider);margin:0 -12px}.app-controls-settings-panel{display:flex;flex-direction:column;gap:10px;animation:app-controls-settings-in .16s ease-out}.app-controls-settings-panel[data-open=false]{pointer-events:none;animation:app-controls-settings-out .14s ease-in forwards}@keyframes app-controls-settings-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes app-controls-settings-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.app-controls-settings{display:flex;flex-direction:column;gap:12px}.app-controls-group{display:flex;flex-direction:column;gap:1px}.app-controls-row{display:grid;grid-template-columns:20px 1fr;align-items:center;grid-gap:10px;gap:10px;width:100%;margin:0;padding:6px 8px;border:none;background:transparent;cursor:pointer;border-radius:8px;font:inherit;color:inherit;text-align:left;transition:background-color .15s ease}.app-controls-row:focus-visible,.app-controls-row:hover{background:var(--app-controls-hover)}.app-controls-row:focus-visible .app-controls-row-label,.app-controls-row:hover .app-controls-row-label{color:var(--app-controls-title)}.app-controls-row:active{background:var(--app-controls-field-hover)}.app-controls-row-label{font-size:12.5px;font-weight:450;line-height:18px;letter-spacing:-.005em;color:var(--app-controls-text);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;transition:color .15s ease}.app-controls-preset .ui-dropdown-trigger{width:100%}.app-controls-field{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;padding:4px 8px;min-height:32px}.app-controls-field:hover .icon-hover-effect{opacity:1;transform:scale(1.18)}.app-controls-field .ui-slider{width:107px;margin-right:-7px}.app-controls-thickness{justify-self:end;min-width:0}.ui-slider{display:flex;align-items:center;height:20px;padding:0 7px;border-radius:8px;cursor:pointer;touch-action:none}.ui-slider-rail{position:relative;width:100%;height:3px;border-radius:2px;background:var(--app-controls-field-border)}.ui-slider-fill{position:absolute;top:0;left:0;height:100%;border-radius:2px;background:var(--icon-color);opacity:.45}.ui-slider-tick{position:absolute;top:50%;width:3px;height:3px;margin-left:-1.5px;border-radius:50%;transform:translateY(-50%);background:var(--app-controls-muted);opacity:.7}.ui-slider-tick[data-passed=true]{background:var(--icon-color);opacity:1}.ui-slider-thumb{position:absolute;top:50%;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;transform:translateY(-50%);background:var(--icon-color);box-shadow:0 1px 3px rgba(0,0,0,.28);transition:left .14s cubic-bezier(.2,.8,.3,1),box-shadow .15s ease}.ui-slider:focus-visible .ui-slider-thumb,.ui-slider:hover .ui-slider-thumb{box-shadow:0 1px 3px rgba(0,0,0,.28),0 0 0 4px var(--app-controls-hover)}.ui-slider[data-dragging=true] .ui-slider-thumb{transition:none}.simulation-clock-controls{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;padding-left:2px}.simulation-clock-transport{display:flex;align-items:center;gap:1px}.app-controls-play-button{display:flex;align-items:center;justify-content:center;margin:0;padding:4px;border:none;background:transparent;cursor:pointer;border-radius:8px;color:inherit;transition:background-color .15s ease}.app-controls-play-button:focus-visible,.app-controls-play-button:hover{background:var(--app-controls-hover)}.simulation-clock-time{margin:0 auto;padding:2px 7px;border:1px solid var(--app-controls-field-border);border-radius:7px;background:var(--app-controls-field-bg);font-family:var(--font-geist-mono),monospace;font-size:12px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;color:var(--app-controls-title);-webkit-user-select:none;-moz-user-select:none;user-select:none}.simulation-clock-speed{display:flex;align-items:center;gap:7px;margin:0}.simulation-clock-speed-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--app-controls-muted);-webkit-user-select:none;-moz-user-select:none;user-select:none}.simulation-clock-speed-dropdown .ui-dropdown-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ui-dropdown{position:relative}.ui-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:5px 8px 5px 10px;border:1px solid var(--app-controls-field-border);border-radius:8px;background:var(--app-controls-field-bg);color:var(--app-controls-title);font:inherit;font-size:12px;font-weight:500;line-height:16px;letter-spacing:-.005em;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .15s ease,border-color .15s ease}.ui-dropdown-trigger:focus-visible,.ui-dropdown-trigger:hover{background:var(--app-controls-field-hover)}.ui-dropdown[data-open=true] .ui-dropdown-trigger{border-color:var(--icon-color);background:var(--app-controls-field-hover)}.ui-dropdown-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-dropdown-chevron{flex-shrink:0;color:var(--app-controls-muted);transition:transform .18s ease,color .15s ease}.ui-dropdown-trigger:hover .ui-dropdown-chevron{color:var(--app-controls-text)}.ui-dropdown[data-open=true] .ui-dropdown-chevron{transform:rotate(180deg);color:var(--icon-color)}.ui-dropdown-menu{position:absolute;top:calc(100% + 6px);z-index:30;min-width:100%;max-height:360px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none;margin:0;padding:4px;list-style:none;border:1px solid var(--app-controls-field-border);border-radius:10px;background:var(--app-controls-menu-bg);box-shadow:var(--app-controls-menu-shadow);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);animation:ui-dropdown-in .13s ease-out}.ui-dropdown-menu::-webkit-scrollbar{display:none}.ui-dropdown[data-align=start] .ui-dropdown-menu{left:0}.ui-dropdown[data-align=end] .ui-dropdown-menu{right:0}@keyframes ui-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ui-dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px;border-radius:6px;font-size:12px;font-weight:450;line-height:16px;color:var(--app-controls-text);white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ui-dropdown-option[data-active=true]{background:var(--app-controls-hover);color:var(--app-controls-title)}.ui-dropdown-option[aria-selected=true]{color:var(--app-controls-title);font-weight:600}.ui-dropdown-check{flex-shrink:0;color:var(--icon-color);opacity:0}.ui-dropdown-option[aria-selected=true] .ui-dropdown-check{opacity:1}.app-controls :focus-visible{outline:2px solid var(--icon-color);outline-offset:1px}.about-backdrop{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.22);-webkit-backdrop-filter:blur(7px) saturate(120%);backdrop-filter:blur(7px) saturate(120%);font-family:var(--font-geist-sans),system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-user-select:none;user-select:none;-webkit-user-select:none;animation:about-backdrop-in .16s ease-out}[data-theme=dark] .about-backdrop{background:rgba(0,0,0,.5)}.about-backdrop *,.about-backdrop :after,.about-backdrop :before,.about-panel{box-sizing:border-box}.about-panel{width:min(520px,100%);max-height:100%;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:18px;padding:20px;border-radius:14px;border:1px solid var(--app-controls-border);background:var(--app-controls-bg);box-shadow:var(--app-controls-shadow);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);color:var(--app-controls-text);font-feature-settings:"cv11","ss01";scrollbar-width:none;-ms-overflow-style:none;animation:about-panel-in .18s cubic-bezier(.2,.8,.3,1)}.about-panel::-webkit-scrollbar{display:none}.about-title{font-size:19px;font-weight:650;letter-spacing:-.02em;color:var(--app-controls-title)}.about-section{display:flex;flex-direction:column;gap:7px;padding-top:14px;border-top:1px solid var(--app-controls-divider)}.about-subtitle{margin:0;font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:var(--app-controls-title)}.about-text{margin:0;font-size:12.5px;font-weight:450;line-height:1.55;letter-spacing:-.005em;color:var(--app-controls-text)}.about-link{color:var(--icon-color);font-weight:550;-webkit-text-decoration-color:color-mix(in srgb,var(--icon-color) 40%,transparent);text-decoration-color:color-mix(in srgb,var(--icon-color) 40%,transparent);text-underline-offset:2px}.about-link:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.about-inline-icon{display:inline-flex;vertical-align:-4px;margin-inline:2px}.about-key{display:inline-block;min-width:19px;margin-inline:2px;padding:1px 5px;border:1px solid var(--app-controls-field-border);border-radius:5px;background:var(--app-controls-field-bg);color:var(--app-controls-title);font-family:var(--font-geist-mono),monospace;font-size:11px;font-weight:600;text-align:center}.about-train-sample{position:relative;display:inline-flex;vertical-align:-4px;margin-inline:2px;cursor:pointer}.about-train-tooltip{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);z-index:1;padding:4px 8px;border:1px solid rgba(0,0,0,.08);border-radius:7px;background:#ffffff;color:#000000;box-shadow:0 4px 14px rgba(0,0,0,.16);font-size:12.5px;font-weight:500;line-height:16px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .14s ease}[data-theme=dark] .about-train-tooltip{border-color:rgba(255,255,255,.16);background:#000000;color:#ffffff;box-shadow:0 4px 14px rgba(0,0,0,.6)}.about-train-sample:focus-visible .about-train-tooltip,.about-train-sample:hover .about-train-tooltip{opacity:1}.about-train-tooltip-status{margin-left:9px;color:#e2231a;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}[data-theme=dark] .about-train-tooltip-status{color:#ff6b62}.about-portrait-ring{flex-shrink:0;align-self:flex-start;width:106px;height:106px;padding:5px;border:2px dashed rgba(94,92,94,.19);border-radius:50%}[data-theme=dark] .about-portrait-ring{border-color:rgba(255,255,255,.22)}.about-portrait{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}.about-close{align-self:flex-end;margin:0;padding:6px 16px;border:1px solid var(--app-controls-field-border);border-radius:8px;background:var(--app-controls-field-bg);color:var(--app-controls-title);font:inherit;font-size:12.5px;font-weight:550;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.about-close:focus-visible,.about-close:hover{background:var(--app-controls-field-hover);border-color:var(--icon-color)}.about-backdrop :focus-visible{outline:2px solid var(--icon-color);outline-offset:1px}@keyframes about-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes about-panel-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.about-backdrop,.about-panel,.app-controls-settings-panel,.ui-dropdown-menu{animation:none}.ui-slider-thumb{transition:none}}@media print{@page{size:portrait;margin:8mm}main,main *{-webkit-print-color-adjust:exact;print-color-adjust:exact}body,html{width:auto;height:auto;overflow:visible}.about-backdrop,.app-controls,.map-tooltip,[data-layer^=detached-train-units-],[data-layer^=trains-],nextjs-portal{display:none!important}main{display:block;min-height:0}main .map-container{width:100%!important;height:auto!important;margin:0 auto;page-break-inside:avoid;break-inside:avoid}}