/* Compact driving instruments and calm, stable overlays. */
.journey-main .cab-dashboard{max-width:760px;grid-template-columns:34px minmax(0,1fr);gap:10px;margin:12px auto}
.journey-follow .driving-controls{display:grid;grid-template-columns:minmax(170px,1fr) 180px 64px;grid-template-rows:auto auto auto auto;align-items:center;gap:4px 18px;min-height:0;padding:18px 20px;max-width:650px;width:100%;box-sizing:border-box}
.driving-controls .cab-instruments{grid-column:1;grid-row:1;display:flex;flex-direction:column;justify-content:center;gap:16px;align-self:center}
.driving-controls .drive-modes{width:fit-content;gap:3px}.drive-modes button{padding:8px 10px;font-size:11px}
.driving-controls .cab-speed{display:flex;align-items:center;gap:18px}.cab-speed .drive-current strong{font-size:32px}.cab-speed .speed-limit{width:42px;height:42px;font-size:21px}
.driving-controls .lever-instrument{grid-column:2;grid-row:1;transform:none;align-self:center;width:180px}.driving-controls .cab-lever{width:180px;height:128px}.driving-controls .lever-target{margin:4px 0 0}
.driving-controls .train-service-buttons{grid-column:3;grid-row:1;display:flex;flex-direction:column;align-items:center;gap:5px}.driving-controls .service-instrument{width:64px;height:62px;padding:0;border:0}.driving-controls .service-instrument+.service-instrument{border:0;padding:0;width:64px}.driving-controls .train-service-buttons button{width:62px;min-height:60px;padding:2px}.driving-controls .train-service-buttons img{width:58px!important;height:58px!important}
.driving-controls p.train-service-status{grid-column:1/-1;grid-row:2;margin:5px 0 0;min-height:0;line-height:1.5;font-size:11px}.driving-controls .drive-warning{grid-column:1/-1;grid-row:3;min-height:0;padding:8px 10px;margin:4px 0;border:0;background:#e6ebd9}.driving-controls [data-drive-note]{grid-column:1/-1;grid-row:4;font-size:10px;line-height:1.5;min-height:0;margin:4px 0 0}.driving-controls p:empty{display:none}.drive-warning[hidden]{display:none!important}.drive-takeover{grid-column:1/-1}
.journey-main .cab-dashboard>.travel-readouts{display:grid;grid-template-columns:1fr 1.2fr .8fr 1.2fr;gap:18px;align-items:start;margin:0;padding:12px 0}.travel-readouts>div{border:0;padding:0;text-align:left;min-width:0}.journey-main .travel-readouts strong{font-size:17px}.journey-main .travel-readouts small{margin-bottom:5px}.travel-readouts [data-score-host]{grid-column:auto;position:relative;min-height:65px}
.journey-score{background:none;border:0;padding:0;font-size:11px;line-height:1.5}.journey-score details{margin:0}.journey-score summary{display:grid;grid-template-columns:1fr 12px;gap:7px;list-style:none;padding:0;text-align:left}.journey-score summary::-webkit-details-marker{display:none}.journey-score summary>span:first-child{display:flex;flex-direction:column;gap:4px;color:#6e7d70}.journey-score summary strong{color:#28483d}.score-expand{grid-column:2;grid-row:1;align-self:center}.score-meter{grid-column:1/-1;height:6px;background:#dfe4d7;border-radius:8px;overflow:hidden;width:100%}.score-meter i{display:block;height:100%;border-radius:8px;background:#65916a}.score-fair .score-meter i{background:#bf953c}.score-poor .score-meter i{background:#bf6557}.journey-score details[open]{position:absolute;z-index:40;width:min(350px,calc(100vw - 50px));background:#faf9f0;border:1px solid #d5ddcd;box-shadow:0 8px 30px #20362a20;border-radius:12px;padding:15px;left:0;top:0}.journey-score details[open] summary>span:first-child{flex-direction:row;justify-content:space-between}.journey-score details[open] summary{margin-bottom:12px}.journey-score details[open] .score-expand{transform:rotate(180deg)}
.new-dot{width:5px;height:5px;background:#ba7567;box-shadow:0 0 0 1px #faf8ef;margin-left:5px}.wild-badge{font-size:11px;font-weight:800;letter-spacing:1px;background:#f0d993;color:#684820;border:1px solid #b98e3c;padding:5px 9px}.train-slot:has(.wild-badge){border-color:#b98e3c}.wild-control small{display:none}.wild-control{gap:8px}.wild-control .icon-button{width:26px;height:26px}
.goal-grid{gap:12px}.goal-card{padding:16px;gap:14px}.goal-card h2{font-size:15px;margin:0 0 6px}.goal-card p,.goal-date{font-size:11px}.goal-medal{width:36px;height:36px}.goal-reward>div{max-height:65px}.goal-reward img.goal-box-art{height:60px;width:70px;object-fit:contain}.goal-reward strong{font-size:11px}.goal-reward .button{min-height:32px;font-size:10px;padding:7px 10px}
.daily-box-row article{position:relative;isolation:isolate;gap:10px;padding:12px 8px 16px;background:none!important;box-shadow:none!important}.daily-box-row article::before,.daily-box-row article::after{display:none!important}.box-slot-label{min-height:18px;font-size:10px;color:#93713a;display:flex;align-items:center;justify-content:center;gap:5px}.chest-art{position:relative;isolation:isolate;width:100%}.chest-art::before{content:'';position:absolute;z-index:-1;inset:35% 4% 0;border-radius:50%;background:radial-gradient(ellipse,var(--chest-glow,#c5cec0) 0%,transparent 70%);opacity:.6}.rarity-common{--chest-glow:#bbc9b5}.rarity-uncommon{--chest-glow:#b3ca81}.rarity-rare{--chest-glow:#87bed2}.rarity-epic{--chest-glow:#b698ce}.rarity-legendary{--chest-glow:#dfbf63}.chest-art img{display:block;position:relative;width:100%;object-fit:contain;filter:none}.box-odds-trigger{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:transparent;border:0;padding:8px 4px;color:#59725f;font:inherit;font-size:11px;cursor:pointer}.box-odds-trigger:hover{color:#164e51;text-decoration:underline}.daily-box-row .button{min-height:36px}.garage-box{isolation:isolate}.garage-box::before{top:35%;bottom:5%;opacity:.55}
#modal.box-odds-dialog{width:min(560px,calc(100vw - 28px));max-height:85dvh;padding:22px;background:#faf9f1;border-radius:18px}.box-odds-dialog .modal-body{padding:0}.box-odds-panel>p{font-size:12px;line-height:1.6;margin:4px 0 18px;color:#71806e}.odds-parts{max-height:55dvh;overflow:auto;overscroll-behavior:contain;padding:0 6px}.odds-parts article{display:grid;grid-template-columns:90px minmax(0,1fr) 66px;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #dfe4d8}.odds-parts article:last-child{border:0}.odds-parts article>div{height:46px;display:flex;align-items:center}.odds-parts .carriage-art{width:100%;height:46px;object-fit:contain}.odds-parts article>span{display:flex;flex-direction:column;gap:7px}.odds-parts strong{font-size:12px;line-height:1.4}.odds-parts b{text-align:right;font-size:13px;font-variant-numeric:tabular-nums}.odds-parts .rarity-badge{font-size:10px}
#modal.floating-box-modal{overflow:visible;color:#244239;isolation:isolate}#modal.floating-box-modal::backdrop{background:transparent;backdrop-filter:none}.floating-box-modal::before{content:'';position:absolute;inset:5% -10%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#eeeedeeF 15%,#e8ecddd9 45%,#e8ecdd50 62%,transparent 74%)}.floating-box-modal .modal-heading button{color:#365549;background:#f8f8eddd}.floating-box-modal .box-unopened{overflow:visible}.floating-box-modal .box-unopened::before{opacity:.45;top:35%;bottom:10%}.floating-box-modal .box-result h3{color:#244239}.floating-box-modal .box-result .rarity-badge{color:#58705c}
.store-premium{margin-bottom:32px}.premium-store>h2{margin:30px 0 16px}.premium-store .store-grid{margin-bottom:30px}
.tutorial-overlay{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;background:#f2f2e780;pointer-events:auto}.tutorial-overlay .manual-tutorial,.tutorial-overlay .first-journey-guide{position:relative!important;inset:auto!important;transform:none!important;box-sizing:border-box;width:min(430px,100%);max-width:430px;max-height:85dvh;overflow:auto;padding:28px!important;margin:0!important;background:#fbfaf2;border:1px solid #d6dfcc;border-radius:18px;box-shadow:0 12px 55px #304b302b;color:#29483b;text-align:left}.tutorial-overlay h3,.tutorial-overlay .guide-copy>strong{font-size:22px;line-height:1.3;display:block;margin:10px 0 14px}.tutorial-overlay p{font-size:14px!important;line-height:1.7!important;margin:12px 0 22px}.tutorial-overlay small{font-size:11px;color:#7e8d76}.tutorial-overlay .guide-actions,.manual-tutorial>div{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.tutorial-close{position:absolute;right:10px;top:10px;width:30px;height:30px;font-size:22px}.tutorial-highlight{outline:none!important;box-shadow:none!important}#guide-dock:empty{display:none}
.journey-running-layout .journey-main .travel-scene{height:var(--scene-interior-height,240px)!important}.train-interior .interior-layer{object-fit:contain;object-position:center bottom}.arrival-actions [data-action=endJourneyPrompt]{color:#b35448;font-weight:600;padding:10px 14px}.side-settings[data-action=support] svg path:nth-child(2){transform:translateY(1px)}
.auth-page .auth-content{transform:none;padding:55px 20px 35px;box-sizing:border-box;max-width:480px;margin:0 auto}.auth-page .auth-logo{display:block;width:230px;max-width:75%;height:auto;margin:0 auto 12px}.auth-page .auth-card{padding:22px 28px}.auth-card h1{font-size:21px;margin:0 0 20px;text-align:center}.auth-card label{line-height:1.5}.auth-card input{box-sizing:border-box;max-width:100%}.auth-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 12px;margin-top:18px}.auth-links button{font-size:11px;line-height:1.5;padding:5px}.auth-error:empty{display:none}.auth-error{font-size:12px;line-height:1.6;margin:14px 0}.auth-page .online-connection{font-size:11px;margin-top:18px}.auth-page:has([data-mode=register]) .auth-content{padding-top:28px}.auth-page:has([data-mode=register]) .auth-logo{width:190px}
@media(max-width:650px){.journey-main .cab-dashboard{grid-template-columns:28px minmax(0,1fr);gap:6px}.journey-follow .driving-controls{grid-template-columns:minmax(0,1fr) 125px;gap:7px 6px;padding:12px;min-height:0}.driving-controls .cab-instruments{grid-column:1;grid-row:1;gap:12px}.driving-controls .drive-modes{flex-wrap:wrap;gap:2px}.drive-modes button{font-size:10px;padding:6px 7px}.driving-controls .cab-speed{gap:9px}.cab-speed .drive-current strong{font-size:27px}.cab-speed .speed-limit{width:32px;height:32px;font-size:17px}.driving-controls .lever-instrument{grid-column:2;grid-row:1;width:125px}.driving-controls .cab-lever{width:125px;height:100px}.driving-controls .train-service-buttons{grid-column:1/-1;grid-row:2;flex-direction:row;gap:24px;justify-content:center}.driving-controls .service-instrument{height:48px;width:48px}.driving-controls .service-instrument+.service-instrument{width:48px}.driving-controls .train-service-buttons button{width:48px;min-height:48px}.driving-controls .train-service-buttons img{width:45px!important;height:45px!important}.driving-controls p.train-service-status{grid-row:3}.driving-controls .drive-warning{grid-row:4}.driving-controls [data-drive-note]{grid-row:5}.journey-main .cab-dashboard>.travel-readouts{grid-template-columns:1fr 1fr;gap:16px;padding:14px 4px}.journey-main .travel-readouts strong{font-size:16px}.daily-box-row{gap:8px}.daily-box-row article{padding:6px 4px 14px}.odds-parts article{grid-template-columns:64px minmax(0,1fr) 60px;gap:10px}.odds-parts strong{font-size:11px}.goal-card{padding:12px;gap:10px}.goal-card h2{font-size:14px}.auth-page .auth-content{padding:60px 14px 30px}.auth-page .auth-card{padding:20px}.auth-page .auth-logo{width:185px}.tutorial-overlay{padding:15px}.journey-running-layout .journey-main .travel-scene{height:var(--scene-interior-height,190px)!important}}

@media(max-width:650px){.journey-main .travel-readouts>div,.journey-main .travel-readouts .arrival-readout{grid-column:auto;grid-row:auto}.journey-main .travel-readouts strong{white-space:normal}.journey-main .travel-readouts .arrival-time{flex-wrap:wrap}}
