*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#1a1a2e}#canvas{position:fixed;top:0;left:0;width:100%;height:100%}#loading{position:fixed;top:0;left:0;width:100%;height:100%;background:#1a1a2e;display:flex;align-items:center;justify-content:center;z-index:100;transition:opacity .5s ease}#loading.hidden{opacity:0;pointer-events:none}.loading-content{text-align:center;color:#fff}.loading-content h1{font-size:2rem;margin-bottom:1rem;font-weight:300}.loading-bar{width:200px;height:4px;background:#fff3;border-radius:2px;overflow:hidden}.loading-progress{width:0%;height:100%;background:linear-gradient(90deg,#4facfe,#00f2fe);transition:width .3s ease}#ui{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}#ui>*{pointer-events:auto}#hud-corner{position:fixed;left:20px;bottom:20px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;pointer-events:none}#hud-corner>*{pointer-events:auto}#speedometer{background:#00000080;padding:12px 20px;border-radius:8px;backdrop-filter:blur(10px);text-align:center;min-width:132px;box-sizing:border-box}#speedometer .speed-value{font-size:2rem;font-weight:700;color:#4facfe;line-height:1}#speedometer .speed-label{font-size:.75rem;color:#fff9;text-transform:uppercase;letter-spacing:1px;margin-top:4px}#conditions{position:fixed;top:20px;left:20px;min-width:104px;pointer-events:auto}#cond-toggle{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:#0000006b;padding:10px 16px;border:1px solid rgba(255,255,255,.08);border-radius:8px;backdrop-filter:blur(10px);cursor:pointer;transition:background .15s,border-color .15s}#cond-toggle:hover{background:#0000008f;border-color:#ffffff38}#conditions .cond-manual{display:none;margin-top:5px;font-size:.6rem;text-transform:uppercase;letter-spacing:1.4px;color:#ffd27f}#conditions.manual .cond-manual{display:block}#cond-panel{margin-top:8px;width:232px;background:#0000009e;border:1px solid rgba(255,255,255,.12);border-radius:8px;backdrop-filter:blur(10px);padding:12px 14px 14px;color:#ffffffd9}#cond-panel.hidden{display:none}#cond-panel .cond-field,#cond-panel .cond-label{display:flex;justify-content:space-between;font-size:.65rem;text-transform:uppercase;letter-spacing:1.2px;color:#ffffff8c;margin-bottom:6px}#cond-panel .cond-label{margin-top:14px}#cond-panel output{color:#fff;letter-spacing:.5px}#cond-hour{width:100%;margin:0 0 10px;accent-color:#ffd27f}#cond-panel .cond-row{display:flex;flex-wrap:wrap;gap:5px}#cond-panel .cond-row button,#cond-panel .cond-auto{flex:1 1 auto;font:inherit;font-size:.72rem;padding:5px 8px;color:#fffc;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:5px;cursor:pointer;transition:background .12s,color .12s}#cond-panel .cond-row button:hover,#cond-panel .cond-auto:hover{background:#ffffff2e;color:#fff}#cond-panel .cond-row button.on{background:#ffd27fe6;border-color:#ffd27fe6;color:#1a1408}#cond-panel .cond-auto{width:100%;margin-top:14px;font-size:.7rem}#conditions .cond-time{display:flex;align-items:center;gap:8px;font-size:1.35rem;font-weight:600;color:#fff;line-height:1}#conditions .cond-icon{font-size:1.1rem;opacity:.9}#conditions .cond-weather{margin-top:5px;font-size:.7rem;text-transform:uppercase;letter-spacing:1.2px;color:#ffffffa8}#mission{position:fixed;top:22px;left:50%;transform:translate(-50%);pointer-events:none;text-align:center;width:min(420px,60vw)}#mission.hidden{display:none}#mission-title{display:inline-block;padding:8px 18px;font-size:.86rem;font-weight:600;text-transform:uppercase;letter-spacing:2.4px;color:#ffd9a8;background:#1c08009e;border:1px solid rgba(255,150,60,.35);border-radius:6px;backdrop-filter:blur(10px)}#mission-arrow{display:inline-flex;align-items:center;gap:9px;margin-top:8px;padding:5px 13px 5px 10px;background:#1c08008c;border:1px solid rgba(255,150,60,.28);border-radius:20px;backdrop-filter:blur(10px)}#mission-arrow.hidden{display:none}#mission-arrow-point{display:inline-block;font-size:1.15rem;line-height:1;color:#ff9a4d;transform:rotate(-90deg);transition:transform .08s linear}#mission-arrow-distance{font-size:.72rem;font-weight:600;letter-spacing:1.2px;color:#ffffffbf;font-variant-numeric:tabular-nums}#mission-bar{margin:10px auto 0;padding:9px 14px 11px;background:#0000008c;border:1px solid rgba(255,255,255,.12);border-radius:6px;backdrop-filter:blur(10px)}#mission-bar.hidden{display:none}#mission-bar-label{font-size:.6rem;text-transform:uppercase;letter-spacing:1.6px;color:#ffffff8c;margin-bottom:6px}#mission-bar-track{height:9px;background:#ffffff1f;border-radius:5px;overflow:hidden}#mission-bar-fill{height:100%;width:0%;background:#ff8a3c;border-radius:5px;transition:width .15s linear}#mission.on-station #mission-bar-fill{background:#6ee07a}#camera-box{position:fixed;top:20px;right:20px;pointer-events:auto;text-align:right}#cam-toggle{display:inline-flex;align-items:center;gap:7px;font:inherit;padding:8px 12px;color:#ffffffd9;background:#0000006b;border:1px solid rgba(255,255,255,.08);border-radius:8px;backdrop-filter:blur(10px);cursor:pointer;transition:background .15s,border-color .15s}#cam-toggle:hover{background:#0000008f;border-color:#ffffff38}#camera-box .cam-icon{font-size:.9rem;opacity:.75}#camera-box .cam-label{font-size:.72rem;text-transform:uppercase;letter-spacing:1.2px}#camera-box .cam-state{font-size:.6rem;text-transform:uppercase;letter-spacing:1.2px;color:#ffffff6b}#camera-box.unsaved .cam-state{color:#ffd27f}#cam-panel{margin-top:8px;width:214px;background:#0000009e;border:1px solid rgba(255,255,255,.12);border-radius:8px;backdrop-filter:blur(10px);padding:12px 14px 14px;color:#ffffffd9;text-align:left}#cam-panel.hidden{display:none}#cam-panel .cam-help{margin:0 0 8px;font-size:.66rem;line-height:1.5;color:#ffffff8c}#cam-panel .cam-help b{color:#ffffffd9;font-weight:600}#cam-panel .cam-keys{margin-bottom:12px}#cam-panel .cam-note{margin:12px 0 0;font-size:.62rem;color:#ffffff61}#cam-panel button{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;margin-top:5px;font:inherit;font-size:.72rem;padding:6px 9px;color:#fffc;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:5px;cursor:pointer;transition:background .12s,color .12s}#cam-panel button b{font-size:.62rem;font-weight:600;color:#ffffff73}#cam-panel button:hover{background:#ffffff2e;color:#fff}#cam-panel .cam-reset{margin-top:10px;background:transparent;color:#ffffff80}#camera-box.is-default .cam-reset{display:none}#sound-box{position:fixed;top:70px;right:20px;pointer-events:auto;text-align:right}#sound-toggle{display:inline-flex;align-items:center;gap:7px;font:inherit;padding:8px 12px;color:#ffffffd9;background:#0000006b;border:1px solid rgba(255,255,255,.08);border-radius:8px;backdrop-filter:blur(10px);cursor:pointer;transition:background .15s,border-color .15s}#sound-toggle:hover{background:#0000008f;border-color:#ffffff38}#sound-box .sound-icon{font-size:.9rem;opacity:.75}#sound-box .sound-label{font-size:.72rem;text-transform:uppercase;letter-spacing:1.2px}#sound-box .sound-state{font-size:.6rem;text-transform:uppercase;letter-spacing:1.2px;color:#ffffff6b}#sound-box.is-on .sound-state{color:#8fe3b0}#sound-box.is-on .sound-icon{opacity:1}#conditions .cond-season{margin-top:2px;font-size:.6rem;text-transform:uppercase;letter-spacing:1.4px;color:#ffffff6b}#controls-hint{color:#ffffffb3;font-size:.875rem;background:#00000080;padding:12px 16px;border-radius:8px;backdrop-filter:blur(10px)}#controls-hint p{margin:4px 0}#zone-panel{position:fixed;top:50%;right:40px;transform:translateY(-50%);width:350px;max-height:80vh;background:#1a1a2ef2;border-radius:16px;padding:24px;color:#fff;backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px -12px #00000080;transition:opacity .3s ease,transform .3s ease}#zone-panel.hidden{opacity:0;transform:translateY(-50%) translate(20px);pointer-events:none}.panel-content h2{font-size:1.5rem;margin-bottom:16px;font-weight:600;background:linear-gradient(135deg,#4facfe,#00f2fe);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.panel-content p{line-height:1.6;color:#fffc;margin-bottom:12px}.panel-content ul{list-style:none;margin-top:12px}.panel-content li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1);color:#ffffffb3}.panel-content li:last-child{border-bottom:none}.panel-content a{color:#4facfe;text-decoration:none}.panel-content a:hover{text-decoration:underline}#minimap{position:fixed;bottom:20px;right:20px;width:150px;height:150px;background:#00000080;border-radius:8px;overflow:hidden;border:2px solid rgba(255,255,255,.2)}#minimap-canvas{width:100%;height:100%}.zone-label{position:absolute;color:#fff;font-size:.75rem;text-transform:uppercase;letter-spacing:2px;text-shadow:0 2px 4px rgba(0,0,0,.5);pointer-events:none}@media(max-width:768px){#zone-panel{width:calc(100% - 40px);inset:auto 20px 100px;transform:none;max-height:40vh}#zone-panel.hidden{transform:translateY(20px)}#controls-hint{display:none}#minimap{width:100px;height:100px}}#vehicle-selector{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;z-index:40}.vs-inner{pointer-events:auto;cursor:pointer;margin-bottom:8vh;padding:1.1rem 1.6rem 1rem;border-radius:14px;background:#141c26d1;backdrop-filter:blur(8px);color:#eef4fa;text-align:center;font-family:system-ui,-apple-system,sans-serif;box-shadow:0 10px 40px #00000059}.vs-title{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;opacity:.6;margin-bottom:.5rem}.vs-row{display:flex;align-items:center;justify-content:center;gap:1.1rem}.vs-name{min-width:11rem;font-size:1.45rem;font-weight:600}.vs-arrow{pointer-events:auto;width:2.1rem;height:2.1rem;border:0;border-radius:50%;background:#ffffff1a;color:#eef4fa;font-size:1.3rem;line-height:1;cursor:pointer}.vs-arrow:hover{background:#fff3}.vs-dots{display:flex;gap:.35rem;justify-content:center;margin:.7rem 0 .55rem}.vs-dot{width:6px;height:6px;border-radius:50%;background:#ffffff40}.vs-dot.on{background:#4facfe}.vs-hint{font-size:.72rem;opacity:.55}#rail{position:fixed;bottom:26px;left:50%;transform:translate(-50%);pointer-events:none;text-align:center;width:min(430px,74vw);font-family:inherit}#rail.hidden{display:none}#rail-station{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:2.6px;color:#cfe6ff;margin-bottom:7px;text-shadow:0 1px 3px rgba(0,0,0,.8)}#rail-align{position:relative}#rail-platform{position:relative;height:20px;border-radius:4px;background:#0a1622b8;border:1px solid rgba(150,200,240,.4);overflow:hidden;backdrop-filter:blur(10px)}#rail-train{position:absolute;top:3px;bottom:3px;border-radius:3px;background:linear-gradient(180deg,#8fd8ff,#4aa8dd);box-shadow:0 0 10px #78d2ff80;transition:background .12s linear}#rail-train.good{background:linear-gradient(180deg,#b6f0a8,#4fbf5f)}#rail-train.perfect{background:linear-gradient(180deg,#d8ffc8,#34d94a);box-shadow:0 0 16px #5af078bf}#rail-train.short{background:linear-gradient(180deg,#ffc9a0,#d9622f)}#rail-marks{display:flex;justify-content:space-between;margin-top:3px}#rail-marks span{width:1px;height:5px;background:#b4d7f58c}#rail-marks span:nth-child(2){height:9px;width:2px;background:#ffd9a8}#rail-row{display:flex;align-items:center;gap:12px;margin-top:9px}#rail-signal{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 9px;background:#0a162299;border:1px solid rgba(150,200,240,.28);border-radius:20px;backdrop-filter:blur(10px)}#rail-lamp{width:12px;height:12px;border-radius:50%;background:#3a2020;box-shadow:inset 0 0 3px #000c}#rail-lamp.red{background:#ff3b2f;box-shadow:0 0 10px #ff3c2de6}#rail-lamp.amber{background:#ffb020;box-shadow:0 0 10px #ffb020e6}#rail-lamp.green{background:#2bd94a;box-shadow:0 0 10px #2bd94ae6}#rail-signal-text{font-size:.66rem;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:#cfe6ff}#rail-doors{flex:1;height:8px;border-radius:4px;background:#0a162299;border:1px solid rgba(150,200,240,.22);overflow:hidden}#rail-doors-fill{height:100%;width:0;background:linear-gradient(90deg,#ffd9a8,#ffb020)}#rail-note{margin-top:7px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:2.2px;color:#ffd9a8;min-height:1em;text-shadow:0 1px 3px rgba(0,0,0,.8)}#fuel{margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.12)}#fuel.hidden{display:none}#fuel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px;font-size:.7rem;letter-spacing:.12em;font-weight:600}#fuel-label{color:#ffffffb3}#fuel-percent{color:#fff;font-variant-numeric:tabular-nums}#fuel-bar{position:relative;width:100%;height:10px;border-radius:5px;background:#ffffff29;overflow:hidden}#fuel-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent calc(25% - 1px),rgba(0,0,0,.45) calc(25% - 1px),rgba(0,0,0,.45) 25%,transparent 25%,transparent calc(50% - 1px),rgba(0,0,0,.45) calc(50% - 1px),rgba(0,0,0,.45) 50%,transparent 50%,transparent calc(75% - 1px),rgba(0,0,0,.45) calc(75% - 1px),rgba(0,0,0,.45) 75%,transparent 75%);pointer-events:none}#fuel-fill{height:100%;width:100%;border-radius:5px;background:#43d98b;transition:width .25s linear,background-color .3s ease}#fuel.low #fuel-fill{background:#ffb547}#fuel.empty #fuel-fill{background:#ff5f56}#fuel.filling #fuel-fill{animation:fuel-pulse 1.1s ease-in-out infinite}@keyframes fuel-pulse{0%,to{opacity:1}50%{opacity:.55}}#fuel-scale{display:flex;justify-content:space-between;margin-top:3px;font-size:.55rem;color:#ffffff73}#fuel.low #fuel-label,#fuel.low #fuel-percent{color:#ffb547}#fuel.empty #fuel-label,#fuel.empty #fuel-percent{color:#ff5f56}
