/* Compact roles remain part of Onderweg; HC opens a preview, not a playable role. */
.journey-roles{display:grid;gap:3px;margin:-3px 0 8px 20px;padding-left:13px;border-left:1px solid #ced8ca}
.rail-side-nav .journey-roles .journey-role{display:flex;align-items:center;gap:7px;min-height:32px;padding:5px 7px;border-radius:7px;font-size:11px;line-height:1.4;color:#61796b;background:transparent;width:100%;text-align:left}
.rail-side-nav .journey-roles .journey-role.selected{background:#e5ecdf;color:#365d48}
.rail-side-nav .journey-roles .journey-role:hover{background:#e9eee3;color:#365d48}
.journey-role>svg{flex-shrink:0}.journey-role.role-locked>svg:last-child{margin-left:auto;color:#8c957e}
.conductor-modal{width:500px}.conductor-intro{text-align:center}.conductor-emblem{display:grid;place-items:center;margin:0 auto 12px;width:65px;height:65px;border:1px solid #cbd8c5;border-radius:50%;background:#edf1e3;color:#52745d}
.role-status{display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.04em;color:#8a7751;background:#f5eedb;padding:5px 9px;border-radius:20px}
.conductor-intro h3{font:400 28px var(--serif);margin:16px 0 10px;color:var(--ink)}.conductor-intro p{font-size:13px;line-height:1.6;color:var(--muted)}
.conductor-features{list-style:none;padding:0;margin:24px 0 18px;display:grid;gap:17px}.conductor-features li{display:flex;align-items:flex-start;gap:12px}.conductor-features li>svg{flex-shrink:0;color:#67876c;margin-top:2px}.conductor-features strong{font-size:13px;color:var(--ink)}.conductor-features p{font-size:12px;line-height:1.5;color:var(--muted);margin:5px 0 0}.conductor-note{font-size:11px;line-height:1.5;color:#8a8877;text-align:center;margin:20px 0}
/* One stable frame for all three contract tabs. Scroll inside, never resize. */
.contracts-modal[open]{height:min(760px,90dvh);min-height:min(760px,90dvh);width:780px;box-sizing:border-box}
.contracts-modal .modal-body{flex:1;scrollbar-gutter:stable}
.route-title-group{display:flex;align-items:center;gap:6px;flex-shrink:0}.route-title-group h2{margin:0}.route-title-group .icon-button{width:28px;height:28px}
.route-card-heading .route-favorite-actions{margin-left:auto;gap:7px;flex-wrap:wrap}
.route-card-heading .contract-entry{margin-left:0;background:#e4ecdd;border:1px solid #a9bea1;color:#365c43;font-weight:650;min-height:34px}
.carriage-description>p{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}.description-divider{display:inline-block;width:1px;height:13px;background:var(--line)}
.carriage-description .upgrade-badge,.part-card .upgrade-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border:1px solid #dac28a;border-radius:6px;background:#f7edcf;color:#826527;font-size:11px;font-weight:650;vertical-align:middle}
.carriage-facts>i{flex:0 0 1px}.carriage-facts>span{white-space:nowrap}
/* Keep the reward readable, but reduce decorative space and image height. */
.goal-grid{gap:12px}.goal-card{grid-template-columns:36px minmax(0,1fr) 210px;gap:16px;padding:13px 17px;border-radius:12px}.goal-card h2{font-size:20px;margin-bottom:5px}.goal-card p{margin:5px 0;font-size:11px}.goal-card .goal-medal{width:34px;height:34px}.goal-card .goal-reward{border:0;padding:0;gap:4px}.goal-card .goal-reward>div{height:46px;padding:2px 8px}.goal-card .goal-reward .button{margin-top:3px;min-height:30px;padding:6px 9px}.goal-card .goal-date:empty{display:none}
/* Supplemental cab text grows upwards; purchase actions share a baseline. */
.daily-card .offer-purchase{margin-top:auto;display:flex;flex-direction:column;padding-top:7px}.daily-card .offer-purchase .button{width:100%;min-height:34px;margin-top:0}.daily-card .cab-offer-help{margin:0 0 8px;min-height:0;line-height:1.4}.daily-card .offer-affordability{min-height:16px;line-height:16px;margin-top:7px}
@media(max-width:700px){.goal-card{grid-template-columns:30px minmax(0,1fr);gap:9px 11px;padding:12px}.goal-card h2{font-size:18px}.goal-card .goal-reward{grid-column:2;max-width:none;display:grid;grid-template-columns:70px minmax(0,1fr);text-align:left;gap:3px 9px}.goal-card .goal-reward>div{grid-row:1/4;width:70px;height:48px;padding:0}.goal-card .goal-reward .rarity-badge{justify-self:start}.goal-card .goal-reward .button{grid-column:2;width:100%;font-size:10px}.goal-card .goal-reward strong{font-size:10px}.route-card-heading .route-favorite-actions{width:100%;margin:4px 0 0}.route-card-heading .route-favorite-actions .button{font-size:10px}.route-title-group{margin-right:auto}.route-card-heading>span{margin-left:0}.contracts-modal[open]{height:90dvh;min-height:90dvh}.carriage-facts{gap:9px;font-size:10px}.carriage-facts>span{gap:4px}.carriage-description .upgrade-badge{font-size:10px}}
.carriage-description>p>.description-divider{padding:0;flex:0 0 1px;width:1px;height:13px}
.journey-roles{margin-left:7px;padding-left:8px}.rail-side-nav .journey-roles .journey-role{gap:5px;padding:5px;font-size:10.5px}.journey-role>span{min-width:0}
@media(max-width:700px){.route-favorite-actions .route-save-label{display:none}.route-card-heading .route-favorite-actions{gap:5px}.route-favorite-actions .route-heart{width:32px;min-width:32px;padding:7px}.route-favorite-actions .button{padding-left:7px;padding-right:7px}}
