/* An optional collector's cabinet. The railway's quiet default UI stays small. */
.train-collection-link{display:flex;align-items:center;gap:13px;width:100%;padding:13px 12px;border:1px solid #c5ae7752;border-radius:13px;background:linear-gradient(120deg,#d4bd8720,#d4bd8707);color:#eee4c9;text-align:left}
.train-collection-link[hidden]{display:none!important}
.train-collection-link:hover{background:#d4bd8725;border-color:#c5ae778c}
.train-collection-link>span:nth-child(2){flex:1}.train-collection-link strong{display:block;font-size:14px;font-weight:400}.train-collection-link small{display:block;color:#bac2ab;font-size:11px;margin-top:5px}
.train-collection-link>svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5}
.collection-link-symbol{width:62px;flex-shrink:0}.collection-link-symbol svg{width:100%;display:block}
.has-train-cabinet #trainInspector .livery-swatches,.has-train-cabinet #trainInspector .setting:has(#coachCountValue),.has-train-cabinet #trainInspector #coachCount{display:none}
/* The model leads; the complete catalogue stays visible beside it. */
.train-cabinet{--ink:#294237;--muted:#647564;--paper:#f5f1e5;--rule:#d5d7c5;color:var(--ink);background:var(--paper);padding:0;border:1px solid #ede8d8;border-radius:18px;width:min(1240px,calc(100vw - 48px));max-width:none;height:min(880px,calc(100dvh - 48px));max-height:none;overflow:hidden;box-shadow:0 28px 100px #05191066;overscroll-behavior:contain}
.train-cabinet::backdrop{background:#10251dd9;backdrop-filter:blur(8px)}
.train-cabinet:not([open]){display:none}.train-cabinet [hidden]{display:none!important}
.train-cabinet button,.train-cabinet select{font-family:Arial,sans-serif;color:inherit;letter-spacing:0}.train-cabinet button{cursor:pointer}.train-cabinet button:disabled{cursor:default}
.train-cabinet :is(button,select,summary,canvas):focus-visible{outline:2px solid #806433;outline-offset:3px}
.cabinet-shell{height:100%;display:flex;flex-direction:column;min-height:0;position:relative}
.cabinet-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 25px;border-bottom:1px solid var(--rule);flex-shrink:0}
.cabinet-eyebrow{font:10px/1.5 Arial,sans-serif;letter-spacing:.12em;color:#6d745d;text-transform:uppercase}
.cabinet-header h2{font:400 29px/1.15 Georgia,serif;letter-spacing:-.6px;margin:4px 0 0;color:var(--ink)}
.cabinet-icon-button{width:44px;min-width:44px;height:44px;display:grid;place-items:center;border:1px solid #c8c9b975;border-radius:50%;background:transparent}.cabinet-icon-button:hover{background:#d9dbc966}
.train-cabinet svg:not(.cabinet-card-art svg){fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.cabinet-icon-button svg{width:18px;height:18px}
.cabinet-body{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:0;flex:1;overflow:hidden}
.cabinet-browser{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--rule);background:#e9ecde}
.cabinet-browser-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 19px 7px;font:13px/1.2 Arial,sans-serif}.cabinet-browser-heading>span:last-child{font:11px/1 Arial,sans-serif;color:#73816b}
.cabinet-filters{display:flex;gap:3px;margin:0 12px 8px;border-bottom:1px solid #d0d6c2;padding-bottom:5px}.cabinet-filters button{flex:1;min-height:44px;min-width:44px;padding:7px 8px;font-size:12px;color:#536952;background:transparent;border-radius:7px}.cabinet-filters button[aria-pressed=true]{background:#d6dec9;color:#2b4636}.cabinet-filters button:hover{background:#dde3d0}
.cabinet-trains{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:7px;overflow:auto;overscroll-behavior:contain;padding:2px 12px 13px;scrollbar-width:thin;scrollbar-color:#a8b69c transparent;min-height:0;flex:1}
.cabinet-card{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0;width:100%;min-height:118px;border:1px solid transparent;border-radius:10px;text-align:center;padding:10px 8px 16px;margin:0;background:transparent;transition:background .16s,border-color .16s}
.cabinet-card:hover{background:#f4f2e6}.cabinet-card[aria-pressed=true]{background:#fcf8e9;border-color:#ac9563;box-shadow:0 3px 9px #56604c0c}
.cabinet-card-art{display:block;position:relative;min-width:0;height:62px;align-self:stretch}.cabinet-card-art svg{display:block;width:100%;height:100%}.cabinet-card-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.cabinet-card-art:has(img:not([hidden]))>svg{visibility:hidden}
.cabinet-card-copy strong{font:400 17px/1.2 Georgia,serif;display:block;white-space:nowrap;letter-spacing:-.2px}.cabinet-card-copy>span{font:10px/1.5 Arial,sans-serif;display:block;color:#5f745d;margin-top:4px;text-transform:capitalize}
.cabinet-card-number{position:absolute;right:8px;top:7px;color:#7b8b70;font:9px/1 monospace}.cabinet-in-service{position:absolute;bottom:3px;left:0;right:0;color:#456b4a;font:9px/1.2 Arial,sans-serif}.cabinet-in-service::before{content:'';width:4px;height:4px;background:#648650;display:inline-block;border-radius:50%;margin-right:4px;vertical-align:1px}
.cabinet-browser-foot{display:none}
.cabinet-main{min-width:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bbc4aa transparent;display:flex;flex-direction:column}
.cabinet-stage{min-height:315px;flex:1 0 345px;position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 45%,#faf7eb,#e7e9db 75%);overflow:hidden}
.cabinet-stage::after{content:'';position:absolute;left:14%;right:14%;bottom:20%;height:22%;background:radial-gradient(ellipse,#41513d26,transparent 67%);filter:blur(12px);z-index:-1;pointer-events:none}
.cabinet-stage-top{position:absolute;top:15px;left:21px;right:19px;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:2;pointer-events:none}
.cabinet-edition{font:italic 24px/1.1 Georgia,serif;color:#7c8c70}.cabinet-view-switch{display:flex;padding:3px;border:1px solid #bcc5ac;border-radius:25px;background:#f4f2e3d9;pointer-events:auto}.cabinet-view-switch button{min-height:44px;padding:8px 16px;font-size:12px;border-radius:22px;background:transparent;color:#5d7157}.cabinet-view-switch button[aria-pressed=true]{background:#36513e;color:#f4eed9}
.cabinet-step-through{display:flex;align-items:center;gap:8px;pointer-events:auto}.cabinet-step-through .cabinet-icon-button{border:0;background:#f5f3e48c}.cabinet-step-through .cabinet-icon-button:hover{background:#d7dfc8}.cabinet-step-through span{font:11px/1 monospace;color:#63765c}#cabinetPrevious svg{transform:rotate(180deg)}
.cabinet-studio-light{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,#ffffff22,transparent 42%)}
#cabinetPreview{display:block;position:absolute;inset:58px 0 50px;width:100%;height:calc(100% - 108px);touch-action:none;cursor:grab;transition:opacity .16s}#cabinetPreview:active{cursor:grabbing}.preparing #cabinetPreview{opacity:.25}
.cabinet-preview-toolbar{position:absolute;z-index:2;left:21px;right:15px;bottom:9px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#5e7358}#cabinetPreviewNote{font:11px/1.5 Arial,sans-serif;color:#66795e;max-width:175px}
.cabinet-preview-toolbar>div{display:flex;align-items:center;gap:4px;flex-shrink:0}.cabinet-preview-toolbar button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border-radius:22px;font-size:12px;padding:8px 10px;background:transparent;color:#4b6546}.cabinet-preview-toolbar button:hover,.cabinet-preview-toolbar button[aria-pressed=true]{background:#cdd8bd99;color:#304d38}.cabinet-preview-toolbar svg{width:16px;height:16px}.cabinet-preview-toolbar .cabinet-icon-button{padding:8px;border:0}
.cabinet-information{padding:23px 26px;border-top:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,1fr) 218px;gap:27px;background:var(--paper);flex-shrink:0}
.cabinet-story .cabinet-eyebrow{font-size:10px;color:#82704b;letter-spacing:.08em}.cabinet-name-line{display:flex;align-items:center;gap:13px;margin:7px 0 11px}.cabinet-name-line h3{font:400 37px/1.1 Georgia,serif;letter-spacing:-1px;margin:0;color:#294537}.cabinet-power{font:10px/1.1 Arial,sans-serif;text-transform:capitalize;color:#5c7251;padding:6px 8px;border:1px solid #c6d0b7;border-radius:5px}
.cabinet-story p{font:13px/1.7 Arial,sans-serif;max-width:450px;color:#627159;margin:0}.cabinet-fine-details{margin-top:10px;color:#486443}.cabinet-fine-details summary{cursor:pointer;font:12px/1.5 Arial,sans-serif;list-style:none;display:flex;gap:14px;align-items:center;width:max-content;min-height:44px}.cabinet-fine-details summary::-webkit-details-marker{display:none}.cabinet-fine-details summary>span{font-size:18px;color:#87744a}.cabinet-fine-details[open] summary>span{transform:rotate(45deg)}.cabinet-fine-details ul{padding:0;list-style:none;margin:0;display:grid;gap:5px}.cabinet-fine-details li{font:11px/1.5 Arial,sans-serif;color:#627159;display:flex;align-items:baseline;gap:7px}.cabinet-fine-details li::before{content:'·';color:#9b885b}
.cabinet-specification{border-left:1px solid var(--rule);padding-left:23px;align-self:start;font:12px/1.5 Arial,sans-serif}.cabinet-livery-head{color:#586f4e;margin-bottom:7px}.cabinet-livery-head>span:first-child{font-size:11px}.cabinet-livery-head>span:last-child{display:none}.cabinet-liveries{display:grid;gap:4px;padding-bottom:9px;border-bottom:1px solid var(--rule)}
.cabinet-swatch{min-height:44px;display:flex;align-items:center;gap:10px;width:100%;padding:5px 8px;border-radius:7px;border:1px solid transparent;background:transparent;text-align:left;font-size:11px}.cabinet-swatch:hover{background:#e7ebda}.cabinet-swatch[aria-pressed=true]{border-color:#a7b592;background:#e5ead7}.cabinet-swatch-paint{display:block;width:27px;height:27px;flex-shrink:0;border:1px solid #00000018;border-radius:50%;background:linear-gradient(150deg,var(--paint) 0 60%,var(--trim) 62% 69%,var(--paint) 71%);box-shadow:inset 0 1px 2px #ffffff40}
.cabinet-spec-row{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--rule);font-size:11px;color:#5f7254}.cabinet-spec-row strong{font:12px/1 monospace;color:#415a48}.cabinet-spec-row select{height:44px;min-width:57px;border:1px solid #bac7aa;border-radius:6px;background:#eceede;padding:5px 9px;font-size:13px;color:#3c5846}
.cabinet-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 25px;border-top:1px solid var(--rule);background:#f4f0e3;flex-shrink:0}.cabinet-footer>div{display:grid;gap:4px}.cabinet-destination{font:12px/1.5 Arial,sans-serif;color:#66765b}.cabinet-destination strong{font-weight:400;color:#3e5c42}.cabinet-footer #cabinetCurrent{font:11px/1.5 Arial,sans-serif;color:#6c795f}
.cabinet-run{min-width:225px;min-height:49px;padding:13px 18px;display:flex;align-items:center;justify-content:space-between;gap:23px;border:1px solid #2d4b39;border-radius:9px;background:#304e3d;color:#f5ebce!important;font-size:13px}.cabinet-run:hover{background:#3d604b}.cabinet-run:disabled{background:#e1e5d5;color:#617657!important;border-color:#bbc9aa}.cabinet-run svg{width:20px;height:20px}
.cabinet-status{margin:0;position:absolute;bottom:84px;right:25px;font:12px/1.5 Arial,sans-serif;color:#874b2c;background:#f5edda;padding:9px 12px;border-radius:7px}.cabinet-status:empty{display:none}
@media(max-width:1080px){.train-cabinet{width:calc(100vw - 24px);height:calc(100dvh - 24px)}.cabinet-body{grid-template-columns:265px minmax(0,1fr)}.cabinet-card{padding-left:5px;padding-right:5px;min-height:112px}.cabinet-card-art{height:53px}.cabinet-card-copy strong{font-size:16px}.cabinet-information{gap:20px;padding:22px;grid-template-columns:minmax(0,1fr) 182px}.cabinet-specification{padding-left:17px}.cabinet-name-line h3{font-size:31px}.cabinet-name-line{gap:8px}.cabinet-preview-toolbar>span{max-width:128px;font-size:10px}.cabinet-preview-toolbar button{font-size:11px;padding:7px}.cabinet-stage-top{left:16px;right:14px;gap:5px}.cabinet-step-through{gap:3px}.cabinet-view-switch button{padding:7px 12px}.cabinet-edition{font-size:20px}.cabinet-stage{flex-basis:330px}}
@media(max-width:760px){
 .train-cabinet{width:100%;height:100dvh;margin:0;max-width:100%;border:0;border-radius:0}
 .cabinet-header{padding:calc(12px + env(safe-area-inset-top)) 18px 12px;gap:10px}.cabinet-header .cabinet-eyebrow{font-size:9px;letter-spacing:.07em}.cabinet-header h2{font-size:25px;margin-top:3px}.cabinet-header .cabinet-icon-button{border:0}
 .cabinet-body{display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.cabinet-main{display:contents}
 .cabinet-stage{order:0;height:300px;min-height:300px;flex:none}.cabinet-browser{order:1;flex:none;border-right:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:0}.cabinet-information{order:2}
 .cabinet-browser-heading{padding:13px 18px 0;font-size:12px}.cabinet-filters{margin:0 12px 0;max-width:340px;border:0;padding:0}.cabinet-filters button{min-height:44px;font-size:12px;flex:1}
 .cabinet-trains{display:flex;gap:7px;padding:3px 17px 13px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;flex:none}.cabinet-card{width:122px;min-width:122px;min-height:111px;padding:7px 8px 15px;scroll-snap-align:center}.cabinet-card-art{height:53px}.cabinet-card-copy strong{font-size:16px}.cabinet-card-copy>span{font-size:10px;margin-top:3px}.cabinet-card-number{font-size:8px}
 .cabinet-stage-top{top:12px;left:18px;right:14px;gap:5px}.cabinet-edition{font-size:21px}.cabinet-step-through{gap:1px}.cabinet-step-through span{font-size:10px}.cabinet-step-through .cabinet-icon-button{width:44px;min-width:44px}.cabinet-view-switch{padding:2px}.cabinet-view-switch button{padding:7px 11px;font-size:11px}
 #cabinetPreview{inset:58px 0 51px;height:calc(100% - 109px)}
 .cabinet-preview-toolbar{left:12px;right:10px;bottom:7px;gap:3px}.cabinet-preview-toolbar>span{font-size:10px;max-width:109px;line-height:1.45}.cabinet-preview-toolbar button{min-height:44px;font-size:11px;gap:4px;padding:7px 6px}.cabinet-preview-toolbar>div{gap:0}
 .cabinet-information{display:block;padding:23px 22px;border:0}.cabinet-name-line h3{font-size:35px}.cabinet-name-line{gap:13px;margin:8px 0 11px}.cabinet-story p{font-size:13px}.cabinet-fine-details li{font-size:12px}
 .cabinet-specification{border-left:0;border-top:1px solid var(--rule);margin-top:21px;padding:17px 0 0}.cabinet-livery-head>span:first-child{font-size:12px}.cabinet-liveries{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;border:0;padding-bottom:16px}.cabinet-swatch{min-height:75px;flex-direction:column;gap:6px;padding:8px 5px;text-align:center;justify-content:flex-start;font-size:11px;line-height:1.35}.cabinet-swatch-paint{width:29px;height:29px}.cabinet-spec-row{font-size:12px}
 .cabinet-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom));gap:12px}.cabinet-footer>div{gap:3px;min-width:0}.cabinet-destination{font-size:10px}.cabinet-destination strong{display:block;font-size:12px}.cabinet-footer #cabinetCurrent{font-size:10px;max-width:145px}.cabinet-run{min-width:0;min-height:49px;padding:12px 14px;gap:15px;font-size:12px;flex:0 0 auto;max-width:54%}.cabinet-run svg{width:18px;height:18px;flex-shrink:0}.cabinet-status{bottom:92px;left:16px;right:16px;padding:8px 11px;font-size:11px}
}
@media(max-width:360px){.cabinet-header{padding-left:15px;padding-right:11px}.cabinet-header .cabinet-eyebrow{font-size:8px}.cabinet-stage{height:285px;min-height:285px}.cabinet-edition{font-size:18px}.cabinet-stage-top{left:14px;right:10px}.cabinet-step-through span{display:none}.cabinet-preview-toolbar>span{max-width:78px;font-size:9px}.cabinet-preview-toolbar button{font-size:10px;gap:3px}.cabinet-information{padding:21px 18px}.cabinet-run{padding:12px 10px;gap:7px;font-size:11px}.cabinet-footer{padding-left:15px;padding-right:15px}.cabinet-footer #cabinetCurrent{max-width:120px}}
@media(max-height:600px) and (min-width:761px){.cabinet-header{padding-top:12px;padding-bottom:12px}.cabinet-header h2{font-size:24px}.cabinet-footer{padding-top:10px;padding-bottom:10px}.cabinet-stage{min-height:300px}.cabinet-card{min-height:108px}}
@media(prefers-reduced-motion:reduce){.cabinet-card,#cabinetPreview{transition:none}}

.cabinet-credit{font-size:12px!important;color:#5b6654!important;line-height:1.5!important}.cabinet-save-portrait{margin-top:12px;min-height:44px;border:1px solid #6e7d6540;border-radius:8px;padding:8px 12px;background:transparent;color:#3b5043;font-size:12px;cursor:pointer}
