:root{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#242628;background:#fff8ef;font-size:17px}*{box-sizing:border-box}body{margin:0}header{background:#176b68;color:#fffaf2;padding:32px max(22px,calc((100vw - 620px)/2)) 34px}.brand{font-size:15px;font-weight:800;letter-spacing:.2em}.tag{display:block;font-size:10px;letter-spacing:.15em;opacity:.7;margin-top:7px}h1{font-size:34px;line-height:1.12;letter-spacing:-1px;margin:27px 0 12px}header p{opacity:.85;margin:0;font-size:16px}main{max-width:660px;margin:auto;padding:20px 18px 40px}.card{padding:23px;background:white;border-radius:20px;margin-bottom:18px;border:1px solid #e4dfd5}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:#176b68;margin-bottom:20px}label{display:block;font-weight:700;margin:18px 0 8px}input,select{width:100%;min-width:0;border:1px solid #bdbbb4;background:#fff;border-radius:10px;padding:14px 12px;font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer;font:inherit;border:0;border-radius:10px;min-height:48px}button:disabled{opacity:.6;cursor:wait}.row{display:flex;gap:8px}.small{background:#e7f3ee;color:#176b68;padding:8px 13px;flex-shrink:0;font-weight:700;font-size:14px}.hint{font-size:13px;color:#666;line-height:1.5;margin:9px 0 16px}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.chips button{font-size:13px;padding:8px 11px;min-height:40px;background:#fff0e2;color:#765034}.primary{background:#176b68;color:white;width:100%;font-weight:700;display:flex;justify-content:space-between;padding:16px;margin:20px 0 10px}.secondary{display:block;text-align:center;width:100%;background:#e7f3ee;color:#176b68;font-size:15px;font-weight:700;padding:14px;text-decoration:none;border-radius:10px}a{color:#176b68}h2{font-size:23px;letter-spacing:-.5px;margin:0 0 16px}h3{font-size:19px;margin:0 0 5px}.leg{border-left:3px solid #176b68;padding:0 0 19px 14px;margin-left:5px;line-height:1.5}.leg:last-child{padding-bottom:0}.leg strong{display:block;font-size:16px}.leg p{margin:4px 0;font-size:14px}.journey-time{font-size:14px;color:#666;margin:5px 0 20px}.notice{padding:15px;background:#fff0d4;border-radius:10px;line-height:1.5;font-size:14px}.choice{display:block;width:100%;text-align:left;padding:12px;margin-top:8px;background:#e7f3ee;color:#176b68}.status-line{border-bottom:1px solid #e8e3dc;padding:13px 0;font-size:15px}.status-line strong{display:block}.status-line p{font-size:13px;line-height:1.5}footer{padding:16px 6px;color:#67615b;font-size:13px;line-height:1.6}footer strong{color:#302a28;font-size:16px}details{margin-top:8px;font-size:14px}summary{cursor:pointer;min-height:32px}button:focus-visible,a:focus-visible{outline:3px solid #237a9e;outline-offset:3px}@media(max-width:370px){.card{padding:17px}header{padding:25px 20px}h1{font-size:30px}}
:root .station-picker{margin:8px 0 0;background:transparent;color:#176b68;text-decoration:underline;padding:4px 0;text-align:left;font-size:14px;min-height:40px}dialog{border:0;border-radius:18px;padding:22px;width:calc(100% - 28px);max-width:550px;max-height:85dvh;color:#242628;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#123e3bcc}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading h2{margin:0}.dialog-heading button{background:#e7f3ee;min-width:46px;color:#176b68}#stationList{max-height:50dvh;overflow:auto;overscroll-behavior:contain}.station-option{display:block;text-align:left;width:100%;background:white;border-bottom:1px solid #e8e3dc;border-radius:0;padding:14px 5px;color:#242628}.station-option strong{display:block;font-size:17px}.station-option span{display:block;color:#666;font-size:12px;margin-top:5px;line-height:1.5}.station-option:hover{background:#fff8ef}
.rolling-panel{background:#fff2e4;border:1px solid #edcfb3;scroll-margin-top:16px}.rolling-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #ded4c6;padding-bottom:13px}.rolling-head h2{font-size:18px;letter-spacing:.08em;margin:0;color:#205854}.rolling-toggle{background:#dceee7;color:#176b68;padding:8px 17px;font-size:14px;font-weight:700}.rolling-summary{font-weight:700;font-size:16px;margin-bottom:6px}.rolling-viewport{max-height:440px;max-height:min(55dvh,440px);overflow-y:auto;padding:12px 10px 8px 4px;border-radius:10px;background:#fffdf8;border:1px solid #ece4d8;overscroll-behavior:contain}.rolling-list{list-style:none;padding:0;margin:0}.rolling-stop{position:relative;display:flex;gap:15px;padding:0 0 24px 10px;min-height:53px}.rolling-stop:before{content:'';position:absolute;left:18px;top:16px;bottom:-2px;width:5px;background:var(--line-colour)}.rolling-stop.is-walk:before{background:repeating-linear-gradient(to bottom,#81786f 0 5px,transparent 5px 10px)}.rolling-stop:last-child{padding-bottom:5px}.rolling-stop:last-child:before{display:none}.station-dot{width:21px;height:21px;border:4px solid var(--line-colour);border-radius:50%;background:#fff;flex-shrink:0;z-index:1;margin-top:1px}.is-start .station-dot{background:#80d9a1}.is-end .station-dot{background:#ffbc66}.is-change .station-dot{border:3px solid #fff;outline:3px solid #262328;outline-offset:-1px;background:#262328}.station-body{min-width:0}.route-station-name{display:block;font-size:17px;line-height:1.35;overflow-wrap:anywhere}.route-note{display:block;font-size:13px;line-height:1.45;margin-top:4px}.note-board,.note-alight{font-weight:700}.note-direction,.note-duration{color:#665e57}.note-missing{background:#fff0d4;padding:7px;border-radius:5px}.route-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.08em;color:#155333;background:#dceee0;padding:3px 7px;border-radius:4px;margin:0 0 6px}.change-badge{background:#ede4f4;color:#543569}.destination-badge{background:#ffead0;color:#794608}.choose-route{margin-top:14px}.selected-journey{border:2px solid #176b68}.choose-route[aria-pressed=true]{background:#176b68;color:white}[hidden]{display:none!important}

.journey-controls{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}.journey-controls button{flex:1 1 120px}.rolling-stop.is-complete{opacity:.4}.rolling-stop.is-current .station-body{background:#d8eee4;border-radius:8px;padding:8px}.rolling-stop.is-current .route-station-name:before{content:"YOU ARE HERE · ";display:block;font-size:10px;letter-spacing:.08em;color:#176b68}.rolling-viewport{position:relative}button:disabled{cursor:default}

.tube-map-card{background:#fff2e4;border-color:#edcfb3}.tube-map-card .eyebrow{margin-bottom:12px}.tube-map-card h2{margin-bottom:7px}.map-description{margin:0 0 16px;font-size:15px;line-height:1.5}.map-primary{background:#176b68;color:#fff}.map-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:8px}.map-links a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:650}.map-credit{font-size:11px;line-height:1.5;color:#746c66;margin:14px 0 0}.tube-map-card details{border-top:1px solid #e4dfd5;padding-top:10px}.tube-map-card summary{font-weight:650;color:#176b68;min-height:40px}

/* Journey: warm, clear and easy to use. Tube line colours remain unchanged. */
:root{font-family:ui-rounded,'SF Pro Rounded',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#243f3b}header{position:relative;overflow:hidden;background:#176b68;padding-top:28px;padding-bottom:32px;border-radius:0 0 30px 30px}.brand-row{display:flex;align-items:center;gap:12px}.brand{font-size:33px;letter-spacing:-1.3px;font-weight:800}.journey-mark{display:inline-grid;place-items:center;width:47px;height:47px;background:#ffcfaa;color:#174f4b;border-radius:17px;font-size:39px;font-weight:800;line-height:1;padding-bottom:9px;transform:rotate(-7deg)}.tag{font-size:14px;letter-spacing:.015em;opacity:1;color:#d4eee4;margin-top:13px}h1{font-size:32px;margin-top:25px;letter-spacing:-.8px}header p{opacity:1;color:#e4f4ed}.header-trail{position:absolute;right:max(28px,calc((100vw - 620px)/2));top:39px;width:84px;height:34px;border-bottom:3px dashed #a6d7cb;transform:rotate(-12deg);opacity:.6}.header-trail i{position:absolute;width:11px;height:11px;border-radius:50%;background:#ffcfaa;bottom:-7px}.header-trail i:nth-child(2){left:36px}.header-trail i:nth-child(3){right:0}.card{border-radius:24px;box-shadow:0 4px 16px #254d3e06}.eyebrow{font-size:13px;letter-spacing:.015em;text-transform:none}.tube-map-card{background:#fff0df}.primary,.map-primary{border-radius:15px}.secondary{border-radius:13px}.chips button{border-radius:99px}input,select{border-radius:13px}.rolling-head h2{letter-spacing:0;font-size:21px}.rolling-stop.is-current .route-station-name:before{content:'You are here · ';letter-spacing:.02em}footer strong{color:#176b68}@media(max-width:400px){.header-trail{width:58px;right:22px;top:42px}.header-trail i:nth-child(2){left:23px}.brand{font-size:30px}h1{font-size:29px}}

#railLinks{display:grid;gap:8px} .leg{overflow-wrap:anywhere}


/* Journey Autumn Edition — presentation-only, functional IDs and route logic retained. */
:root{--rust:#a94319;--copper:#c55724;--chestnut:#542814;--cream:#fff8ee;--cream-dark:#f8e7d2;--sand:#efd1b0;--ink:#34251c;--muted:#776356;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f8eddc;font-size:16px}
body{background:radial-gradient(circle at 93% 0,#ffe0ad 0,transparent 32%),linear-gradient(180deg,#f7e5cf,#fff9f0 470px,#f8eddc);min-height:100dvh}
.hero{background:linear-gradient(125deg,#fff1da 0%,#ffd8a8 55%,#e9a96e 100%);color:var(--chestnut);border-radius:0 0 34px 34px;padding:29px max(23px,calc((100vw - 620px)/2)) 82px;box-shadow:inset 0 -1px #d39d7233}
.hero:after{content:'❦';position:absolute;right:max(22px,calc((100vw - 620px)/2));top:50px;font-size:82px;line-height:1;opacity:.16;transform:rotate(-28deg)}
.brand-row{gap:8px}.journey-mark{transform:none;background:#a94319;color:#fff3dd;border-radius:13px;font-size:26px;width:39px;height:39px;padding:0}.brand{font-size:34px;letter-spacing:-1.4px;color:#8f3211}.brand-leaf{font-size:25px}.hero-subtitle{margin:5px 0 0!important;color:#925534!important;font-size:14px!important}.hero h1{margin:25px 0 8px;font-size:31px;letter-spacing:-.8px}.hero>p:last-child{color:#7b4d34;font-size:15px}
main{position:relative;margin-top:-52px;max-width:700px;padding:0 15px 46px}.card{border:1px solid #f0dac3;background:#fffaf3;box-shadow:0 10px 25px #70462612;border-radius:24px;margin-bottom:14px;padding:21px}.planner-card{background:#fffaf5;padding:23px}.eyebrow{font-size:11px;letter-spacing:.13em;color:#b24c1f;margin:0 0 7px;font-weight:800}.planner-card h2{font-size:23px;color:#562d1b;margin-bottom:17px}.field-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0 8px}.field-heading label{margin:0;font-size:17px;color:var(--chestnut)}.small{background:#fff0dd;border:1px solid #efcda7;color:#8f3516;font-size:13px;padding:7px 13px;border-radius:999px;min-height:41px}input,select{border:1.5px solid #e9c9a9;background:#fffdfa;color:#39261e;min-height:54px;border-radius:14px;font-size:16px;box-shadow:0 2px 6px #65301507}input:focus,select:focus{outline:2px solid #ca6a33;outline-offset:1px}.station-picker{display:flex!important;align-items:center;justify-content:space-between;width:100%;text-align:left!important;margin:5px 0 0!important;padding:4px 3px!important;color:#a34d28!important;text-decoration:none!important;font-size:13px!important;font-weight:650;min-height:37px!important}.station-picker span{font-size:23px}.station-picker[hidden]{display:none!important}.hint{color:#806f62;font-size:12px;margin:4px 0 12px}.travel-label{margin:19px 0 8px;font-size:17px;color:var(--chestnut)}#mode{font-weight:600}.primary,.map-primary{background:linear-gradient(120deg,#ce5a20,#a53711)!important;color:white!important;border:0;border-radius:16px;box-shadow:0 5px 14px #ad4c2330;min-height:56px;font-size:17px;font-weight:800;padding:15px 20px;margin:20px 0 12px}.primary span{font-size:25px;line-height:1}.planner-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.secondary{background:#fff1df;color:#953e1c;border:1px solid #ebc4a1;border-radius:13px;text-decoration:none;font-size:13px;font-weight:700;padding:13px 8px}.quiet-note{font-size:11px;color:#8b7769;margin:10px 0 0}.quick-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-tools .card{min-width:0;padding:17px}.tool-icon{display:grid;place-items:center;background:#f9e1c5;color:#9f4017;border-radius:13px;width:43px;height:43px;font-size:25px;margin-bottom:14px}.quick-tools h2{font-size:19px;line-height:1.15;color:#512b1b;margin:0 0 9px}.quick-tools p{font-size:13px;line-height:1.45;color:#745c4e;margin:0 0 14px}.quick-tools .secondary{font-size:12px;min-height:44px}.tube-map-card{background:#fff2e4}.map-primary{box-shadow:none!important;margin:0 0 9px!important;padding:12px 6px!important;min-height:44px}.map-links{display:grid;gap:4px}.map-links a,.status-link{font-size:12px;line-height:1.5;min-height:30px}.map-credit{font-size:10px!important;margin-top:12px!important}.tube-map-card details{font-size:12px;border-color:#e9d2ba}.tube-map-card summary{color:#963d1c}.status-card{background:#fff8eb}.status-card .status-line{text-align:left}.status-link{display:block;margin-top:12px}.status-line strong{color:#65341f}a{color:#9e3d16}.rolling-panel{background:#fff6eb;border:1px solid #ebc9a8}.rolling-head{border-color:#edceac}.rolling-head h2{color:#773419}.rolling-toggle,.choice{background:#fae5d0;color:#873717}.selected-journey{border-color:#c55320}.choose-route[aria-pressed=true]{background:#a94319}.rolling-stop.is-current .station-body{background:#ffedda}.rolling-stop.is-current .route-station-name:before{color:#a94319}.rolling-viewport{background:#fffcf8}.route-badge{background:#fce0c5;color:#833716}.map-description{margin-bottom:12px!important}dialog{background:#fff9f0;color:#39271e;border:1px solid #edc5a1}.dialog-heading button{background:#fae1c8;color:#8c371b}.station-option{background:transparent;color:#39271e;border-color:#eddccc}.station-option:hover{background:#fff0db}footer{padding:24px 9px;font-size:12px}footer strong{color:#973d19}
@media(max-width:370px){.quick-tools{gap:8px}.quick-tools .card{padding:13px}.quick-tools h2{font-size:17px}.planner-card{padding:18px}.hero h1{font-size:27px}.brand{font-size:30px}}
@media(min-width:620px){.hero{padding-bottom:95px}.quick-tools .card{padding:22px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
/* Autumn refinement: spacious on desktop, single-column controls on iPhone. */
.hero{padding-top:max(24px,env(safe-area-inset-top));}.hero:after{content:'❧';font-size:130px;right:7%;top:32px;color:#ac461b;pointer-events:none}.journey-mark{display:none}.brand{font-size:46px;font-weight:800;letter-spacing:-2px}.hero h1{font-size:26px;margin-top:20px}.hero-subtitle{font-size:16px!important}.card{box-shadow:0 12px 32px #70462612}.text-button{display:block;background:transparent;color:#873717;padding:8px 4px;margin:0 0 8px;font-size:14px;text-decoration:underline}.journey-info{display:grid;grid-template-columns:1.5fr 1fr;gap:12px;padding:16px;background:#f8e6d1;border:1px solid #edd1b4;border-radius:16px;margin:15px 0}.journey-info strong{display:block;font-size:15px;line-height:1.45}.info-label{display:block;text-transform:uppercase;letter-spacing:.08em;color:#895b3c;font-weight:700;font-size:10px;margin-bottom:5px}.rolling-summary{font-size:15px;color:#794427}.rolling-stop.is-current .route-station-name:before{content:'Current step · manual';color:#a94319}.rolling-stop.is-current .station-body{padding:12px;border-radius:13px}.rolling-stop.is-complete{opacity:.65}.route-map{border:1px solid #ebd2b8;background:#fffcf7;border-radius:16px;padding:13px;margin:16px 0}.map-toolbar{display:flex;align-items:center;gap:7px}.map-toolbar strong{flex:1;font-size:15px}.map-toolbar button{min-width:44px;min-height:44px;padding:7px 11px}.route-diagram-viewport{overflow-x:auto;overscroll-behavior-x:contain;background:#fff8ed;border-radius:10px}.route-diagram-viewport svg{display:block;max-width:none;height:150px}.route-diagram-viewport g{cursor:pointer}.route-diagram-viewport g:focus{outline:2px solid #a94319}.map-station-detail{font-size:13px;line-height:1.6;margin:9px 0 0;min-height:26px}.rolling-viewport{max-height:min(60dvh,500px)}.status-line{overflow-wrap:anywhere}.quick-tools{grid-template-columns:1fr 1fr}.leg{border-color:#b45d31}button:focus-visible,a:focus-visible{outline-color:#873717}#railHelp p{line-height:1.6;font-size:14px}
@media(min-width:900px){main{max-width:1180px;display:grid;grid-template-columns:360px minmax(0,1fr);gap:20px;align-items:start}.hero{padding-left:max(25px,calc((100vw - 1150px)/2));padding-bottom:85px}.planner-card{grid-column:1;grid-row:1 / span 2}.quick-tools{grid-column:1;grid-row:3}#railHelp{grid-column:1;grid-row:4}#results{grid-column:2;grid-row:1 / span 5;min-width:0}footer{grid-column:1;grid-row:5}.journey-info{grid-template-columns:1.3fr .7fr .6fr 1.2fr}.quick-tools{grid-template-columns:1fr}.hero:after{right:20%}.rolling-panel{padding:24px}}
@media(max-width:600px){.planner-actions{grid-template-columns:1fr 1fr}.brand{font-size:42px}.card{padding:19px}.planner-card{padding:21px}.map-toolbar{gap:5px}.map-toolbar strong{font-size:13px}.map-toolbar button{padding:6px 9px}.quick-tools{grid-template-columns:1fr}.quick-tools .card{padding:19px}.quick-tools .tool-icon{float:left;margin:0 14px 8px 0}.journey-controls .secondary{min-height:46px}main{padding-bottom:calc(35px + env(safe-area-inset-bottom))}}
@media(orientation:landscape) and (max-height:500px){.hero{padding-top:18px;padding-bottom:65px}.hero h1,.hero>p:last-child{display:none}main{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}.rolling-viewport{max-height:65dvh}}

/* Reliability review: accessible spacing on narrow screens. */
#journeyMessage:empty,#gps:empty{display:none}
.planner-actions{align-items:stretch}.planner-actions .secondary{display:flex;align-items:center;justify-content:center;min-height:48px}
@media(max-width:390px){.quick-tools{grid-template-columns:1fr}.planner-actions{grid-template-columns:1fr}}
@supports(padding:max(0px)){main{padding-bottom:max(46px,env(safe-area-inset-bottom))}}

/* JOURNEY UI STAGE 1 — additive layout only; route and data modules untouched */
.hero{padding:14px max(18px,calc((100vw - 700px)/2)) 28px!important;border-radius:0 0 22px 22px!important}
.hero:after,.hero h1,.hero>p:last-child{display:none!important}
.brand{font-size:29px!important;letter-spacing:-.8px!important}
.brand-leaf{font-size:19px!important}.hero-subtitle{font-size:12px!important;margin:0!important}
main{margin-top:0!important;padding-top:10px!important}
.mode-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:0 0 10px}
.journey-tab{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-width:0;border-radius:13px;padding:9px 2px;background:#fff7ea;border:1px solid #e8cba9;color:#763d26;font-size:17px;min-height:54px;cursor:pointer}
.journey-tab span{font-size:10px;font-weight:800;letter-spacing:-.15px}
.journey-tab.is-active{background:#ab471c;color:#fff;border-color:#ab471c;box-shadow:0 3px 9px #7c38142b}
.journey-tab:disabled{opacity:.45;cursor:not-allowed}
.planner-card{padding:15px!important;margin-bottom:10px!important}
.planner-card h2{font-size:20px!important;margin:0 0 10px!important}
.planner-card .eyebrow{font-size:10px!important;margin-bottom:3px!important}
.field-heading{margin:8px 0 4px!important}.field-heading label{font-size:14px!important}
#planner input,#planner select{min-height:46px!important;font-size:16px!important}
.small{min-height:34px!important;padding:5px 11px!important}
.station-picker{min-height:28px!important;margin:0!important;font-size:11px!important}
.travel-label{margin:9px 0 5px!important;font-size:13px!important}
#go{min-height:48px!important;margin:11px 0 6px!important;padding:10px!important}
.planner-actions .secondary{min-height:41px!important;padding:8px!important}
.quiet-note{margin:5px 0 0!important}
.reference-tools{background:#fff8ed;border:1px solid #ebd1b7;border-radius:15px;margin:6px 0 12px;overflow:hidden}
.reference-tools>summary{list-style:none;cursor:pointer;padding:13px 15px;font-weight:800;color:#81391c;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.reference-tools>summary::-webkit-details-marker{display:none}
.reference-tools>summary:before{content:'▸';margin-right:6px}.reference-tools[open]>summary:before{content:'▾'}
.reference-tools>summary span{margin-left:auto;font-size:11px;font-weight:500;color:#907264}
.reference-tools .quick-tools{padding:0 10px 10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.reference-tools .quick-tools .card{padding:12px!important;margin-bottom:0}
.reference-tools .quick-tools h2{font-size:15px!important}
.reference-tools .quick-tools .tool-icon{display:none}
.reference-tools .quick-tools p{font-size:11px!important}
footer{font-size:11px!important;padding:13px 6px!important}
@media(max-width:530px){.mode-tabs{gap:4px}.journey-tab{font-size:16px}.journey-tab span{font-size:9px}.reference-tools .quick-tools{grid-template-columns:1fr}}
@media(min-width:900px){.mode-tabs{grid-column:1 / -1}.planner-card{grid-column:1;grid-row:auto}.reference-tools{grid-column:1}.quick-tools{display:grid!important}#results{grid-column:2;grid-row:2 / span 5}}

/* JOURNEY STAGE 1B — cheerful coastal theme, visual changes only */
:root{color-scheme:light;--j-ink:#17384b;--j-blue:#0d738f;--j-coral:#ef684c;--j-cream:#fff9e9;--j-sky:#d9f3f7;--j-line:#9acdd5}
html,body{background:#e6f7f7!important;color:#17384b!important}
.hero{background:linear-gradient(115deg,#1389a4,#27b4af)!important;color:white!important;padding:17px 20px 20px!important;border-radius:0 0 24px 24px!important}
.hero .brand,.hero p,.hero .hero-subtitle{color:#fff!important;text-shadow:none!important}
.brand{font-size:34px!important;letter-spacing:-.6px!important}.brand-leaf{font-size:22px!important}
.hero-subtitle{font-size:14px!important;font-weight:650!important}
main{max-width:1100px!important;padding:13px 12px 42px!important}
.mode-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin:2px 0 13px!important}
.journey-tab{min-height:83px!important;padding:11px 5px!important;border-radius:18px!important;background:#fffdf5!important;border:2px solid #addcde!important;color:#17384b!important;font-size:27px!important;box-shadow:0 4px 12px #0f566512!important;gap:4px!important}
.journey-tab span{font-size:16px!important;letter-spacing:0!important;font-weight:800!important}
.journey-tab.is-active{background:#fc7252!important;border-color:#b63e2a!important;color:#142f39!important;box-shadow:0 5px 0 #b74934!important}
.journey-tab:disabled{opacity:1!important;background:#f1f2ed!important;border-color:#c7d4d4!important;color:#6b7f86!important}
.journey-tab:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #ffbc31!important;outline-offset:2px!important}
.card,.planner-card,.reference-tools,#railHelp,.rolling-panel{background:#fffef7!important;color:#17384b!important;border:1px solid #b4dadd!important;box-shadow:0 6px 20px #0c657514!important;border-radius:19px!important}
.planner-card{padding:18px!important}.planner-card h2{color:#15465b!important;font-size:24px!important}
.eyebrow{color:#087f93!important;font-weight:800!important}
.field-heading label,.travel-label{color:#17384b!important;font-weight:800!important;font-size:17px!important}
#planner input,#planner select{background:white!important;border:2px solid #9ccdd3!important;color:#17384b!important;min-height:54px!important;border-radius:13px!important;font-size:17px!important;padding:10px 13px!important}
#planner input::placeholder{color:#54717b!important}
button.primary,#go{background:#ef684c!important;color:#1f2e36!important;border:2px solid #bf472f!important;border-radius:15px!important;min-height:60px!important;font-size:19px!important;font-weight:850!important;box-shadow:0 3px 0 #bf472f!important}
button.secondary,a.secondary,.small,.station-picker,.choice,.rolling-toggle{background:#d9f5f6!important;border:1px solid #77bbc5!important;color:#15465b!important;border-radius:12px!important;font-weight:750!important}
.planner-actions .secondary{min-height:54px!important;font-size:14px!important}
.small{min-height:43px!important;font-size:14px!important}.station-picker{min-height:38px!important;font-size:13px!important;padding:6px 10px!important}
.reference-tools>summary{color:#15465b!important;font-size:17px!important;min-height:58px!important}.reference-tools>summary span{color:#477887!important;font-size:12px!important}
#clearPlan,.text-button{color:#0a7186!important;font-weight:750!important;font-size:15px!important}
#railHelp h2,.rolling-head h2,.quick-tools h2{color:#15465b!important}
a{color:#086f88!important} footer{color:#325c69!important}footer strong{color:#0e7084!important}
@media(max-width:530px){.mode-tabs{gap:9px!important}.journey-tab{min-height:83px!important}.journey-tab span{font-size:16px!important}.reference-tools .quick-tools{grid-template-columns:1fr!important}}
@media(max-width:360px){.journey-tab{min-height:76px!important}.journey-tab span{font-size:14px!important}}
@media(min-width:900px){main{grid-template-columns:360px minmax(0,1fr)!important}.mode-tabs{grid-column:1 / -1!important}}


/* JOURNEY STAGE 1C — London-inspired colours and transport-style tab badges */
:root{--london-red:#c8102e;--london-blue:#153a8a;--london-ink:#13284b;--london-cream:#fcfaf6;--london-line:#d9dce5;--london-soft:#eef2fb;--london-light:#ffffff;}
html,body{background:#f2f4f8!important;color:var(--london-ink)!important;}
.hero{background:linear-gradient(180deg,var(--london-red),#ad102c)!important;color:#fff!important;border-radius:0 0 24px 24px!important;padding:18px 20px 20px!important;box-shadow:0 8px 24px rgba(21,58,138,.18)!important;}
.hero .brand,.hero p,.hero .hero-subtitle{color:#fff!important;}
.brand-row{display:flex;align-items:center;gap:12px;}
.brand{font-size:35px!important;letter-spacing:-.4px!important;font-weight:850!important;}
.hero-subtitle{font-size:14px!important;font-weight:700!important;opacity:.98!important;}
.roundel-mark,.roundel-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;border:4px solid var(--london-red);border-radius:999px;background:var(--london-light);color:#fff;}
.roundel-mark{width:64px;height:64px;flex:0 0 64px;box-shadow:0 4px 12px rgba(0,0,0,.12);}
.roundel-badge{width:54px;height:54px;flex:0 0 54px;margin-bottom:4px;}
.roundel-bar{display:inline-flex;align-items:center;justify-content:center;background:var(--london-blue);color:#fff;font-weight:850;border-radius:999px;padding:3px 10px;font-size:11px;letter-spacing:.04em;line-height:1;}
.roundel-mark .roundel-bar{font-size:10px;padding:4px 9px;}
main{max-width:1100px!important;padding:13px 12px 42px!important;}
.mode-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin:2px 0 13px!important;}
.journey-tab{min-height:92px!important;padding:10px 7px!important;border-radius:18px!important;background:var(--london-cream)!important;border:2px solid var(--london-line)!important;color:var(--london-ink)!important;font-size:18px!important;box-shadow:0 4px 12px rgba(21,58,138,.08)!important;gap:6px!important;}
.journey-tab span:last-child{font-size:16px!important;letter-spacing:0!important;font-weight:850!important;}
.journey-tab .tab-icon{display:flex;align-items:center;justify-content:center;}
.generic-badge{width:52px;height:52px;border-radius:16px;background:var(--london-soft);border:2px solid #cad3ef;font-size:28px;}
.rail-badge{width:58px;height:52px;border-radius:14px;background:#fff;border:2px solid #c7d0ea;gap:4px;padding:4px 6px;flex-direction:column;}
.swr-chip,.southern-chip{display:inline-flex;align-items:center;justify-content:center;width:100%;border-radius:999px;padding:3px 6px;font-size:11px;font-weight:850;line-height:1;}
.swr-chip{background:#1e4fa3;color:#fff;}
.southern-chip{background:#1f8e57;color:#fff;}
.ferry-badge{width:60px;height:52px;border-radius:14px;background:#fff;border:2px solid #c7d0ea;flex-direction:column;gap:1px;padding:3px 5px;}
.ferry-boat{font-size:21px;line-height:1;}
.ferry-text{font-size:10px;font-weight:850;line-height:1;color:var(--london-blue);}
.journey-tab.is-active{background:#fff!important;border-color:var(--london-red)!important;color:var(--london-ink)!important;box-shadow:0 0 0 3px rgba(200,16,46,.12)!important;}
.journey-tab.is-active .generic-badge{background:#ffe7ea!important;border-color:#f4b3be!important;}
.journey-tab.is-active .rail-badge,.journey-tab.is-active .ferry-badge{border-color:#efbcc5!important;background:#fff6f7!important;}
.journey-tab.is-active .roundel-badge{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(200,16,46,.18);}
.journey-tab:disabled{opacity:1!important;background:#f4f5f7!important;border-color:#d6d9e2!important;color:#6b7488!important;}
.journey-tab:disabled .generic-badge,.journey-tab:disabled .rail-badge,.journey-tab:disabled .ferry-badge{background:#eef0f4!important;border-color:#d8dde8!important;}
.journey-tab:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #ffcb3d!important;outline-offset:2px!important;}
.card,.planner-card,.reference-tools,#railHelp,.rolling-panel{background:#fff!important;color:var(--london-ink)!important;border:1px solid #d9dce5!important;box-shadow:0 6px 20px rgba(21,58,138,.08)!important;border-radius:19px!important;}
.planner-card{padding:18px!important;}
.planner-card h2,.reference-tools>summary,.eyebrow,#railHelp h2,.rolling-head h2,.quick-tools h2,footer strong{color:var(--london-blue)!important;}
.eyebrow{font-weight:850!important;}
.field-heading label,.travel-label,label{color:var(--london-ink)!important;font-weight:800!important;font-size:17px!important;}
#planner input,#planner select{background:#fff!important;border:2px solid #c9d1e7!important;color:var(--london-ink)!important;min-height:55px!important;border-radius:13px!important;font-size:17px!important;padding:10px 13px!important;}
#planner input::placeholder{color:#67728b!important;}
button.primary,#go{background:var(--london-blue)!important;color:#fff!important;border:2px solid #0f2c68!important;border-radius:15px!important;min-height:60px!important;font-size:19px!important;font-weight:850!important;box-shadow:0 4px 0 #0f2c68!important;}
button.secondary,a.secondary,.small,.station-picker,.choice,.rolling-toggle{background:#f3f6fc!important;border:1px solid #c9d1e7!important;color:var(--london-blue)!important;border-radius:12px!important;font-weight:780!important;}
#clearPlan,.text-button,a{color:var(--london-blue)!important;}
.reference-tools{background:#fbfbfd!important;border-color:#d9dce5!important;}
.reference-tools>summary span,footer{color:#55627c!important;}
@media(max-width:530px){.mode-tabs{gap:9px!important;}.journey-tab{min-height:88px!important;}.journey-tab span:last-child{font-size:15px!important;}.roundel-badge{width:48px;height:48px;}.generic-badge{width:48px;height:48px;font-size:25px;}.rail-badge,.ferry-badge{width:54px;height:48px;}}
@media(max-width:360px){.journey-tab{min-height:82px!important;}.journey-tab span:last-child{font-size:14px!important;}}


/* JOURNEY STAGE 1D — user-supplied transport logos on tabs */
.logo-badge{width:64px;height:52px;border-radius:14px;background:#fff;border:2px solid #c7d0ea;overflow:hidden;padding:4px;display:flex;align-items:center;justify-content:center;}
.logo-badge img{display:block;max-width:100%;max-height:100%;object-fit:contain;}
.roundel-logo-badge{width:62px;height:62px;border-radius:999px;padding:0;background:#fff;}
.roundel-logo-badge img{width:100%;height:100%;object-fit:contain;}
.bus-logo-badge{width:66px;height:50px;padding:0;background:#4e238f;border-color:#4e238f;}
.bus-logo-badge img{width:100%;height:100%;object-fit:cover;}
.ferry-logo-badge{width:66px;height:50px;padding:2px 4px;background:#fff;}
.journey-tab{min-height:98px!important;}
.journey-tab .tab-icon{margin-bottom:2px;}
.journey-tab.is-active .logo-badge{border-color:#efbcc5!important;background:#fff!important;box-shadow:0 0 0 2px rgba(200,16,46,.1) inset;}
.journey-tab:disabled .logo-badge{filter:grayscale(.08);opacity:.92;background:#fff;}
@media(max-width:530px){.logo-badge{width:60px;height:48px}.roundel-logo-badge{width:58px;height:58px}.bus-logo-badge,.ferry-logo-badge{width:62px;height:46px}}

/* STAGE 1E: big high-visibility transport graphics, no route logic changes */
.mode-tabs{gap:8px!important}
.journey-tab{min-height:130px!important;padding:8px 4px!important;gap:6px!important;justify-content:center!important}
.journey-tab .tab-icon{width:100%!important;height:89px!important;max-width:none!important;flex:0 0 89px!important;border:none!important;border-radius:12px!important;background:transparent!important;margin:0!important;padding:2px!important;box-shadow:none!important;overflow:hidden!important}
.journey-tab .tab-icon img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;max-height:none!important;max-width:none!important}
.journey-tab .footpath-logo-badge img{width:90px!important;max-width:100%!important;margin:auto!important}
.journey-tab .drive-badge{font-size:58px!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important}
.journey-tab span:last-child{font-size:17px!important;line-height:1.15!important;font-weight:850!important}
.journey-tab:disabled .tab-icon{opacity:.92!important;filter:none!important}
@media(max-width:530px){.journey-tab{min-height:119px!important}.journey-tab .tab-icon{height:76px!important;flex-basis:76px!important}.journey-tab .footpath-logo-badge img{width:76px!important}.journey-tab .drive-badge{font-size:52px!important}}
@media(max-width:360px){.journey-tab{min-height:110px!important}.journey-tab .tab-icon{height:68px!important;flex-basis:68px!important}.journey-tab span:last-child{font-size:15px!important}}

/* Stage 1G: compact light-grey header; no branding icon or subtitle. */
.hero{background:#f2f4f8!important;color:#13284b!important;box-shadow:none!important;border-radius:0!important;padding:11px 16px 5px!important;margin:0!important;min-height:0!important;}
.hero .brand-row{display:flex!important;align-items:center!important;gap:0!important;}
.hero .brand{color:#153a8a!important;font-size:27px!important;line-height:1.15!important;letter-spacing:-.5px!important;font-weight:850!important;text-shadow:none!important;}
.hero .hero-subtitle,.hero .journey-mark,.hero h1,.hero p{display:none!important;}
main{padding-top:7px!important;}
@media(min-width:900px){.hero{padding:12px max(16px,calc((100vw - 1100px)/2)) 6px!important;}}

/* Stage 1H: transport icons as quick-choice shortcuts; retain the Travel By dropdown */
.mode-explainer{margin:0 2px 12px;padding:12px 14px;background:#fff;border:1px solid #c7d0ea;border-left:5px solid #153a8a;border-radius:12px;color:#153a8a;font-weight:700;font-size:14px;line-height:1.4;}

/* Ferry stage 2A — independent timetable panel */
.ferry-planner{scroll-margin-top:12px;padding:20px!important}.ferry-planner h2{color:#153a8a!important}.ferry-intro{line-height:1.5}.ferry-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ferry-fields label{font-size:15px!important;margin:4px 0 6px!important}.ferry-fields input,.ferry-fields select{min-height:52px;border-radius:12px;border:2px solid #c9d1e7;background:#fff;padding:8px;font-size:16px;width:100%;color:#13284b}.ferry-actions{display:flex;gap:10px;margin:14px 0}.ferry-actions>*{flex:1;min-height:52px!important;margin:0!important}.ferry-ready{background:#eff4ff;border-radius:12px;padding:12px;line-height:1.5}.ferry-departures{display:grid;gap:8px}.ferry-sailing{display:flex;align-items:center;gap:12px;border:1px solid #d9dce5;padding:12px;border-radius:12px}.ferry-first{border:2px solid #153a8a;background:#f4f7ff}.ferry-time{font-size:24px;font-weight:900;color:#153a8a;min-width:70px}.ferry-destination{flex:1;font-weight:750}.ferry-destination small,.ferry-time small{display:block;font-size:12px;color:#53617a;font-weight:500}.ferry-sailing>strong{background:#c8102e;color:white;border-radius:6px;padding:5px;font-size:12px}.ferry-official{display:inline-block;margin-top:5px;font-weight:750}.ferry-planner[hidden]{display:none!important}.ferry-tab:not(:disabled){cursor:pointer!important;background:white!important;color:#13284b!important}@media(max-width:600px){.ferry-fields{grid-template-columns:1fr}.ferry-actions{flex-direction:column}}

/* STAGE 2B: Gosport Ferry's green/blue section identity. Ferry functionality unchanged. */
#ferryPlanner.ferry-planner{background:#f5fff9!important;border:2px solid #19804e!important;box-shadow:0 8px 24px rgba(15,77,94,.12)!important;overflow:hidden;}
#ferryPlanner .eyebrow{background:#168249;color:#fff!important;margin:-18px -18px 18px!important;padding:15px 18px!important;font-size:13px!important;letter-spacing:.10em!important;}
#ferryPlanner h2{color:#123f81!important;font-size:29px!important;margin-bottom:10px!important;}
#ferryPlanner .ferry-intro{color:#234a3a!important;font-size:16px!important;line-height:1.5!important;}
#ferryPlanner label{color:#0a573c!important;}
#ferryPlanner select,#ferryPlanner input{background:#fff!important;border:2px solid #7bbd96!important;border-radius:12px!important;color:#103b50!important;min-height:54px!important;font-size:17px!important;}
#ferryPlanner button.primary,#ferryPlanner #ferryShow{background:#16663f!important;border-color:#0e4c30!important;color:#fff!important;box-shadow:none!important;}
#ferryPlanner .secondary{background:#e3edff!important;color:#113e88!important;border-color:#98b2da!important;}
#ferryPlanner .ferry-sailing{background:#fff!important;border:1px solid #b2ddc6!important;border-radius:12px!important;padding:12px!important;}
#ferryPlanner .ferry-sailing.ferry-first{border:2px solid #157b4a!important;background:#ecfff4!important;}
#ferryPlanner .ferry-time{color:#123f81!important;}
#ferryPlanner .ferry-ready{background:#e2f2fc!important;color:#133c70!important;border-radius:12px!important;padding:12px!important;}
#ferryPlanner .ferry-official{color:#125d41!important;font-weight:800!important;}
#ferryPlanner .ferry-disclaimer{color:#35524c!important;}
#ferryPlanner[hidden]{display:none!important;}

/* Journey Stage 2C — repeatable transport section header pattern */
.ferry-planner .ferry-topline{background:#167b48;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px 18px;margin:-1px -1px 0;min-height:57px;font-size:13px;font-weight:850;letter-spacing:.08em;}
.ferry-planner .ferry-close{width:45px;height:45px;min-height:45px;flex:0 0 45px;border-radius:12px;background:#fff;color:#104b35;border:2px solid #c7e3d5;font-size:30px;font-weight:600;line-height:1;display:grid;place-items:center;}
.ferry-planner .ferry-brand-title{display:flex;align-items:center;gap:14px;font-size:clamp(24px,5vw,31px)!important;margin:20px 0 16px!important;color:#113f7d!important;}
.ferry-planner .ferry-brand-title img{width:78px;height:64px;object-fit:contain;flex:0 0 78px;background:#fff;border-radius:12px;padding:5px;}
@media(max-width:390px){.ferry-planner .ferry-brand-title img{width:66px;height:56px;flex-basis:66px}.ferry-planner .ferry-brand-title{gap:9px;font-size:25px!important;}}

/* Stage 2K — compact Journey planner only; no data or routing changes */
.planner-card{padding:15px!important;}
.planner-card h2{margin:0 0 11px!important;font-size:23px!important;}
.planner-card .field-heading{margin:10px 0 5px!important;}
#planner input,#planner select{min-height:49px!important;padding:8px 12px!important;font-size:16px!important;}
.planner-card .station-picker{min-height:34px!important;padding:5px 10px!important;margin:5px 0 3px!important;font-size:13px!important;}
.planner-card .travel-label{margin:12px 0 6px!important;display:block;}
#go{min-height:54px!important;margin:12px 0 8px!important;font-size:18px!important;}
.planner-card #clearPlan{display:inline-block;min-height:38px;padding:6px 3px;font-size:14px!important;}
.planner-card .planner-actions{gap:9px!important;grid-template-columns:1fr 1fr!important;margin-top:5px;}
.planner-card .planner-actions .secondary,.planner-card .small{min-height:45px!important;border-radius:12px!important;font-size:14px!important;padding:9px!important;text-align:center;line-height:1.2;}
.planner-card #locate,.planner-card #swap{min-width:104px;}
@media(max-width:390px){.planner-card .planner-actions .secondary{font-size:12px!important;padding:7px 5px!important;}}

/* Stage 2L — Journey Weather, independent and on-demand */
.weather-tab{background:#edf5fc!important;border-color:#9bc3da!important;color:#17466c!important;}
.weather-tab .tab-icon{font-size:40px;line-height:1.1;}
.journey-weather{border:2px solid #87bad9!important;background:#f3faff!important;overflow:hidden;padding:16px!important;}
.journey-weather[hidden]{display:none!important;}
.weather-topline{background:#226b98;color:white;display:flex;align-items:center;justify-content:space-between;margin:-16px -16px 18px;padding:11px 15px;font-size:13px;font-weight:850;letter-spacing:.09em;}
#weatherClose{border:1px solid #dceaf4;color:white;background:transparent;border-radius:9px;min-width:43px;height:42px;font-size:28px;line-height:1;cursor:pointer;}
.journey-weather h2{margin:0 0 8px;color:#134c75;}
.weather-intro{margin:0 0 16px;color:#38596d;}
.journey-weather label{font-weight:800;display:block;margin-bottom:6px;}
.weather-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:stretch;}
.weather-search-row input{min-width:0;width:100%;height:49px;border-radius:12px;border:1px solid #a6c9e1;padding:8px 11px;}
.weather-search-row button{font-size:14px!important;padding:8px 11px!important;min-height:49px!important;margin:0!important;border-radius:12px!important;}
.weather-action-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:10px 0 14px;}
.weather-action-row button{padding:8px 12px!important;font-size:13px!important;min-height:40px!important;}
#weatherStatus{font-size:12px;color:#35637d;flex:1;}
.weather-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0 18px;}
.weather-metric,.weather-day,.weather-hour{border:1px solid #cadeec;border-radius:11px;background:white;padding:11px;}
.weather-metric small{display:block;color:#436b81;font-size:12px;}
.weather-metric strong{font-size:21px;color:#113f63;}
.weather-main{background:#dceefa;padding:15px;border-radius:13px;}
.weather-main h3{margin:0 0 5px;color:#184a69;}
.weather-main strong{font-size:33px;color:#123f63;}
.weather-scroll{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding:3px 0 10px;}
.weather-hour{flex:0 0 95px;text-align:center;scroll-snap-align:start;font-size:13px;}
.weather-hour strong{display:block;font-size:18px;margin:7px 0;}
.weather-days{display:grid;grid-template-columns:1fr;gap:7px;}
.weather-day{display:grid;grid-template-columns:1.2fr 1fr 1fr;align-items:center;gap:7px;font-size:13px;}
.weather-day b{font-size:15px;}
.weather-subhead{margin:15px 0 10px;color:#144b6c;}
.weather-note{font-size:12px;color:#47687c;margin-top:18px;}
@media(max-width:370px){.weather-search-row{grid-template-columns:1fr;}.weather-day{grid-template-columns:1fr 1fr;}}

/* Stage 2M: weather dual units and destination control */
.weather-metric strong{overflow-wrap:anywhere}.weather-search-row{flex-wrap:wrap}.weather-search-row #weatherDestination{white-space:normal}

/* Stage 2M.2 — optional outlook panels; current conditions always visible */
.weather-outlook{display:grid;gap:9px;margin-top:12px}
.weather-fold{background:#fff;border:1px solid #a8cbe0;border-radius:12px;overflow:hidden}
.weather-fold summary{cursor:pointer;list-style:none;padding:14px 38px 14px 13px;font-size:15px;font-weight:800;color:#164a70;position:relative;touch-action:manipulation}
.weather-fold summary::-webkit-details-marker{display:none}
.weather-fold summary::after{content:'+';position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:23px;font-weight:500}
.weather-fold[open] summary::after{content:'−'}
.weather-fold[open] summary{background:#e2f1fa;border-bottom:1px solid #c5deed}
.weather-fold .weather-scroll,.weather-fold .weather-days{margin:10px}
.weather-fold .weather-scroll{padding-bottom:5px}

/* Stage 2M.4 — compact wind units, kept together on narrow phones */
.weather-metric .weather-wind-value{display:block;white-space:nowrap;overflow-wrap:normal;font-size:clamp(11px,3vw,15px);letter-spacing:-.3px;line-height:1.45;}


/* Stage 2M.6 — readable weather figures, mobile-first; weather only */
.journey-weather .weather-metric small{font-size:18px;line-height:1.3;font-weight:650;margin-bottom:4px;}
.journey-weather .weather-metric strong{font-size:22px;line-height:1.3;}
.journey-weather .weather-metric .weather-wind-value{font-size:18px;letter-spacing:-.55px;white-space:nowrap;overflow-wrap:normal;line-height:1.35;}
.journey-weather .weather-hour{flex:0 0 115px;font-size:18px;line-height:1.4;padding:11px 8px;}
.journey-weather .weather-hour b,.journey-weather .weather-hour span{font-size:18px;font-weight:750;}
.journey-weather .weather-hour strong{font-size:22px;line-height:1.35;margin:8px 0;}
.journey-weather .weather-day{font-size:18px;line-height:1.35;}
.journey-weather .weather-day b{font-size:18px;}
.journey-weather .weather-fold summary{font-size:18px;}
.journey-weather .weather-main{font-size:18px;}
@media(max-width:370px){.journey-weather .weather-metrics{grid-template-columns:1fr;}}

/* Stage 2M.7: legible local sunrise/sunset, without altering other cards. */
.journey-weather .weather-sun-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0 0 18px;}
.journey-weather .weather-sun-times .weather-metric strong{font-size:24px;white-space:nowrap;}
.journey-weather .weather-conditions-icon{font-size:1.1em;vertical-align:middle;}
@media(max-width:370px){.journey-weather .weather-sun-times{grid-template-columns:repeat(2,minmax(0,1fr));}}


/* Stage 2M.8 — original, high-contrast weather pictograms and local temperature */
.weather-tab .tab-icon.weather-tab-display{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:0!important;}
.weather-tab .weather-tab-symbol{display:flex!important;align-items:center;justify-content:center;width:58px;height:58px;flex:0 0 58px;}
.weather-tab .weather-tab-temp{font-size:25px!important;line-height:1!important;font-weight:900!important;color:#17466c;letter-spacing:-.5px;}
.weather-symbol-svg{display:block;width:100%;height:100%;overflow:visible;}
.journey-weather .weather-conditions-icon{display:inline-flex;vertical-align:middle;width:46px;height:46px;margin-right:5px;}
.journey-weather .weather-hour-symbol{display:flex;justify-content:center;align-items:center;height:48px;margin:4px auto 0;}
.journey-weather .weather-hour-symbol .weather-symbol-svg{width:46px;height:46px;}
.journey-weather .weather-hour strong{margin:3px 0 5px;}
.journey-weather .weather-hour-rain{display:block;white-space:nowrap;}
.journey-weather .weather-day{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,.85fr);gap:5px;}
.journey-weather .weather-day-name{display:flex;align-items:center;gap:5px;min-width:0;}
.journey-weather .weather-day-symbol{display:inline-flex;flex:0 0 36px;width:36px;height:36px;}
.journey-weather .weather-day-name b{font-size:16px;}
@media(max-width:530px){.weather-tab .weather-tab-symbol{width:49px;height:49px;flex-basis:49px;}.weather-tab .weather-tab-temp{font-size:23px!important;}.journey-weather .weather-day{font-size:15px;}.journey-weather .weather-day-name b{font-size:15px;}}

/* Stage 2M.11: readable meteorological trend fields */
.journey-weather .weather-metric strong{overflow-wrap:normal;word-break:normal;}
.journey-weather .weather-metric:nth-child(8) strong{font-size:clamp(15px,3.2vw,20px);line-height:1.4;}

/* Stage 2M.12 — moon phase and estimated illumination */
.journey-weather .weather-moon{display:flex;align-items:center;gap:16px;padding:14px 16px;margin:0 0 20px;background:#fff;border:1px solid #b9d8e5;border-radius:14px;color:#174968;}
.journey-weather .weather-moon-icon{font-size:52px;line-height:1;flex:0 0 60px;text-align:center;}
.journey-weather .weather-moon div{display:flex;flex-direction:column;gap:3px;min-width:0;}
.journey-weather .weather-moon small{font-size:18px;color:#42677b;font-weight:600;}
.journey-weather .weather-moon strong{font-size:25px;line-height:1.15;}
.journey-weather .weather-moon div>span{font-size:18px;font-weight:600;}

/* Stage 2M.13 — restrained home-screen polish; no transport or Weather logic changes. */
.mode-tabs{align-items:stretch!important;row-gap:10px!important;}
.journey-tab{border-radius:19px!important;}
.journey-tab:focus-visible{outline:3px solid #17488c!important;outline-offset:3px!important;}
.mode-explainer{margin-top:10px!important;margin-bottom:12px!important;padding:10px 13px!important;}
.planner-card h2{line-height:1.15!important;}
.planner-card input,.planner-card select{font-size:16px!important;}
footer{border-top:1px solid #d4d9e2;margin-top:20px;padding-top:15px;}
footer p{margin:7px 0;}
@media(max-width:530px){.mode-tabs{column-gap:8px!important;row-gap:9px!important;}.journey-tab{border-radius:17px!important;}}

/* TfL map and service status appear only with TfL selected. */
#tflReferenceTools[hidden]{display:none!important}

/* 2M.15 Train quick selection – isolated to rail panel */
#railHelp .rail-quickpick{margin:15px 0;padding:13px;border:1px solid #cbd7e6;border-radius:13px;background:#f6f9ff}
#railHelp .rail-quickpick>strong{font-size:19px;color:#153c68}
#railHelp .rail-pick-side{display:flex;gap:8px;margin:9px 0}
#railHelp button.rail-side{flex:1;min-height:44px;background:white;border:2px solid #d1d8e6;border-radius:10px;color:#173969;font-size:16px;font-weight:750}
#railHelp button.rail-side.is-active{border-color:#173d85;background:#e5eeff}
#railHelp .rail-stations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#railHelp button.rail-station-choice{background:white;border:1px solid #cbd7e6;min-height:47px;padding:9px 7px;border-radius:10px;font-size:14px;line-height:1.2;text-align:left;color:#173969;font-weight:700}
#railHelp button.rail-station-choice:focus-visible{outline:3px solid #1744a0}

/* Stage 2M.16: rail pre-planning controls only */
#railHelp .rail-advance{margin:14px 0 18px;padding:16px;border-radius:14px;border:1px solid #bdcfe2;background:#f5f9ff}
#railHelp .rail-advance h3{margin:0 0 8px;color:#174568;font-size:23px}
#railHelp .rail-advance-fields{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:14px 0}
#railHelp .rail-advance-fields label{display:block;margin-bottom:7px;font-weight:750;font-size:17px;color:#173b61}
#railHelp .rail-advance-fields input{width:100%;min-width:0;box-sizing:border-box;padding:11px 6px;border:2px solid #bdcbe0;border-radius:11px;background:white;font-size:17px;color:#1a3550}
#railHelp .rail-compare-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
#railHelp .rail-compare-actions .secondary{font-size:17px;min-height:48px}
#railHelp #railAdvanceHint{line-height:1.45}
@media(max-width:390px){#railHelp .rail-advance-fields{grid-template-columns:1fr}}

/* Stage 2M.17 — train-only compact presentation, no route/forecast changes */
#railHelp{padding:16px!important}
#railHelp h2{margin:0 0 8px!important;font-size:25px!important}
#railHelp .rail-help-lead{margin:0 0 12px;color:#365477;line-height:1.3;font-size:16px}
#railHelp .rail-advance{margin:10px 0 13px;padding:14px!important}
#railHelp .rail-advance h3{font-size:20px!important;margin-bottom:4px}
#railHelp .rail-advance-fields{margin:10px 0!important}
#railHelp .rail-advance-fields input{min-height:49px}
#railHelp .rail-compare-actions .secondary{width:100%;background:#183c84!important;color:white!important;font-weight:800!important;min-height:51px}
#railHelp .rail-compare-actions .text-button{margin:0 auto;padding:9px;min-height:39px}
#railHelp .rail-quickdetails{border:1px solid #cbd7e6;border-radius:13px;margin:11px 0;background:#fff;overflow:hidden}
#railHelp .rail-quickdetails>summary{cursor:pointer;padding:14px 15px;font-size:17px;font-weight:800;color:#193b74;list-style-position:inside}
#railHelp .rail-quickdetails[open]>summary{border-bottom:1px solid #cbd7e6;background:#f0f5ff}
#railHelp .rail-quickpick{border:0!important;margin:0!important;border-radius:0!important;padding:11px!important}
#railHelp .rail-quickpick .hint{margin:0 0 6px}
#railHelp .rail-stations button{font-size:15px!important}
#railHelp .rail-extra #railLinks{display:grid;gap:7px;padding:12px}
#railHelp .rail-extra #railLinks a{min-height:41px;display:flex;align-items:center;padding:9px 12px}
#railHelp .rail-extra>p{padding:0 12px 12px;margin:0}
@media(max-width:390px){#railHelp .rail-advance-fields{grid-template-columns:1fr 1fr!important;gap:7px}#railHelp .rail-advance-fields label{font-size:14px!important}#railHelp .rail-advance-fields input{font-size:16px!important}}

/* Stage 2M.18 - single rail planning sequence, presentation only. */
body[data-travel-mode="rail"] .planner-card #mode,
body[data-travel-mode="rail"] .planner-card .travel-label,
body[data-travel-mode="rail"] .planner-card #go,
body[data-travel-mode="rail"] .planner-card .planner-actions,
body[data-travel-mode="rail"] #journeyMessage {display:none!important}
body[data-travel-mode="rail"] .planner-card #railHelp{display:block!important; margin:16px 0 0; padding:0; border:0; box-shadow:none; background:transparent}
body[data-travel-mode="rail"] #railHelp .rail-advance {padding:12px!important; margin:9px 0!important}
body[data-travel-mode="rail"] #railHelp .rail-advance h3 {font-size:21px!important}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields label {font-size:16px!important; min-height:2.7em}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields input {width:100%;font-size:17px!important;min-width:0}
body[data-travel-mode="rail"] #railHelp .rail-quickdetails {margin:9px 0}
body[data-travel-mode="rail"] #railHelp .rail-experimental {width:100%;margin-top:8px;border-top:1px solid #c7d7e8;padding-top:9px}
body[data-travel-mode="rail"] #railHelp .rail-experimental summary{font-weight:650;color:#284c78;cursor:pointer;font-size:15px}
body[data-travel-mode="rail"] #railHelp .rail-experimental button{margin-top:8px}
body[data-travel-mode="rail"] #railHelp #railCompare{width:100%;font-size:19px!important}
body[data-travel-mode="rail"] .planner-card #clearPlan{margin-top:12px}

/* Stage 2M.19 — narrow-screen Train date/time layout correction only. */
body[data-travel-mode="rail"] #railHelp .rail-advance-fields > div{min-width:0;max-width:100%;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields input{display:block;min-width:0;max-width:100%;box-sizing:border-box;}
@media(max-width:700px){
 body[data-travel-mode="rail"] #railHelp .rail-advance-fields{display:grid;grid-template-columns:minmax(0,1fr)!important;gap:14px!important;}
 body[data-travel-mode="rail"] #railHelp .rail-advance-fields label{min-height:0!important;line-height:1.3;margin-bottom:7px;}
 body[data-travel-mode="rail"] #railHelp .rail-advance-fields input{width:100%;font-size:18px!important;min-height:54px;}
}

/* Stage 2M.20: isolated experimental rail source panel */
#railHelp .rail-source-fold{width:100%;margin:10px 0;border:1px solid #c6d7e6;border-radius:12px;padding:12px;background:white;}
#railHelp .rail-source-fold summary{font-size:17px;font-weight:750;color:#1b4771;cursor:pointer;}
#railHelp .rail-source-fold button{width:100%;margin:9px 0;font-size:16px;}
#railSourceResults{font-size:16px;line-height:1.4;}
#railSourceResults .rail-source-card{padding:9px 6px;border-top:1px solid #d6e0eb;display:flex;gap:7px;flex-wrap:wrap;justify-content:space-between;}
#railSourceResults .rail-source-card strong{font-size:19px;}

/* Stage 2M.22: timetable-first Train planning only. */
body[data-travel-mode="rail"] #railHelp .rail-timetable-link{display:block;width:100%;box-sizing:border-box;min-height:56px;padding:13px 12px;border-radius:12px;background:#173e84;color:#fff!important;font-size:18px;font-weight:800;text-align:center;text-decoration:none;line-height:1.35;}
body[data-travel-mode="rail"] #railHelp .rail-timetable-note{margin:0 0 8px;font-size:15px;color:#365477;line-height:1.4;}
body[data-travel-mode="rail"] #railHelp #railCompare{background:#f5f8fd!important;color:#174279!important;border:2px solid #b9cce6!important;font-size:16px!important;}

/* Journey 2M.27 primary National Rail live board */
#railHelp .rail-live-intro{background:#e7f1fa;border:2px solid #accbe1;border-radius:13px;padding:14px;margin:0 0 18px;}
#railHelp .rail-live-intro strong{display:block;font-size:21px;color:#163e67;}
#railHelp .rail-live-intro p{font-size:16px;line-height:1.35;margin:5px 0 12px;}
#railHelp .rail-live-intro button{width:100%;min-height:56px;background:#193e87;color:white;border:0;border-radius:11px;font-weight:800;font-size:18px;padding:10px;}

/* Journey Stage 2M.29: hide unverified Train trials; leave code intact for possible future investigation. */
body[data-travel-mode="rail"] #railHelp .rail-source-fold,
body[data-travel-mode="rail"] #railHelp .rail-experimental,
body[data-travel-mode="rail"] #railAdvanceHint {display:none!important;}

/* 2M.30 Rail: retain only the Southern link in the optional links panel. */
body[data-travel-mode="rail"] #railHelp .rail-extra #railLinks a:not(:last-of-type){display:none!important;}

/* Stage 2M.31: compact, single-column Train form. No rail behaviour changed. */
body[data-travel-mode="rail"] #railHelp > .rail-quickdetails:first-child{display:none!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance{display:flex!important;flex-direction:column!important;gap:0!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance>h3{order:1!important;margin:0 0 10px!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields{order:2!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important;margin:0 0 18px!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields>div{min-width:0!important;width:100%!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields label{font-size:18px!important;min-height:0!important;margin:0 0 7px!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields input{display:block!important;box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-height:55px!important;padding:12px 15px!important;font-size:19px!important;border:2px solid #c4cde0!important;border-radius:12px!important;background:#fff!important;color:#1b3554!important;}
body[data-travel-mode="rail"] #railHelp .rail-live-intro{order:3!important;margin:0 0 16px!important;}
body[data-travel-mode="rail"] #railHelp .rail-compare-actions{order:4!important;}
body[data-travel-mode="rail"] #railHelp #railAdvanceHint{order:5!important;}

/* Stage 2M.32: make rail date and time match station fields without spilling beyond their panel. */
body[data-travel-mode="rail"] .planner-card,body[data-travel-mode="rail"] #railHelp,body[data-travel-mode="rail"] #railAdvance{box-sizing:border-box!important;min-width:0!important;max-width:100%!important;}
body[data-travel-mode="rail"] #railHelp{padding:0!important;margin-top:14px!important;}
body[data-travel-mode="rail"] #railAdvance{padding:0!important;border:0!important;background:transparent!important;margin:0!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields,body[data-travel-mode="rail"] #railHelp .rail-advance-fields>div{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields input{box-sizing:border-box!important;display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;height:55px!important;min-height:55px!important;border:2px solid #c4cde0!important;border-radius:12px!important;background:#fff!important;padding:10px 12px!important;font-size:19px!important;box-shadow:none!important;}

/* Stage 2M.33 — date/time continue From and To, same fields, no separate card. */
body[data-travel-mode="rail"] #railHelp,body[data-travel-mode="rail"] #railAdvance{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;margin:0!important;border-radius:0!important;overflow:visible!important;}
body[data-travel-mode="rail"] #railHelp{width:100%!important;max-width:100%!important;}
body[data-travel-mode="rail"] #railAdvance>h3{display:none!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields{margin:12px 0 16px!important;gap:14px!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields label{font-size:18px!important;font-weight:800!important;line-height:1.4!important;margin:0 0 6px!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields input{width:100%!important;max-width:100%!important;height:49px!important;min-height:49px!important;box-sizing:border-box!important;padding:8px 12px!important;font-size:16px!important;border:2px solid #c4cde0!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important;}

/* Stage 2M.34 — constrain iOS date/time controls to the exact station-input height. */
body[data-travel-mode="rail"] #planner #railDate,body[data-travel-mode="rail"] #planner #railTime{display:block!important;-webkit-appearance:none!important;appearance:none!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;height:49px!important;min-height:49px!important;max-height:49px!important;block-size:49px!important;min-block-size:49px!important;max-block-size:49px!important;margin:0!important;padding:0 12px!important;line-height:49px!important;font-size:16px!important;border:2px solid #c4cde0!important;border-radius:12px!important;background:#fff!important;overflow:hidden!important;}
body[data-travel-mode="rail"] #planner #railDate::-webkit-date-and-time-value,body[data-travel-mode="rail"] #planner #railTime::-webkit-date-and-time-value{min-height:0!important;line-height:47px!important;text-align:center!important;}

/* Stage 2M.35: iOS native date/time text: match location input text rather than centred native display. */
body[data-travel-mode="rail"] #planner #railDate,body[data-travel-mode="rail"] #planner #railTime{font-family:inherit!important;font-size:16px!important;font-weight:400!important;letter-spacing:normal!important;text-align:left!important;line-height:normal!important;-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important;padding:8px 12px!important;height:49px!important;min-height:49px!important;max-height:49px!important;border-radius:13px!important;border:2px solid #c4cde0!important;color:#1b3554!important;}
body[data-travel-mode="rail"] #planner #railDate::-webkit-datetime-edit,body[data-travel-mode="rail"] #planner #railTime::-webkit-datetime-edit{display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;width:auto!important;min-height:0!important;padding:0!important;margin:0!important;font-family:inherit!important;font-size:16px!important;font-weight:400!important;text-align:left!important;line-height:normal!important;}
body[data-travel-mode="rail"] #planner #railDate::-webkit-date-and-time-value,body[data-travel-mode="rail"] #planner #railTime::-webkit-date-and-time-value{display:flex!important;align-items:center!important;justify-content:flex-start!important;text-align:left!important;min-height:0!important;height:auto!important;line-height:normal!important;font-size:16px!important;}
body[data-travel-mode="rail"] #planner #railDate::-webkit-datetime-edit-fields-wrapper,body[data-travel-mode="rail"] #planner #railTime::-webkit-datetime-edit-fields-wrapper{padding:0!important;font-size:16px!important;}

/* 2M.36: remove the higher-specificity 12px rail-advance inset; align date/time with From and To. */
body[data-travel-mode="rail"] #railHelp #railAdvance{padding:0!important;margin:0!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;}
body[data-travel-mode="rail"] #railHelp #railAdvance .rail-advance-fields{padding:0!important;margin:6px 0 15px!important;width:100%!important;max-width:100%!important;}
body[data-travel-mode="rail"] #railHelp #railAdvance .rail-advance-fields>div{padding:0!important;margin:0!important;}

/* 2M.37: empty native pickers with accessible in-field instructions until chosen. */
body[data-travel-mode="rail"] #railHelp .rail-advance-fields>div{position:relative!important;}
body[data-travel-mode="rail"] #railHelp .rail-input-prompt{position:absolute;left:13px;bottom:13px;z-index:2;pointer-events:none;font-size:16px;font-weight:400;color:#737c8e;background:#fff;padding:1px 4px;line-height:20px;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields>div:focus-within .rail-input-prompt,body[data-travel-mode="rail"] #railHelp .rail-advance-fields>div.has-rail-value .rail-input-prompt{display:none!important;}

/* Stage 2M.38 live board, isolated to Train */
#railBoardResults{font-size:16px;line-height:1.4;margin:10px 0;}#railBoardResults .journey-live-departure{background:white;border:1px solid #b7cede;border-radius:11px;padding:11px;margin:8px 0;}#railBoardResults .journey-live-departure strong{font-size:18px;}#railBoardResults .journey-live-departure p{margin:5px 0;}#railBoardResults details{margin:7px 0;}

/* Stage 2M.40 optional selected-train route — does not affect live board. */
.journey-rolling-train[hidden]{display:none!important}.journey-rolling-train{margin:12px 0;padding:14px;background:#eff7ff;border:2px solid #97bed6;border-radius:14px}.journey-rolling-train h3{color:#16466c;font-size:22px}.journey-rolling-train ol{list-style:decimal;padding-left:29px;margin:10px 0}.journey-rolling-train li{padding:9px 5px;font-size:17px;border-bottom:1px solid #cbdde9}.journey-rolling-train li.is-passed{opacity:.4;text-decoration:line-through}.journey-rolling-train li.is-next{background:#d3ecfc;font-weight:800;border-radius:8px}.journey-train-select{display:block;margin-top:10px;width:100%;padding:9px;border-radius:10px;background:#183f83;color:white;font-size:16px;font-weight:750}.journey-train-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.journey-train-actions button{padding:10px;background:#193e87;color:white;font-weight:750}.journey-train-actions button:disabled{opacity:.4}.journey-train-actions .journey-train-close{background:#e2e9f2;color:#17446c}

/* Stage 2M.42: independently selectable Today and manual Train planning. */
body[data-travel-mode="rail"] #railAdvance .rail-period-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;order:0;margin:5px 0 16px;width:100%;}
body[data-travel-mode="rail"] #railAdvance .rail-period-tabs button{min-height:51px;border:2px solid #a9c3d9;border-radius:12px;background:#fff;color:#174374;font-size:17px;font-weight:800;padding:9px 6px;}
body[data-travel-mode="rail"] #railAdvance .rail-period-tabs button.is-active{background:#193e87;color:white;border-color:#193e87;}
body[data-travel-mode="rail"] #railAdvance.rail-today-mode .rail-advance-fields,body[data-travel-mode="rail"] #railAdvance.rail-today-mode .rail-compare-actions{display:none!important;}
body[data-travel-mode="rail"] #railAdvance.rail-manual-mode .rail-live-intro{display:none!important;}

/* Stage 2M.43 Railway website shortcuts */
#railHelp .journey-rail-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0;}
#railHelp .journey-rail-shortcuts a{display:flex;align-items:center;justify-content:center;min-height:49px;border:1.5px solid #bdcde0;border-radius:11px;background:#f4f7fe;color:#193e87;font-weight:750;font-size:15px;text-align:center;padding:10px 6px;text-decoration:none;}
@media(max-width:360px){#railHelp .journey-rail-shortcuts{grid-template-columns:1fr;}}

/* Stage 2M.45 National Rail-inspired Train-only visual theme. */
body[data-travel-mode="rail"] .planner-card h2,body[data-travel-mode="rail"] .planner-card .field-heading label,body[data-travel-mode="rail"] #railHelp label{color:#30257e!important;}
body[data-travel-mode="rail"] #railAdvance .rail-period-tabs button{border-color:#bdb7dd!important;color:#30257e!important;background:#fff!important;}
body[data-travel-mode="rail"] #railAdvance .rail-period-tabs button.is-active{background:#322782!important;border-color:#322782!important;color:#fff!important;}
body[data-travel-mode="rail"] #railHelp .rail-live-intro{background:#f0eef9!important;border-color:#bbb5df!important;}
body[data-travel-mode="rail"] #railHelp .rail-live-intro strong,body[data-travel-mode="rail"] #railHelp .rail-live-intro p{color:#30257e!important;}
body[data-travel-mode="rail"] #railHelp #railBoardInJourney,body[data-travel-mode="rail"] #railHelp #railLiveBoardPrimary,body[data-travel-mode="rail"] #railHelp #railSWRBoard,body[data-travel-mode="rail"] #railHelp .rail-timetable-link,body[data-travel-mode="rail"] #railHelp .journey-train-select{background:#322782!important;color:#fff!important;border-color:#322782!important;}
body[data-travel-mode="rail"] #railHelp #railCompare{color:#30257e!important;border-color:#bbb5df!important;}
body[data-travel-mode="rail"] #railBoardResults .journey-live-departure{border-color:#c6c1e4!important;background:#fff!important;border-left:4px solid #b81932!important;}
body[data-travel-mode="rail"] #railBoardResults .journey-live-departure strong,body[data-travel-mode="rail"] #journeyRollingTrain h3{color:#30257e!important;}
body[data-travel-mode="rail"] #journeyRollingTrain{background:#f1effa!important;border-color:#bdb7df!important;}
body[data-travel-mode="rail"] #journeyRollingTrain li.is-next{background:#e1dbf7!important;border-left:3px solid #b81932!important;}
body[data-travel-mode="rail"] #journeyRollingTrain .journey-train-actions button{background:#322782!important;color:#fff!important;}
body[data-travel-mode="rail"] #journeyRollingTrain .journey-train-actions .journey-train-close{background:#eeecf7!important;color:#30257e!important;}
body[data-travel-mode="rail"] #railHelp .journey-rail-shortcuts a{background:#f3f1fb!important;color:#30257e!important;border-color:#c9c3e6!important;}
body[data-travel-mode="rail"] #railHelp .rail-advance-fields input{border-color:#c6c1e4!important;}

/* Stage 2M.47: Train banner removed and rail mark beside planner heading. */
body[data-travel-mode="rail"] #modeExplainer{display:none!important;}
body[data-travel-mode="rail"] #plannerTitle{display:flex!important;align-items:center!important;gap:12px!important;}
body[data-travel-mode="rail"] #plannerTitle::before{content:"";display:inline-block;flex:none;width:49px;height:39px;background:url("journey-national-rail-icon.png") center/contain no-repeat;}

/* 2M.48 Station codes regional directory, train-only. */
body[data-travel-mode="rail"] #journeyStationCodes{display:block!important;margin:0 0 14px!important;border:1.5px solid #c7c1e5;border-radius:13px;padding:12px;background:#faf9ff;}
body[data-travel-mode="rail"] #journeyStationCodes>summary{font-size:18px;font-weight:800;color:#30257e;}
body[data-travel-mode="rail"] .journey-code-area{padding:5px 0;border-top:1px solid #dedaf1;}
body[data-travel-mode="rail"] .journey-code-area>summary{font-size:16px;font-weight:750;color:#30257e;padding:8px 0;}
body[data-travel-mode="rail"] .journey-code-grid{display:grid;gap:5px;}
body[data-travel-mode="rail"] .journey-code-entry{display:flex;align-items:center;gap:12px;background:white;border:1px solid #e0def0;border-radius:8px;padding:7px 9px;font-size:15px;}
body[data-travel-mode="rail"] .journey-code-entry strong{min-width:43px;color:#30257e;font-size:17px;}

/* Stage 2M.49 national journey results; Train only */
body[data-travel-mode="rail"] #journeyNationalRoute{width:100%;min-height:54px;margin:8px 0;background:#322782;color:#fff;border-radius:12px;font-size:17px;font-weight:800;padding:10px;}
body[data-travel-mode="rail"] .journey-national-card{border:1px solid #ccc5e5;border-left:4px solid #b81932;background:white;border-radius:11px;padding:12px;margin:10px 0;color:#30257e;}
body[data-travel-mode="rail"] .journey-national-card strong{font-size:20px;}
body[data-travel-mode="rail"] .journey-national-card p{margin:6px 0;font-size:16px;line-height:1.4;}

/* Stage 2M.51 — independent Bus information hub. */
#journeyBusPanel[hidden]{display:none!important;}
#journeyBusPanel{background:#f5f9fa;border:1.5px solid #b8d6da;border-radius:15px;margin:12px 0;padding:16px;color:#173c47;}
#journeyBusPanel .journey-bus-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;}
#journeyBusPanel h2{color:#154653;margin:0;font-size:23px;}
#journeyBusPanel .journey-bus-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0;}
#journeyBusPanel .journey-bus-links a{display:flex;align-items:center;justify-content:center;min-height:55px;padding:10px 6px;text-align:center;background:white;border:2px solid #92c1cc;border-radius:11px;color:#164d60;text-decoration:none;font-weight:800;font-size:16px;}
#journeyBusShortcut.is-active{border-color:#18849a!important;background:#e3f5f7!important;}
@media(max-width:370px){#journeyBusPanel .journey-bus-links{grid-template-columns:1fr;}}

/* Stage 2M.53 — each mode is a single independent screen. */
body[data-journey-screen="bus"] #modeExplainer,body[data-journey-screen="bus"] #tflReferenceTools,body[data-journey-screen="bus"] .planner-card,body[data-journey-screen="bus"] #weatherPanel,body[data-journey-screen="bus"] #ferryPlanner,body[data-journey-screen="ferry"] #modeExplainer,body[data-journey-screen="ferry"] #tflReferenceTools,body[data-journey-screen="ferry"] .planner-card,body[data-journey-screen="ferry"] #weatherPanel,body[data-journey-screen="ferry"] #journeyBusPanel,body[data-journey-screen="weather"] #modeExplainer,body[data-journey-screen="weather"] #tflReferenceTools,body[data-journey-screen="weather"] .planner-card,body[data-journey-screen="weather"] #ferryPlanner,body[data-journey-screen="weather"] #journeyBusPanel{display:none!important;}
body[data-journey-screen="main"] #journeyBusPanel,body[data-journey-screen="main"] #ferryPlanner,body[data-journey-screen="main"] #weatherPanel{display:none!important;}

/* Stage 2M.54 — Bus regional directories and independent Coach screen. */
#journeyCoachPanel[hidden]{display:none!important;}
#journeyCoachPanel{background:#f5f9fa;border:1.5px solid #b8d6da;border-radius:15px;margin:12px 0;padding:16px;color:#173c47;}
#journeyCoachPanel .journey-bus-heading,#journeyBusPanel .journey-bus-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;}
#journeyCoachPanel h2{color:#154653;font-size:23px;}
#journeyCoachPanel .journey-bus-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0;}
#journeyCoachPanel .journey-bus-links a{display:flex;align-items:center;justify-content:center;min-height:55px;padding:10px 6px;text-align:center;background:white;border:2px solid #92c1cc;border-radius:11px;color:#164d60;text-decoration:none;font-weight:800;font-size:16px;}
#journeyBusPanel .journey-bus-region{border:1px solid #b8d6da;background:#fff;border-radius:12px;margin:10px 0;padding:10px;}
#journeyBusPanel .journey-bus-region>summary{color:#164d60;font-size:18px;font-weight:800;padding:7px;cursor:pointer;}
#journeyBusPanel .journey-bus-region .journey-bus-links{margin:12px 0 2px;}
body[data-journey-screen="coach"] #modeExplainer,body[data-journey-screen="coach"] #tflReferenceTools,body[data-journey-screen="coach"] .planner-card,body[data-journey-screen="coach"] #journeyBusPanel,body[data-journey-screen="coach"] #ferryPlanner,body[data-journey-screen="coach"] #weatherPanel{display:none!important;}
body:not([data-journey-screen="coach"]) #journeyCoachPanel{display:none!important;}
@media(max-width:370px){#journeyCoachPanel .journey-bus-links{grid-template-columns:1fr;}}

/* 2M.55 bus rolling road local main-stops guide */
#journeyBusPanel .journey-local-guide{padding:12px 5px 5px;}
#journeyBusPanel .journey-local-guide h3{color:#164d60;font-size:21px;margin:8px 0;}
#journeyBusPanel .journey-bus-choices{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0;}
#journeyBusPanel .journey-bus-choices label{font-size:15px;font-weight:750;color:#164d60;}
#journeyBusPanel .journey-bus-choices select{width:100%;padding:11px 5px;border:1.5px solid #92c1cc;border-radius:10px;background:white;color:#153e52;font-size:16px;}
#journeyBusPanel .journey-bus-start,#journeyBusPanel .journey-bus-rolling-actions button{border:0;border-radius:10px;background:#156779;color:#fff;font-weight:800;padding:12px;font-size:16px;}
#journeyBusPanel .journey-bus-rolling-stops{padding:0;list-style:none;}
#journeyBusPanel .journey-bus-rolling-stops li{border-left:4px solid #96c9d0;padding:10px 12px;margin:0 0 6px 5px;background:white;border-radius:5px;font-weight:650;font-size:16px;color:#164d60;}
#journeyBusPanel .journey-bus-rolling-stops li.is-next{border-left-color:#dc8129;background:#fff2db;}
#journeyBusPanel .journey-bus-rolling-stops li.is-past{opacity:.4;text-decoration:line-through;}
#journeyBusPanel .journey-bus-rolling-title{display:block;font-size:19px;margin-top:14px;color:#164d60;}
#journeyBusPanel .journey-bus-rolling-actions{display:flex;gap:10px;margin-top:10px;}
#journeyBusPanel .journey-bus-rolling-actions button{flex:1;}
#journeyBusPanel .journey-bus-rolling-actions button:disabled{opacity:.45;}
@media(max-width:350px){#journeyBusPanel .journey-bus-choices{grid-template-columns:1fr;}}

/* Stage 2M.56 — GPS nearby bus stops with map. */
#journeyBusPanel .journey-bus-nearby{padding:12px 4px;margin:10px 0 20px;border-bottom:1px solid #a5ced3;}
#journeyBusPanel .journey-bus-nearby h3{font-size:21px;color:#164d60;margin:8px 0;}
#journeyBusPanel #journeyFindBusStops{width:100%;min-height:54px;}
#journeyBusPanel #journeyFindBusStops:disabled{opacity:.6;}
#journeyBusPanel #journeyBusMap{height:360px;width:100%;border:1.5px solid #9dc6cc;border-radius:12px;margin:12px 0;z-index:0;}
#journeyBusPanel #journeyBusMap[hidden]{display:none!important;}
#journeyBusPanel .journey-bus-stop-list{padding:0;list-style:none;}
#journeyBusPanel .journey-bus-stop-list li{display:flex;flex-direction:column;gap:5px;background:#fff;border:1px solid #c5dfe1;border-left:4px solid #196879;border-radius:9px;padding:11px;margin:8px 0;}
#journeyBusPanel .journey-bus-stop-list strong{font-size:16px;color:#164d60;}
#journeyBusPanel .journey-bus-stop-list span{font-size:14px;}
#journeyBusPanel .journey-bus-stop-list a{font-weight:800;color:#1b5089;}

/* Stage 2M.59 stable map alternatives; no live Overpass dependency. */
#journeyBusPanel .journey-bus-map-links{display:grid;gap:9px;margin:12px 0;}
#journeyBusPanel .journey-bus-map-action{display:flex;align-items:center;justify-content:center;min-height:53px;background:#176a7b;border-radius:11px;color:white;text-decoration:none;font-size:16px;font-weight:800;text-align:center;padding:10px;}
#journeyBusPanel .journey-bus-map-action.secondary{background:#fff;color:#164d60;border:2px solid #92c1cc;}

/* Stage 2M.60 internal GPS bus map */
#journeyBusPanel #journeyOpenBusMap{border:0;width:100%;cursor:pointer;}
#journeyBusPanel #journeyEmbeddedBusMapPanel[hidden]{display:none!important;}
#journeyBusPanel .journey-embedded-bus-map{border:1.5px solid #8abac3;border-radius:13px;padding:10px;background:#fff;}
#journeyBusPanel .journey-bus-map-top{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:10px;color:#164d60;}
#journeyBusPanel #journeyCloseBusMap{background:#e6f2f5;border:1px solid #a2cbd2;border-radius:9px;padding:9px 12px;color:#164d60;font-weight:800;}
#journeyBusPanel #journeyEmbeddedBusMap{height:340px;border-radius:10px;overflow:hidden;margin:10px 0;}
#journeyBusPanel #journeyEmbeddedBusMap[hidden]{display:none!important;}

/* Stage 2M.61 optional British-style bus stop pin layer */
#journeyBusPanel #journeyLoadStopPins{width:100%;min-height:48px;margin:8px 0;}
#journeyBusPanel .journey-bus-custom-icon span{display:flex;align-items:center;justify-content:center;background:#c91e30;color:#fff;border:3px solid #fff;border-radius:100%;box-shadow:0 1px 5px #555;width:30px;height:30px;font-size:17px;}

/* Stage 2M.63 verified offline bus-stop pilot, no network query. */
#journeyBusPanel .journey-offline-stop-marker span{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#d11f32;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 5px #555;font-size:16px;}

/* Journey 2M.64 Verified bus service links; no data scraping or unsafe embeds */
#journeyBusPanel .journey-bus-provider-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0;}
#journeyBusPanel .journey-bus-provider-links strong{grid-column:1/-1;font-size:18px;color:#164d60;}
#journeyBusPanel .journey-bus-provider-links a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:54px;padding:9px 7px;background:#f2f9fa;color:#164d60;border:1.5px solid #90bec9;border-radius:10px;text-decoration:none;font-size:15px;font-weight:800;}
@media(max-width:360px){#journeyBusPanel .journey-bus-provider-links{grid-template-columns:1fr;}}

/* Stage 2M.65 Bus hub — working features are not hidden. */
#journeyBusPanel .journey-bus-hub{margin:15px 0;border:1.5px solid #b2d1d6;border-radius:13px;background:#f5fafb;padding:11px;}
#journeyBusPanel .journey-bus-hub-tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
#journeyBusPanel .journey-bus-hub-tabs button{min-height:56px;border:1.5px solid #94c0c8;border-radius:11px;background:#fff;color:#164d60;font-weight:800;font-size:15px;padding:8px 5px;}
#journeyBusPanel .journey-bus-hub-tabs button.is-active{background:#176a7b;color:#fff;}
#journeyBusPanel .journey-bus-hub-detail[hidden]{display:none!important;}
#journeyBusPanel .journey-bus-hub-detail{margin-top:13px;padding:13px 4px;}
#journeyBusPanel .journey-bus-hub-detail h3{font-size:20px;color:#164d60;}
#journeyBusPanel #journeyBusPlace{width:100%;font-size:17px;padding:12px;border:1.5px solid #94c0c8;border-radius:9px;}
#journeyBusPanel #journeyBusSearchGo{margin-top:10px;width:100%;min-height:51px;background:#176a7b;color:white;font-weight:800;border:0;border-radius:10px;font-size:16px;}

/* 2M.67 Train-style Bus planner; old regional routes preserved under dropdown */
#journeyBusPanel .journey-bus-mainplanner{padding:12px 4px 20px;}
#journeyBusPanel .journey-bus-mainplanner h3{font-size:26px;color:#164d60;margin:4px 0 17px;}
#journeyBusPanel .journey-bus-labelrow{display:flex;justify-content:space-between;align-items:center;margin:14px 0 7px;gap:10px;}
#journeyBusPanel .journey-bus-labelrow label,#journeyBusPanel .journey-bus-datetime label,#journeyBusPanel .journey-bus-buffer label{font-size:18px;font-weight:800;color:#183f52;}
#journeyBusPanel .journey-bus-labelrow button{border:1.5px solid #b9cbdc;border-radius:12px;background:#f2f5fb;padding:10px 12px;color:#194685;font-size:15px;font-weight:800;}
#journeyBusPanel .journey-bus-mainplanner input,#journeyBusPanel .journey-bus-buffer select{box-sizing:border-box;width:100%;font-size:17px;min-height:52px;padding:10px 12px;border:2px solid #c4ccdf;border-radius:12px;background:white;color:#183f52;}
#journeyBusPanel .journey-bus-period{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0;}
#journeyBusPanel .journey-bus-period button{min-height:52px;border:2px solid #90b7c7;border-radius:12px;background:white;color:#166174;font-size:17px;font-weight:800;}
#journeyBusPanel .journey-bus-period button.is-active{background:#176a7b;color:white;border-color:#176a7b;}
#journeyBusPanel .journey-bus-datetime{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
#journeyBusPanel .journey-bus-datetime label{display:block;margin-bottom:8px;}
#journeyBusPanel .journey-bus-buffer{margin:15px 0;}
#journeyBusPanel .journey-bus-buffer[hidden]{display:none!important;}
#journeyBusPanel #journeyBusPlanGo{width:100%;border:0;border-radius:12px;background:#176a7b;color:#fff;padding:16px 10px;font-size:18px;font-weight:850;margin-top:18px;}
#journeyBusPanel #journeyBusPlanResult:not(:empty){background:#f2f9fa;border:1px solid #a2ccd1;border-radius:12px;padding:13px;margin:14px 0;}
#journeyBusPanel #journeyBusPlanResult p{margin:10px 0;font-size:16px;}
#journeyBusPanel .journey-bus-provider-action,#journeyBusPanel .journey-bus-copy{display:block;text-align:center;width:100%;box-sizing:border-box;background:#176a7b;color:white;border:0;border-radius:9px;padding:12px;margin-top:10px;font-weight:800;text-decoration:none;font-size:15px;}
#journeyBusPanel .journey-bus-copy{background:#f0f5f6;color:#164d60;border:1px solid #aacbd0;}
#journeyBusPanel .journey-bus-allareas{border:1px solid #a8cbd0;border-radius:12px;padding:12px;margin-top:8px;}
#journeyBusPanel .journey-bus-allareas>summary{color:#164d60;font-size:17px;font-weight:800;}

/* Stage 2M.68 — prevent iOS Date/Time input overflow and overlap. */
#journeyBusPanel .journey-bus-datetime{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;width:100%;max-width:100%;box-sizing:border-box;}
#journeyBusPanel .journey-bus-datetime>div{min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden;}
#journeyBusPanel .journey-bus-datetime input[type="date"],#journeyBusPanel .journey-bus-datetime input[type="time"]{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden;-webkit-appearance:none;appearance:none;font-size:16px;padding:10px 6px;}
@media(max-width:390px){#journeyBusPanel .journey-bus-datetime{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;}}

/* Stage 2M.70 verified early morning E1/E2 timetable cards */
#journeyBusPanel #journeyBusScheduled:not(:empty){border:1.5px solid #a1c5c9;border-radius:12px;padding:13px 10px;margin:15px 0;background:#f6fafb;}
#journeyBusPanel #journeyBusScheduled h3{font-size:20px;margin:5px 0 10px;color:#164d60;}
#journeyBusPanel .journey-bus-scheduled-card{background:#fff;border:1px solid #bdd7dc;border-left:4px solid #176a7b;border-radius:9px;padding:12px 9px;margin:9px 0;}
#journeyBusPanel .journey-bus-scheduled-card strong{font-size:16px;color:#164d60;}
#journeyBusPanel .journey-bus-scheduled-card p{font-size:15px;margin:5px 0;}

/* Stage 2M.71: compact, clear bus result summaries. */
#journeyBusPanel .journey-bus-extra-links{margin-top:12px;border:1.5px solid #9fc6cb;border-radius:10px;padding:10px;background:#fff;}
#journeyBusPanel .journey-bus-extra-links>summary{font-weight:800;font-size:17px;color:#176a7b;padding:6px 0;cursor:pointer;}
#journeyBusPanel .journey-bus-extra-links .journey-bus-provider-action{font-size:15px;padding:10px;}

/* Stage 2M.73: optional Bus-only nearby stop choices. */
#journeyBusPanel #journeyBusStopChoices[hidden]{display:none!important;}
#journeyBusPanel #journeyBusStopChoices{display:grid;gap:8px;padding:10px;margin:10px 0 2px;border:1px solid #a4c6cf;border-radius:12px;background:#f2f9fa;}
#journeyBusPanel .journey-bus-stop-option{border:1.5px solid #a5c6cb;border-radius:10px;background:#fff;color:#164d60;text-align:left;min-height:50px;padding:10px;font-size:15px;font-weight:700;}

/* Stage 2M.74 full official E1/E2 schedules; safe day-specific links. */
#journeyBusPanel .journey-bus-complete-timetables{margin:14px 0;border:1.5px solid #9dc7ce;background:#f6fafb;border-radius:12px;padding:13px;}
#journeyBusPanel .journey-bus-complete-timetables>summary{font-size:19px;font-weight:850;color:#175767;padding:5px;}
#journeyBusPanel .journey-bus-complete-timetables p{font-size:15px;}
#journeyBusPanel .journey-bus-full-days{display:grid;gap:9px;margin:12px 0;}
#journeyBusPanel .journey-bus-timetable-day{min-height:50px;display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;border-radius:10px;background:#176a7b;color:#fff;font-size:16px;font-weight:800;padding:9px;}

/* Stage 2M.77 compact published stop picker */
#journeyBusPanel .journey-bus-pick{margin:8px 0 14px;background:#f5fafb;border:1px solid #afc9ce;border-radius:10px;padding:9px;}
#journeyBusPanel .journey-bus-pick>summary{font-size:15px;font-weight:750;color:#176a7b;cursor:pointer;}
#journeyBusPanel .journey-bus-pick-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:7px;padding-top:11px;}
#journeyBusPanel .journey-bus-pick-buttons button{font-size:14px;min-height:42px;padding:8px;}

/* Journey 2M.78 stop route sections */
#journeyBusPanel .journey-stop-section-heading{grid-column:1/-1;font-weight:800;font-size:15px;color:#165d70;background:#e3f1f3;border-radius:8px;padding:9px 10px;margin-top:6px;}

/* Journey 2M.80 bus departure board */
#journeyBusPanel .journey-bus-departure-board{margin:12px 0 18px;border:1.5px solid #b4c9cd;border-radius:13px;background:#f6faf9;padding:12px;}
#journeyBusPanel .journey-bus-board-title{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
#journeyBusPanel .journey-bus-board-title h3{margin:4px 0;font-size:21px;color:#185b6d;}
#journeyBusPanel .journey-bus-scheduled-tag{font-size:12px;font-weight:800;background:#e2ebec;border-radius:99px;padding:5px 9px;color:#375b62;}
#journeyBusPanel .journey-bus-board-controls{display:grid;gap:7px;padding:10px 0;}
#journeyBusPanel .journey-bus-board-controls label{font-weight:700;font-size:14px;}
#journeyBusPanel #journeyBusBoardStop{min-width:0;width:100%;font-size:16px;padding:12px 8px;box-sizing:border-box;}
#journeyBusPanel #journeyBusBoardFavourite{font-size:14px;min-height:40px;}
#journeyBusPanel .journey-bus-board-row{display:grid;grid-template-columns:44px minmax(0,1fr) 56px;align-items:center;gap:8px;border-top:1px solid #ccdddf;padding:12px 2px;}
#journeyBusPanel .journey-bus-board-service{background:#176a7b;color:white;border-radius:8px;padding:8px 0;text-align:center;}
#journeyBusPanel .journey-bus-board-row small{display:block;font-size:12px;color:#586a6c;margin-top:3px;}
#journeyBusPanel .journey-bus-board-time{text-align:right;font-size:18px;}

/* Journey 2M.81 bus rolling road */
#journeyBusPanel #journeyBusRollingRoad[hidden]{display:none!important;}
#journeyBusPanel .journey-bus-rolling-road{padding:14px;margin:12px 0;border:2px solid #be936c;border-radius:14px;background:#fffaf3;}
#journeyBusPanel .journey-bus-rolling-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
#journeyBusPanel .journey-bus-rolling-head h3{font-size:20px;margin:5px 0;color:#763c27;}
#journeyBusPanel #journeyBusRollingClose{min-width:42px;min-height:40px;}
#journeyBusPanel #journeyBusRollingStops{list-style:none;margin:12px 0;padding:0;}
#journeyBusPanel .journey-bus-road-stop{display:grid;grid-template-columns:26px minmax(0,1fr) 48px;gap:10px;align-items:center;min-height:54px;padding:8px;border-left:3px solid #b8c4c4;border-bottom:1px solid #e3e0d9;font-size:16px;}
#journeyBusPanel .journey-bus-road-stop.is-current{background:#f7e4ca;border-left-color:#ad5a2c;border-radius:5px;font-weight:800;}
#journeyBusPanel .journey-bus-road-stop.is-passed{opacity:.36;}
#journeyBusPanel .journey-bus-road-stop strong{text-align:right;}
#journeyBusPanel .journey-bus-road-marker{color:#ad5a2c;text-align:center;}
#journeyBusPanel .journey-bus-rolling-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;}
#journeyBusPanel .journey-bus-rolling-actions button{min-width:0;min-height:46px;font-size:15px;}
#journeyBusPanel .journey-bus-board-row{grid-template-columns:44px minmax(0,1fr) 56px;position:relative;padding-bottom:52px;}
#journeyBusPanel .journey-bus-board-open{position:absolute;bottom:6px;right:0;min-height:37px;font-size:14px;padding:6px 12px;}

/* Journey Stage 2M.83 First Bus-inspired independent design, BUS ONLY */
#journeyBusPanel{--bus-purple:#27005b;--bus-purple-2:#430784;--bus-pink:#f000b6;--bus-lilac:#f4effd;--bus-text:#240f45;background:#faf9fe;color:var(--bus-text);border-color:#dcd5ed;overflow:visible;}
#journeyBusPanel .journey-bus-heading{display:flex;align-items:center;justify-content:flex-end;padding:6px 8px;background:#27005b;color:#fff;border-radius:15px 15px 0 0;}
#journeyBusPanel .journey-bus-heading h2{display:none;}
#journeyBusPanel #journeyBusClose{background:#fff!important;border:0!important;color:#27005b!important;border-radius:50px!important;font-size:13px!important;min-height:39px!important;padding:6px 12px!important;}
#journeyBusPanel .journey-bus-new-head{background:linear-gradient(132deg,#27005b 0%,#430784 72%,#6600af 100%);color:#fff;padding:8px 20px 22px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
#journeyBusPanel .journey-bus-new-head h2{color:#fff;font-size:32px;font-weight:850;margin:4px 0;letter-spacing:-1px;}
#journeyBusPanel .journey-bus-new-head p{color:#e7dafa;font-size:15px;margin:3px 0;}
#journeyBusPanel .journey-bus-new-eyebrow{font-size:11px;color:#facafa;font-weight:800;letter-spacing:.11em;}
#journeyBusPanel .journey-bus-new-bubble{width:55px;height:55px;border-radius:17px;background:#f000b6;display:grid;place-items:center;font-size:28px;transform:rotate(-8deg);flex-shrink:0;}
#journeyBusPanel .journey-bus-tabs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;background:#fff;padding:12px 9px 10px;border-bottom:1px solid #ded7eb;position:sticky;top:0;z-index:5;}
#journeyBusPanel .journey-bus-tabs button{min-width:0;min-height:47px;padding:5px 3px;font-size:13px;font-weight:800;border:0;border-radius:12px;background:#f3effb;color:#4d327b;}
#journeyBusPanel .journey-bus-tabs button.is-active{background:#27005b;color:#fff;box-shadow:inset 0 -4px #f000b6;}
#journeyBusPanel .journey-bus-summary-note{background:#f6eafa;color:#55307d;border-radius:0 0 11px 11px;text-align:center;padding:9px 7px;font-size:13px;font-weight:700;}
#journeyBusPanel [data-journey-bus-pane]{margin:12px 7px 18px!important;border-radius:16px!important;background:white!important;border:1px solid #e3dceb!important;box-shadow:0 4px 16px #27005b0b;}
#journeyBusPanel [data-journey-bus-pane][hidden]{display:none!important;}
#journeyBusPanel [data-journey-bus-pane] h3{color:#27005b!important;}
#journeyBusPanel .journey-bus-board-title{padding:5px 0 10px;}
#journeyBusPanel .journey-bus-scheduled-tag{background:#f3edf9;color:#56378a;}
#journeyBusPanel .journey-bus-board-controls{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;}
#journeyBusPanel .journey-bus-board-controls label{grid-column:1/-1;}
#journeyBusPanel #journeyBusBoardStop{grid-column:1/-1;border:1.5px solid #ccbce5;border-radius:10px;background:#fff;color:#27005b;min-height:48px;}
#journeyBusPanel .journey-bus-locate,#journeyBusPanel #journeyBusBoardFavourite{background:#f4effb!important;color:#27005b!important;border:1px solid #d6c4ef!important;border-radius:10px;font-size:14px;padding:10px;min-height:44px;}
#journeyBusPanel .journey-bus-board-row{background:#fff;border-bottom:1px solid #e5dfef;border-top:0;padding-top:14px;}
#journeyBusPanel .journey-bus-board-service{background:#27005b!important;color:#fff!important;border-radius:8px;}
#journeyBusPanel .journey-bus-board-open,#journeyBusPanel #journeyBusPlanGo,#journeyBusPanel #journeyBusRollingNext{background:#27005b!important;color:#fff!important;border-radius:11px;border:0;}
#journeyBusPanel .journey-bus-board-open{border-bottom:3px solid #f000b6;}
#journeyBusPanel .journey-bus-mainplanner input,#journeyBusPanel .journey-bus-mainplanner select{border:1.5px solid #d2c4e5!important;background:#fff!important;color:#28164c!important;border-radius:11px;}
#journeyBusPanel #journeyBusDepart.is-active,#journeyBusPanel #journeyBusArrive.is-active{background:#27005b!important;color:#fff!important;}
#journeyBusPanel .journey-bus-pick{background:#f8f5ff;border-color:#dfd2f2;}
#journeyBusPanel .journey-bus-pick summary{color:#472279;}
#journeyBusPanel .journey-bus-stop-option{border-color:#d7c8ef;color:#392169;}
#journeyBusPanel .journey-bus-rolling-road{background:#fff!important;border-color:#e1d5f1!important;}
#journeyBusPanel .journey-bus-rolling-head h3{color:#27005b!important;}
#journeyBusPanel .journey-bus-road-stop.is-current{background:#f7eafa;border-left-color:#ef00aa;}
#journeyBusPanel .journey-bus-road-marker{color:#b00092;}
#journeyBusPanel .journey-bus-allareas{margin:10px 9px;border:1px solid #e2d8ee;background:#fff;border-radius:13px;padding:12px;}
#journeyBusPanel .journey-bus-allareas>summary{font-size:15px;font-weight:750;color:#42217a;cursor:pointer;}
#journeyBusPanel .journey-bus-allareas>.journey-bus-region:nth-of-type(n+3){display:none;}
#journeyBusPanel .journey-bus-complete-timetables{background:#f7f3fc;border-color:#d9cbec;}
#journeyBusPanel .journey-bus-timetable-day{background:#310071;color:#fff;}
@media(max-width:400px){#journeyBusPanel .journey-bus-tabs button{font-size:12px;}#journeyBusPanel .journey-bus-new-head h2{font-size:29px;}#journeyBusPanel .journey-bus-board-controls{grid-template-columns:1fr 1fr;}}

/* Stage 2M.84 — DRIVE-inspired ONE horizontal scrolling Bus rolling-road line. */
#journeyBusPanel #journeyBusRollingStops{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;list-style:none!important;overflow-x:auto!important;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:30vw;-webkit-overflow-scrolling:touch;gap:0;padding:20px 16px 22px!important;margin:12px 0!important;width:100%;min-height:182px;align-items:stretch;}
#journeyBusPanel .journey-bus-road-stop{flex:0 0 164px!important;min-width:164px!important;max-width:164px;display:flex!important;flex-direction:column;align-items:center;text-align:center;gap:6px!important;border:0!important;border-top:5px solid #a997c6!important;border-radius:0!important;background:transparent!important;padding:0 8px 8px!important;margin:24px 0 0!important;scroll-snap-align:center;opacity:1;transition:opacity .15s;position:relative;}
#journeyBusPanel .journey-bus-road-stop.is-passed{opacity:.3!important;}
#journeyBusPanel .journey-bus-road-stop.is-current{background:#f7ecfb!important;color:#27005b!important;border-top-color:#ed00b6!important;border-radius:0 0 12px 12px!important;opacity:1!important;}
#journeyBusPanel .journey-bus-road-marker{font-size:24px!important;position:relative;margin-top:-23px;background:#fff;border:2px solid #a997c6;border-radius:50%;width:32px;height:32px;line-height:27px;color:#300057!important;text-align:center;z-index:1;}
#journeyBusPanel .journey-bus-road-stop.is-current .journey-bus-road-marker{background:#ed00b6;color:#fff!important;border-color:#ed00b6;}
#journeyBusPanel .journey-bus-road-name{display:block;font-size:14px;line-height:1.25;min-height:46px;overflow-wrap:anywhere;}
#journeyBusPanel .journey-bus-road-stop strong{font-size:18px;color:#27005b;}
#journeyBusPanel .journey-bus-road-time-type{font-size:11px;color:#5e5370;}
#journeyBusPanel .journey-bus-rolling-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;}
#journeyBusPanel .journey-bus-rolling-actions button{min-height:46px;font-weight:700;border-radius:10px;}
#journeyBusPanel #journeyBusRollingPrevious,#journeyBusPanel #journeyBusRollingReset,#journeyBusPanel #journeyBusRollingCloseBottom{background:#f2eaf9!important;color:#2e075f!important;border:1px solid #cfc0e3!important;}

/* Journey 2M.87 device clock approximation toggle */
#journeyBusPanel .journey-bus-clock-toggle{width:100%;margin:8px 0 10px;min-height:46px;border-radius:11px;background:#f4e7f9!important;color:#330075!important;border:1.5px solid #b998dc!important;font-size:15px;font-weight:800;}

/* Journey 2M.88: moving timetable bus, same horizontal DRIVE-style design */
#journeyBusPanel #journeyBusRollingStops{position:relative!important;padding-top:45px!important;min-height:210px!important;}
#journeyBusPanel .journey-bus-sim-vehicle{position:absolute;top:5px;left:0;transform:translateX(-50%);font-size:25px;background:#310071;border:2px solid #ee00b5;border-radius:9px;width:43px;height:37px;display:flex;align-items:center;justify-content:center;z-index:3;transition:left 10s linear;pointer-events:none;filter:drop-shadow(0 2px 3px #31007155);}
#journeyBusPanel .journey-bus-sim-vehicle[hidden]{display:none!important;}
#journeyBusPanel .journey-bus-sim-status{text-align:center;padding:9px;margin:2px 0 10px;background:#f6eafb;color:#4b2376;font-size:13px;font-weight:750;border-radius:9px;}
@media(prefers-reduced-motion:reduce){#journeyBusPanel .journey-bus-sim-vehicle{transition:none!important;}}

#journeyBusPanel > :not(.journey-bus-heading){display:none!important}
#journeyBusPanel{background:#27005b!important;color:white!important;min-height:150px!important}
#journeyBusPanel:after{content:"🚌";display:block;text-align:center;font-size:50px;padding:25px}

#journeyBusPanel:after{content:""!important;display:block!important;width:88px;height:88px;margin:22px auto;background:url("first-bus.png") center/contain no-repeat!important}
#journeyBusPanel .journey-bus-heading{background:transparent!important}
#journeyBusPanel .journey-bus-heading h2{display:none!important}

/* Journey 2M.91: restore original purple/magenta Bus header ONLY, reset content stays hidden. */
#journeyBusPanel{background:#faf9fe!important;min-height:0!important;padding:0!important;border-color:#dfd2ef!important;overflow:hidden!important;}
#journeyBusPanel>.journey-bus-new-head{display:flex!important;background:linear-gradient(132deg,#27005b 0%,#430784 72%,#6600af 100%)!important;color:#fff!important;align-items:center!important;justify-content:space-between!important;padding:14px 20px 24px!important;gap:10px!important;}
#journeyBusPanel>.journey-bus-new-head h2{color:#fff!important;display:block!important;}
#journeyBusPanel>.journey-bus-new-head p{color:#e7dafa!important;}
#journeyBusPanel>.journey-bus-new-head .journey-bus-new-bubble{display:grid!important;background:#f000b6!important;}
#journeyBusPanel>.journey-bus-heading{display:flex!important;background:#27005b!important;padding:7px 12px!important;justify-content:flex-end!important;}
#journeyBusPanel>.journey-bus-heading #journeyBusClose{display:inline-flex!important;}
#journeyBusPanel::after{display:none!important;content:none!important;}
#journeyBusPanel>[data-journey-bus-pane],#journeyBusPanel>.journey-bus-tabs,#journeyBusPanel>.journey-bus-summary-note,#journeyBusPanel>.journey-bus-allareas{display:none!important;}

/* Journey 2M.92: reuse header bus badge on deep purple Bus tab icon */
#journeyBusShortcut .journey-bus-pink-icon{background:#27005b!important;border-radius:14px!important;width:53px!important;height:53px!important;min-width:53px!important;display:grid!important;place-items:center!important;overflow:visible!important;border:2px solid #50029c!important;}
#journeyBusShortcut .journey-bus-pink-badge{display:grid;place-items:center;background:#f000b6;border-radius:11px;width:39px;height:39px;font-size:27px;line-height:1;transform:rotate(-7deg);box-shadow:0 2px 7px #17003b55;}

/* Journey 2M.93: light-purple Bus icon background only */
#journeyBusShortcut .journey-bus-pink-icon{background:#c9a7ec!important;border-color:#b18cda!important;}

/* Journey 2M.94: light purple fills the ENTIRE Bus menu tile, not just the icon badge */
#journeyBusShortcut{background:#c9a7ec!important;background-image:none!important;border-color:#ae85d9!important;}
#journeyBusShortcut .journey-bus-pink-icon{background:transparent!important;border-color:transparent!important;box-shadow:none!important;}
#journeyBusShortcut .journey-bus-pink-badge{background:#f000b6!important;}
#journeyBusShortcut .tab-label,#journeyBusShortcut .tab-title{color:#26004e!important;}

/* Journey 2M.95: user supplied pink emblem on full deep purple Bus tile */
#journeyBusShortcut{background:#240065 url("https://static.wixstatic.com/media/eb7889_eb48f915c9954101bc5efa502cc01680~mv2.png") center center/cover no-repeat!important;border-color:#240065!important;}
#journeyBusShortcut .journey-bus-pink-icon{visibility:hidden!important;}
#journeyBusShortcut .tab-label,#journeyBusShortcut .tab-title{color:#fff!important;text-shadow:0 1px 4px #240065!important;}

/* Journey 2M.96: keep deep-purple Bus tile; pink emblem same scale as other icons */
#journeyBusShortcut{background:#240065 url("https://static.wixstatic.com/media/eb7889_eb48f915c9954101bc5efa502cc01680~mv2.png") center 30% / 76px 76px no-repeat!important;border-color:#240065!important;}
#journeyBusShortcut>span:last-child{color:#fff!important;text-shadow:none!important;position:relative;z-index:1;}

/* Journey 2M.97: First Bus-inspired simple search; preserve existing planning engine */
#journeyBusPanel [data-journey-bus-pane="plan"] #journeyBusPlanForm{padding:12px;border-radius:16px;}
#journeyBusPanel #journeyBusFrom,#journeyBusPanel #journeyBusTo{font-size:18px!important;min-height:54px!important;border-radius:12px!important;}
#journeyBusPanel #journeyBusPlanGo{background:#310068!important;color:white!important;border-radius:13px!important;min-height:54px!important;}

/* Journey 2M.98: undo obsolete Bus visual-reset hiding; show search and retain panels */
#journeyBusPanel>.journey-bus-tabs{display:grid!important;}
#journeyBusPanel>.journey-bus-summary-note{display:block!important;}
#journeyBusPanel>[data-journey-bus-pane]:not([hidden]){display:block!important;}
#journeyBusPanel>.journey-bus-allareas{display:block!important;}
#journeyBusPanel>[data-journey-bus-pane][hidden]{display:none!important;}
#journeyBusShortcut,#journeyBusShortcut[aria-expanded="true"],#journeyBusShortcut.active,#journeyBusShortcut.is-active,#journeyBusShortcut[aria-pressed="true"]{background:#240065 url("https://static.wixstatic.com/media/eb7889_eb48f915c9954101bc5efa502cc01680~mv2.png") center 30% / 76px 76px no-repeat!important;border-color:#240065!important;color:#fff!important;}
#journeyBusShortcut>span:last-child{color:#fff!important;}

/* Journey 2M.99: clean Bus search surface; retain legacy logic invisibly */
#journeyBusPanel{background:#faf8ff!important;color:#2c1257!important;}
#journeyBusPanel>.journey-bus-summary-note,#journeyBusPanel>.journey-bus-allareas,#journeyBusPanel>.journey-bus-tabs{display:none!important;}
#journeyBusPanel>[data-journey-bus-pane="departures"],#journeyBusPanel>[data-journey-bus-pane="road"]{display:none!important;}
#journeyBusPanel>[data-journey-bus-pane="plan"]{display:block!important;background:#fff!important;border:0!important;box-shadow:none!important;margin:12px!important;padding:12px!important;color:#2c1257!important;}
#journeyBusPanel #journeyBusPlannerTitle{color:#30005c!important;font-size:23px!important;}
#journeyBusPanel #journeyBusPlanForm{background:#fff!important;color:#2c1257!important;border:0!important;box-shadow:none!important;}
#journeyBusPanel #journeyBusPlanForm label{color:#30005c!important;}
#journeyBusPanel #journeyBusPlanForm input{background:#fff!important;color:#28164c!important;}
#journeyBusPanel #journeyBusPlanForm button:not(#journeyBusPlanGo){color:#30005c!important;}
#journeyBusPanel #journeyBusPlanResult{color:#28164c!important;}
#journeyBusPanel #journeyBusScheduled,#journeyBusPanel .journey-bus-complete-timetables,#journeyBusPanel .journey-bus-pick,#journeyBusPanel #journeyBusStopChoices,#journeyBusPanel [data-journey-bus-pane="plan"]>.hint{display:none!important;}
#journeyBusPanel #journeyBusPlanGo{background:#310068!important;color:#fff!important;}

/* Journey 2M.100: restore all original E1/E2 stop pickers to From and To search */
#journeyBusPanel #journeyBusFromPick,#journeyBusPanel #journeyBusToPick{display:block!important;background:#f8f4ff!important;border:1px solid #d7c5eb!important;border-radius:12px!important;margin:10px 0!important;padding:10px!important;color:#310068!important;}
#journeyBusPanel #journeyBusFromPick>summary,#journeyBusPanel #journeyBusToPick>summary{color:#310068!important;font-weight:750!important;cursor:pointer!important;}
#journeyBusPanel #journeyBusFromOptions,#journeyBusPanel #journeyBusToOptions{display:flex!important;flex-direction:column!important;gap:5px!important;max-height:310px!important;overflow-y:auto!important;padding:10px 2px!important;}
#journeyBusPanel .journey-bus-stop-option{display:block!important;background:white!important;color:#310068!important;border:1px solid #dfd1f0!important;border-radius:9px!important;padding:10px!important;text-align:left!important;min-height:42px!important;}
#journeyBusPanel .journey-stop-section-heading{color:#310068!important;font-weight:800!important;padding:9px 2px 4px!important;}

/* Journey 2M.101: legible search and stop suggestions */
#journeyBusPanel #journeyBusDepart.is-active,#journeyBusPanel #journeyBusArrive.is-active{background:#310068!important;color:#fff!important;-webkit-text-fill-color:#fff!important;}
#journeyBusPanel #journeyBusPlanForm #journeyBusDepart.is-active,#journeyBusPanel #journeyBusPlanForm #journeyBusArrive.is-active{color:#fff!important;}
#journeyBusPanel #journeyBusPlanResult,#journeyBusPanel #journeyBusScheduled{display:none!important;}
#journeyBusPanel .journey-bus-autocomplete[hidden]{display:none!important;}
#journeyBusPanel .journey-bus-autocomplete{display:flex!important;flex-direction:column!important;max-height:250px!important;overflow-y:auto!important;background:#fff!important;border:2px solid #d7c5eb!important;border-radius:12px!important;padding:4px!important;margin:3px 0 10px!important;box-shadow:0 6px 18px #31006820!important;}
#journeyBusPanel .journey-bus-autocomplete-option{display:block!important;width:100%!important;text-align:left!important;background:#fff!important;color:#310068!important;border:0!important;border-bottom:1px solid #eee4f5!important;border-radius:6px!important;padding:11px!important;font-size:15px!important;}

/* Journey 2M.102 clean bus rebuild: only the simple Train-style planner */
#journeyBusPanel{background:#fff!important;color:#2f185c!important;min-height:0!important;padding:0!important;overflow:visible!important;}
#journeyBusPanel>.bus-simple-app{display:block!important;background:#fff!important;padding:15px 16px 24px!important;border-radius:18px!important;color:#2f185c!important;}
#journeyBusPanel .bus-simple-top{display:flex;justify-content:flex-end;margin-bottom:12px;}
#journeyBusPanel .bus-simple-top button{background:#f5f0fc!important;color:#310068!important;border:1px solid #d6c9e7!important;border-radius:12px;padding:9px 13px;}
#journeyBusPanel .bus-simple-head{display:flex;align-items:center;gap:13px;margin:5px 0 22px;}
#journeyBusPanel .bus-simple-head h2{font-size:23px!important;color:#302070!important;margin:0!important;}
#journeyBusPanel .bus-simple-emoji{font-size:36px;}
#journeyBusPanel .bus-simple-label{display:flex;justify-content:space-between;align-items:center;margin:15px 0 8px;gap:10px;}
#journeyBusPanel .bus-simple-label label{font-weight:800;color:#302070;font-size:17px;}
#journeyBusPanel .bus-simple-label button{background:#f3f4fa!important;color:#302070!important;border:1px solid #cbd0e0!important;border-radius:12px!important;padding:10px!important;}
#journeyBusPanel #busSimpleFrom,#journeyBusPanel #busSimpleTo{display:block;width:100%;box-sizing:border-box;min-height:53px;font-size:17px;border:2px solid #d0cce2!important;border-radius:12px!important;background:#fff!important;color:#302070!important;padding:10px 13px!important;}
#journeyBusPanel .bus-simple-timechoice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0;}
#journeyBusPanel .bus-simple-timechoice button{min-height:52px;border-radius:12px!important;border:2px solid #c6badd!important;background:#fff!important;color:#302070!important;font-weight:750!important;padding:6px!important;}
#journeyBusPanel .bus-simple-timechoice button.chosen{background:#362784!important;color:#fff!important;border-color:#362784!important;}
#journeyBusPanel .bus-simple-datetime[hidden],#journeyBusPanel .bus-simple-suggest[hidden]{display:none!important;}
#journeyBusPanel .bus-simple-datetime{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;}
#journeyBusPanel .bus-simple-datetime label{font-weight:750;}
#journeyBusPanel .bus-simple-datetime input{width:100%;box-sizing:border-box;margin-top:5px;min-height:45px;background:white!important;color:#302070!important;border:1px solid #c6badd!important;border-radius:10px;}
#journeyBusPanel #busSimpleGo{display:block;width:100%;min-height:55px;border-radius:13px!important;background:#362784!important;color:white!important;font-weight:800!important;font-size:17px!important;margin:14px 0!important;}
#journeyBusPanel .bus-simple-suggest{display:flex;flex-direction:column;max-height:250px;overflow:auto;border:1px solid #c6badd;background:#fff;border-radius:12px;margin:4px 0;}
#journeyBusPanel .bus-simple-suggest button{background:#fff!important;color:#302070!important;text-align:left!important;border:0!important;border-bottom:1px solid #eee!important;padding:11px!important;}
#journeyBusPanel #busSimpleResults{color:#302070!important;margin:12px 0;}
#journeyBusPanel #busSimpleResults h3{color:#302070!important;}
#journeyBusPanel .bus-simple-result{display:flex;justify-content:space-between;align-items:center;background:#f2eefa;color:#302070;padding:13px;margin:7px 0;border-radius:11px;}
#journeyBusPanel .bus-simple-note{font-size:13px;color:#625779;margin:15px 0;}
#journeyBusPanel .bus-simple-official{display:block;color:#302070;font-weight:700;}

/* Journey 2M.103: prevent Bus Date / Time inputs overlapping on narrow iPhone screens */
#journeyBusPanel .bus-simple-datetime{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:14px!important;row-gap:8px!important;width:100%!important;box-sizing:border-box!important;}
#journeyBusPanel .bus-simple-datetime>label{display:block!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;}
#journeyBusPanel .bus-simple-datetime input{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;padding:8px 4px!important;font-size:16px!important;}
#journeyBusPanel .bus-simple-datetime[hidden]{display:none!important;}

/* Journey 2M.104: original complete E1/E2 bus stop pickers under From and To */
#journeyBusPanel .bus-simple-picker{display:block!important;margin:9px 0 17px!important;padding:0!important;border:1px solid #d3c6e9!important;border-radius:12px!important;background:#f7f3fc!important;color:#302070!important;}
#journeyBusPanel .bus-simple-picker>summary{padding:13px 15px!important;font-size:15px!important;font-weight:800!important;cursor:pointer!important;color:#302070!important;}
#journeyBusPanel .bus-simple-picker-list{max-height:300px!important;overflow-y:auto!important;padding:5px 9px 11px!important;}
#journeyBusPanel .bus-simple-picker-heading{font-size:13px!important;font-weight:800!important;color:#594289!important;margin:12px 4px 5px!important;}
#journeyBusPanel .bus-simple-picker-stop{display:block!important;width:100%!important;box-sizing:border-box!important;text-align:left!important;background:#fff!important;color:#302070!important;border:1px solid #e3dbef!important;border-radius:9px!important;padding:10px!important;margin:4px 0!important;font-size:15px!important;}

/* Journey 2M.105: one simple route-direction choice, shared by From and To */
#journeyBusPanel .bus-simple-directions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:9px!important;margin:4px 0 17px!important;}
#journeyBusPanel .bus-simple-directions button{min-width:0!important;min-height:55px!important;padding:8px 5px!important;font-size:14px!important;line-height:1.25!important;font-weight:800!important;border:2px solid #c6badd!important;border-radius:12px!important;background:#fff!important;color:#302070!important;}
#journeyBusPanel .bus-simple-directions button.chosen{background:#362784!important;color:#fff!important;border-color:#362784!important;}

/* Journey 2M.106: simple E1 / E2 service choice beneath direction */
#journeyBusPanel .bus-simple-routes{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important;margin:-5px 0 15px!important;}
#journeyBusPanel .bus-simple-routes button{min-height:48px!important;border:2px solid #c6badd!important;border-radius:12px!important;background:#fff!important;color:#302070!important;font-weight:850!important;font-size:18px!important;}
#journeyBusPanel .bus-simple-routes button.chosen{background:#362784!important;color:#fff!important;border-color:#362784!important;}

/* JOURNEY BUS HEADER REFRESH 2026-11-02 */
#journeyBusPanel .bus-simple-app{position:relative!important;}
#journeyBusPanel .bus-simple-top{position:absolute!important;top:16px!important;right:16px!important;z-index:2!important;margin:0!important;}
#journeyBusPanel .bus-simple-top button{background:#fff!important;color:#302070!important;border:1px solid #c6badd!important;border-radius:999px!important;padding:8px 12px!important;font-size:13px!important;font-weight:750!important;box-shadow:0 1px 3px #30207012!important;}
#journeyBusPanel .bus-simple-head{display:flex!important;align-items:center!important;gap:12px!important;margin:0 0 19px!important;padding:19px 90px 19px 15px!important;border:1px solid #d6c9e7!important;border-radius:16px!important;background:#f7f3fc!important;min-height:88px!important;box-sizing:border-box!important;}
#journeyBusPanel .bus-simple-head h2{font-size:clamp(18px,4.5vw,23px)!important;line-height:1.2!important;letter-spacing:-.025em!important;font-weight:850!important;color:#302070!important;margin:0!important;}
#journeyBusPanel .bus-simple-emoji{font-size:30px!important;line-height:1!important;flex:none!important;}
@media(max-width:390px){#journeyBusPanel .bus-simple-head{padding-right:77px!important;gap:8px!important;}#journeyBusPanel .bus-simple-top{right:10px!important;}#journeyBusPanel .bus-simple-top button{font-size:12px!important;padding:7px 9px!important;}}

/* JOURNEY BUS HEADER FIRST EMBLEM 2026-11-02 */
#journeyBusPanel .bus-simple-head .bus-simple-emoji{display:block!important;width:65px!important;height:65px!important;min-width:65px!important;flex:none!important;font-size:0!important;color:transparent!important;background:transparent url("https://static.wixstatic.com/media/eb7889_eb48f915c9954101bc5efa502cc01680~mv2.png") center/contain no-repeat!important;}
#journeyBusPanel .bus-simple-head{padding-right:90px!important;}
@media(max-width:390px){#journeyBusPanel .bus-simple-head .bus-simple-emoji{width:54px!important;height:54px!important;min-width:54px!important;}}

/* JOURNEY BUS FIRST COLOUR HEADER 2026-11-02 */
#journeyBusPanel .bus-simple-head{background:#240065!important;border:2px solid #4d238f!important;box-shadow:0 3px 10px #24006520!important;}
#journeyBusPanel .bus-simple-head h2{color:#ffffff!important;text-shadow:none!important;}
#journeyBusPanel .bus-simple-top button{background:#ffffff!important;color:#240065!important;border:1px solid #f000b6!important;box-shadow:0 2px 6px #12002c30!important;}
#journeyBusPanel .bus-simple-head .bus-simple-emoji{background-color:transparent!important;}

/* JOURNEY BUS MOBILE UI POLISH 2026-11-02: visual only */
#journeyBusPanel .bus-simple-app{max-width:100%;box-sizing:border-box!important;}
#journeyBusPanel .bus-simple-head{margin-bottom:14px!important;}
#journeyBusPanel .bus-simple-directions,#journeyBusPanel .bus-simple-routes,#journeyBusPanel .bus-simple-timechoice{gap:8px!important;}
#journeyBusPanel .bus-simple-directions button,#journeyBusPanel .bus-simple-routes button,#journeyBusPanel .bus-simple-timechoice button{min-width:0!important;min-height:43px!important;line-height:1.2!important;border-radius:11px!important;}
#journeyBusPanel input[type=search]{box-sizing:border-box!important;width:100%!important;min-height:47px!important;border-radius:11px!important;font-size:16px!important;}
#journeyBusPanel .bus-simple-label{margin-top:12px!important;margin-bottom:5px!important;}
#journeyBusPanel .bus-simple-picker{margin:6px 0 12px!important;border-radius:11px!important;}
#journeyBusPanel .bus-simple-picker>summary{padding:11px 13px!important;}
#journeyBusPanel .bus-simple-picker-list{max-height:235px!important;overscroll-behavior:contain!important;}
#journeyBusPanel .bus-simple-picker-stop{min-height:42px!important;margin:3px 0!important;padding:9px 11px!important;}
#journeyBusPanel #busSimpleGo,#journeyBusPanel #journeyDirectRoadOpen{min-height:48px!important;border-radius:12px!important;letter-spacing:0!important;}
#journeyBusPanel #journeyDirectRoad{margin:12px 0!important;}
#journeyBusPanel #journeyDirectRoadView{box-sizing:border-box!important;max-width:100%!important;}
#journeyBusPanel .bus-simple-note{font-size:12px!important;line-height:1.45!important;color:#615875!important;margin:11px 0!important;}
#journeyBusPanel .bus-simple-official{display:inline-block!important;line-height:1.4!important;margin:3px 0 12px!important;}
@media(max-width:430px){#journeyBusPanel .bus-simple-app{padding-left:12px!important;padding-right:12px!important;}#journeyBusPanel .bus-simple-head{gap:9px!important;}#journeyBusPanel .bus-simple-head h2{font-size:19px!important;}#journeyBusPanel .bus-simple-directions button{font-size:12px!important;padding:9px 6px!important;}#journeyBusPanel .bus-simple-timechoice button{font-size:13px!important;padding:9px 8px!important;}#journeyBusPanel .bus-simple-routes button{font-size:15px!important;}}

/* JOURNEY BUS READABILITY + EQUAL ACTION TABS 2026-11-02 */
#journeyBusPanel .bus-simple-directions button{font-size:clamp(14px,3.8vw,17px)!important;font-weight:800!important;line-height:1.2!important;min-height:52px!important;}
#journeyBusPanel .bus-simple-routes button{font-size:20px!important;font-weight:850!important;min-height:52px!important;}
#journeyBusPanel .bus-simple-label label{font-size:19px!important;font-weight:850!important;}
#journeyBusPanel #busSimpleGps,#journeyBusPanel #busSimpleSwap{font-size:16px!important;font-weight:800!important;min-height:46px!important;}
#journeyBusPanel #busSimpleFrom,#journeyBusPanel #busSimpleTo{font-size:18px!important;min-height:54px!important;padding:12px 15px!important;}
#journeyBusPanel .bus-simple-picker>summary{font-size:17px!important;font-weight:850!important;min-height:46px!important;box-sizing:border-box!important;}
#journeyBusPanel .bus-simple-picker-stop{font-size:17px!important;min-height:46px!important;}
#journeyBusPanel .bus-simple-timechoice button{font-size:16px!important;font-weight:800!important;min-height:52px!important;}
#journeyBusPanel #journeyBusActionTabs{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:76px!important;align-items:stretch!important;gap:10px!important;margin:16px 0 12px!important;}
#journeyBusPanel #journeyBusActionTabs>.journey-bus-action-tab{height:76px!important;min-height:76px!important;max-height:76px!important;align-self:stretch!important;margin:0!important;padding:8px 6px!important;font-size:clamp(15px,4vw,18px)!important;font-weight:850!important;line-height:1.2!important;border-radius:12px!important;display:flex!important;justify-content:center!important;align-items:center!important;text-align:center!important;box-sizing:border-box!important;}
@media(max-width:370px){#journeyBusPanel #journeyBusActionTabs>.journey-bus-action-tab{font-size:15px!important;}#journeyBusPanel .bus-simple-directions button{font-size:13px!important;}}

/* JOURNEY BUS ACTION TAB BUFFER 2026-11-02 */
#journeyBusPanel #journeyBusActionTabs{margin-top:30px!important;}
@media(max-width:430px){#journeyBusPanel #journeyBusActionTabs{margin-top:28px!important;}}

/* Journey Underground tidy v1 2026-11-03 */
/* Scoped to the TfL screen only. All existing handlers and station pickers remain. */
body[data-journey-screen="transit"] .planner-card{max-width:720px;margin-inline:auto;padding:18px!important;}
body[data-journey-screen="transit"] .planner-card #plannerTitle{font-size:21px;margin:0 0 14px;}
body[data-journey-screen="transit"] .planner-card .field-heading{margin-top:9px;margin-bottom:5px;}
body[data-journey-screen="transit"] .planner-card #from,body[data-journey-screen="transit"] .planner-card #to{width:100%;min-height:49px;font-size:17px;border-radius:12px;}
body[data-journey-screen="transit"] .planner-card .station-picker{display:inline-flex;min-height:34px;padding:5px 9px;margin:3px 0 7px;width:auto;max-width:100%;font-size:12px;opacity:.85;}
body[data-journey-screen="transit"] .planner-card #gps:empty{display:none;}
body[data-journey-screen="transit"] .planner-card .travel-label,body[data-journey-screen="transit"] .planner-card #mode{display:none!important;}
body[data-journey-screen="transit"] .planner-card #go{display:block;width:100%;min-height:49px;margin-top:12px;font-size:0;border-radius:13px;}
body[data-journey-screen="transit"] .planner-card #go::before{content:'GO';font-size:18px;font-weight:800;letter-spacing:.05em;}
body[data-journey-screen="transit"] .planner-card #go span{display:none;}
body[data-journey-screen="transit"] .planner-card .planner-actions{display:flex;flex-wrap:wrap;gap:8px;}
body[data-journey-screen="transit"] .planner-card .planner-actions>*{flex:1 1 130px;}
@media(max-width:600px){body[data-journey-screen="transit"] .planner-card{padding:13px!important;}body[data-journey-screen="transit"] .planner-card .field-heading button{font-size:12px;}body[data-journey-screen="transit"] .planner-card .station-picker{font-size:11px;}}

/* Journey Underground tidy v2 2026-11-03 */
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) #tflReferenceTools{margin-top:14px;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) #tflReferenceTools:not([open]) .quick-tools{display:none!important;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card{max-width:720px;margin-inline:auto;padding:14px!important;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card #plannerTitle{font-size:21px!important;margin:0 0 12px!important;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card .field-heading{margin-top:7px!important;margin-bottom:4px!important;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card #from,body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card #to{width:100%;min-height:48px;font-size:16px;border-radius:12px;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card .station-picker{min-height:34px!important;margin:4px 0 7px!important;padding:6px 10px!important;font-size:12px!important;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card .travel-label,body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card #mode{display:none!important;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card #go{display:block!important;width:100%;min-height:48px;margin-top:12px!important;font-size:0!important;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card #go::before{content:'GO';font-size:18px;font-weight:800;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card #go span{display:none!important;}
body[data-journey-screen="main"]:has(#mode option[value="transit"]:checked) .planner-card #gps:empty{display:none;}

/* Journey Plan tab 2026-11-03 */
.journey-plan-tab{font-weight:800;}
.journey-plan-tab .tab-icon{font-size:23px;}

/* Journey Underground route UI polish v1 2026-11-03 */
body[data-travel-mode="transit"] #results{max-width:760px;margin-inline:auto;}
body[data-travel-mode="transit"] #results .rolling-panel{padding:16px!important;border-radius:18px!important;background:#fffdf9!important;border:1px solid #e7d6c6!important;box-shadow:0 3px 14px #6d463015!important;}
body[data-travel-mode="transit"] #results .rolling-head{padding-bottom:10px!important;gap:10px!important;}
body[data-travel-mode="transit"] #results .rolling-head h2{font-size:22px!important;color:#763c27!important;letter-spacing:0!important;}
body[data-travel-mode="transit"] #results .rolling-toggle{min-height:38px!important;padding:7px 13px!important;}
body[data-travel-mode="transit"] #results .rolling-summary{margin:12px 0 3px!important;font-size:15px!important;color:#7a412a!important;}
body[data-travel-mode="transit"] #results .rolling-content>.hint{font-size:12px!important;margin:5px 0 10px!important;line-height:1.4!important;}
body[data-travel-mode="transit"] #results .journey-info{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;margin:10px 0!important;padding:12px!important;background:#f9e9d7!important;border:1px solid #ecd1b7!important;border-radius:14px!important;}
body[data-travel-mode="transit"] #results .journey-info>div{min-width:0!important;}
body[data-travel-mode="transit"] #results .journey-info strong{font-size:16px!important;line-height:1.25!important;overflow-wrap:anywhere;}
body[data-travel-mode="transit"] #results .info-label{font-size:10px!important;letter-spacing:.09em!important;line-height:1.25!important;}
body[data-travel-mode="transit"] #results .route-map{margin:12px 0!important;padding:11px!important;background:#fffdf8!important;border-radius:14px!important;border:1px solid #e7cfb5!important;}
body[data-travel-mode="transit"] #results .map-toolbar{gap:5px!important;flex-wrap:nowrap!important;}
body[data-travel-mode="transit"] #results .map-toolbar strong{font-size:14px!important;min-width:0!important;}
body[data-travel-mode="transit"] #results .map-toolbar button{min-width:39px!important;min-height:39px!important;padding:6px 9px!important;}
body[data-travel-mode="transit"] #results .route-diagram-viewport{background:#fff8ed!important;border-radius:10px!important;}
body[data-travel-mode="transit"] #results .route-diagram-viewport svg{height:130px!important;}
body[data-travel-mode="transit"] #results .journey-controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:9px 0!important;}
body[data-travel-mode="transit"] #results .journey-controls button{width:100%!important;min-width:0!important;min-height:43px!important;padding:8px!important;font-size:13px!important;line-height:1.3!important;}
body[data-travel-mode="transit"] #results .rolling-viewport{margin-top:11px!important;}
body[data-travel-mode="transit"] #results .rolling-stop{padding-top:9px!important;padding-bottom:9px!important;}
body[data-travel-mode="transit"] #results .route-station-name{font-size:17px!important;line-height:1.3!important;}
body[data-travel-mode="transit"] #results .route-note{font-size:13px!important;line-height:1.4!important;}
body[data-travel-mode="transit"] #results article.card{padding:15px!important;margin-block:12px!important;border-radius:17px!important;}
@media(max-width:420px){body[data-travel-mode="transit"] #results .rolling-panel{padding:12px!important;} body[data-travel-mode="transit"] #results .journey-info{gap:7px!important;padding:10px!important;} body[data-travel-mode="transit"] #results .journey-controls button{font-size:12px!important;} body[data-travel-mode="transit"] #results article.card{padding:12px!important;}}

/* Journey TfL diagonal rolling road 2026-11-03 */
/* Keep station text upright and readable; only the route path gently changes direction. */
body[data-travel-mode="transit"] #results .rolling-viewport{max-height:none!important;overflow:visible!important;padding:14px 10px 12px!important;background:#fffaf4!important;}
body[data-travel-mode="transit"] #results .rolling-list{padding:0 2px 0 4px!important;}
body[data-travel-mode="transit"] #results .rolling-stop{position:relative!important;display:flex!important;align-items:flex-start!important;gap:12px!important;margin:0!important;padding:6px 0 20px 8px!important;min-height:74px!important;}
body[data-travel-mode="transit"] #results .rolling-stop:nth-child(even){padding-left:clamp(24px,10vw,62px)!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-dot{position:relative!important;z-index:2!important;width:22px!important;height:22px!important;flex:0 0 22px!important;}
body[data-travel-mode="transit"] #results .rolling-stop:before{left:18px!important;top:25px!important;bottom:-7px!important;width:5px!important;border-radius:6px!important;transform:skewX(-12deg)!important;transform-origin:top center!important;}
body[data-travel-mode="transit"] #results .rolling-stop:nth-child(even):before{left:calc(clamp(24px,10vw,62px) + 10px)!important;transform:skewX(12deg)!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body{max-width:calc(100% - 42px)!important;padding:9px 11px!important;border-radius:12px!important;background:#fff!important;border:1px solid #eadfd3!important;box-shadow:0 2px 8px #553b2010!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-current .station-body{background:#fff0de!important;border-color:#e6b98b!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-change .station-body{border-left:4px solid #98532f!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-end .station-body{border-left:4px solid #21754e!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-complete .station-body{opacity:.65!important;}
body[data-travel-mode="transit"] #results .rolling-stop .route-station-name{font-size:17px!important;}
@media(max-width:390px){body[data-travel-mode="transit"] #results .rolling-stop:nth-child(even){padding-left:26px!important;} body[data-travel-mode="transit"] #results .rolling-stop:nth-child(even):before{left:36px!important;} body[data-travel-mode="transit"] #results .rolling-stop .station-body{padding:8px!important;}}

/* Journey TfL rolling road connected-line repair 2026-11-03 */
/* One continuous station line: no skewed, floating segments. */
body[data-travel-mode="transit"] #results .rolling-viewport{overflow:visible!important;padding:12px!important;}
body[data-travel-mode="transit"] #results .rolling-list{position:relative!important;padding:0!important;margin:0!important;}
body[data-travel-mode="transit"] #results .rolling-stop,body[data-travel-mode="transit"] #results .rolling-stop:nth-child(even){display:flex!important;align-items:stretch!important;padding:0 0 0 4px!important;margin:0!important;gap:13px!important;min-height:0!important;position:relative!important;}
body[data-travel-mode="transit"] #results .rolling-stop:before,body[data-travel-mode="transit"] #results .rolling-stop:nth-child(even):before{content:''!important;position:absolute!important;left:14px!important;top:21px!important;bottom:-3px!important;width:5px!important;border-radius:0!important;background:var(--line-colour)!important;transform:none!important;display:block!important;z-index:0!important;}
body[data-travel-mode="transit"] #results .rolling-stop:last-child:before{display:none!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-dot{flex:0 0 22px!important;width:22px!important;height:22px!important;margin-top:10px!important;z-index:2!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body{position:relative!important;margin:0 0 12px!important;max-width:calc(100% - 40px)!important;flex:1 1 auto!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-walk:before{background:repeating-linear-gradient(to bottom,#81786f 0 5px,transparent 5px 10px)!important;}

/* Journey TfL horizontal rolling road 2026-11-03 */
/* Horizontal, swipeable bus-style route with full instruction cards. */
body[data-travel-mode="transit"] #results .rolling-viewport{max-height:none!important;overflow-x:auto!important;overflow-y:hidden!important;width:100%!important;padding:12px 5px 18px!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;scroll-snap-type:x proximity!important;}
body[data-travel-mode="transit"] #results .rolling-list{display:flex!important;flex-direction:row!important;align-items:stretch!important;min-width:max-content!important;width:max-content!important;gap:0!important;padding:0 8px!important;margin:0!important;}
body[data-travel-mode="transit"] #results .rolling-stop,body[data-travel-mode="transit"] #results .rolling-stop:nth-child(even){display:flex!important;flex-direction:column!important;align-items:center!important;flex:0 0 238px!important;width:238px!important;min-width:238px!important;max-width:238px!important;min-height:0!important;margin:0!important;padding:0 8px 8px!important;gap:0!important;scroll-snap-align:start!important;position:relative!important;}
body[data-travel-mode="transit"] #results .rolling-stop:before,body[data-travel-mode="transit"] #results .rolling-stop:nth-child(even):before{content:''!important;display:block!important;position:absolute!important;left:0!important;right:0!important;top:20px!important;bottom:auto!important;width:100%!important;height:6px!important;background:var(--line-colour)!important;transform:none!important;border-radius:0!important;z-index:0!important;}
body[data-travel-mode="transit"] #results .rolling-stop:last-child:before{display:block!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-dot{position:relative!important;display:block!important;flex:0 0 23px!important;width:23px!important;height:23px!important;margin:11px auto 17px!important;z-index:2!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body{position:relative!important;flex:1 1 auto!important;align-self:stretch!important;width:100%!important;max-width:none!important;min-width:0!important;margin:0!important;padding:12px!important;background:#fff!important;border:1px solid #e6d7c9!important;border-radius:13px!important;box-shadow:0 2px 8px #553b2010!important;text-align:left!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-current .station-body{background:#fff0de!important;border-color:#dfa978!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-change .station-body{border-left:4px solid #98532f!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-end .station-body{border-left:4px solid #21754e!important;}
body[data-travel-mode="transit"] #results .rolling-stop .route-station-name{font-size:17px!important;line-height:1.3!important;}
body[data-travel-mode="transit"] #results .rolling-stop .route-note{display:block!important;font-size:13px!important;line-height:1.4!important;margin-top:6px!important;overflow-wrap:anywhere!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-complete{opacity:.5!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-walk:before{background:repeating-linear-gradient(to right,#81786f 0 8px,transparent 8px 14px)!important;}
@media(max-width:390px){body[data-travel-mode="transit"] #results .rolling-stop,body[data-travel-mode="transit"] #results .rolling-stop:nth-child(even){flex-basis:210px!important;width:210px!important;min-width:210px!important;max-width:210px!important;}}

/* Journey Tube compact expandable station cards 2026-11-03 */
body[data-travel-mode="transit"] #results .rolling-stop .station-body{flex:0 0 auto!important;min-height:0!important;padding:0!important;align-self:stretch!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body>summary{display:block!important;cursor:pointer!important;padding:10px 12px!important;list-style:none!important;min-height:78px!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body>summary::-webkit-details-marker{display:none!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body>summary .route-badge{margin-bottom:5px!important;}
body[data-travel-mode="transit"] #results .rolling-stop .tube-stop-expand{display:block!important;font-size:11px!important;font-weight:750!important;color:#76523b!important;margin-top:5px!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body[open] .tube-stop-expand{font-size:0!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body[open] .tube-stop-expand::after{content:'Close details ▴';font-size:11px!important;}
body[data-travel-mode="transit"] #results .rolling-stop .tube-stop-instructions{padding:0 12px 12px!important;border-top:1px solid #eadfd3!important;}
body[data-travel-mode="transit"] #results .rolling-stop .tube-stop-instructions .route-note{display:block!important;margin-top:7px!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body>summary:focus-visible{outline:3px solid #224d9a!important;outline-offset:2px!important;}

/* TfL horizontal rolling road: all instructions visible 2026-11-03 */
body[data-travel-mode="transit"] #results .rolling-stop .station-body .tube-stop-instructions{display:block!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body .tube-stop-heading{cursor:default!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body .tube-stop-expand{display:none!important;}

/* Journey collapsible Departures and Platforms 2026-11-03 */
#routeLive{padding:13px 16px!important;}
#routeLive .route-live-details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;min-height:42px;color:#263f66;}
#routeLive .route-live-details>summary::-webkit-details-marker{display:none;}
#routeLive .route-live-details>summary strong{font-size:18px;line-height:1.3;}
#routeLive .route-live-expand{white-space:nowrap;font-size:12px;font-weight:700;color:#775339;}
#routeLive .route-live-details[open] .route-live-expand{font-size:0;}
#routeLive .route-live-details[open] .route-live-expand::after{content:'Close ▴';font-size:12px;}
#routeLive .route-live-body{padding:12px 0 3px;border-top:1px solid #e7dacb;margin-top:8px;}
#routeLive .route-live-details>summary:focus-visible{outline:3px solid #224d9a;outline-offset:3px;}

/* Journey Tube Your Route clearer progress 2026-11-03 */
body[data-travel-mode="transit"] #results .rolling-panel .notice{display:flex;flex-direction:column;gap:5px;padding:12px 14px!important;background:#fff1dc!important;border:1px solid #efd2a6;border-radius:12px;line-height:1.35;}
body[data-travel-mode="transit"] #results .route-progress-label{font-size:10px;font-weight:800;letter-spacing:.07em;color:#7b5435;}
body[data-travel-mode="transit"] #results .route-progress-position{font-size:18px;line-height:1.3;color:#46301e;}
body[data-travel-mode="transit"] #results .route-progress-next{font-size:15px;font-weight:750;color:#85401e;}

/* Journey three selectable Tube rolling routes 2026-11-03 */
body[data-travel-mode="transit"] #results .tube-route-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0 5px;}
body[data-travel-mode="transit"] #results .tube-route-option{font-size:14px;font-weight:800;min-width:0;min-height:48px;padding:9px 4px;border:1px solid #d7c1ae;border-radius:11px;background:#fff9ef;color:#70432c;}
body[data-travel-mode="transit"] #results .tube-route-option.is-active{background:#823e23;color:#fff;border-color:#823e23;}
body[data-travel-mode="transit"] #results .tube-route-option:focus-visible{outline:3px solid #1e4f93;outline-offset:2px;}
body[data-travel-mode="transit"] #results>article.card{display:none!important;}

/* Journey Underground supplied transparent roundel 2026-11-03 */
#journeyUndergroundPlannerLogo{display:none;width:min(240px,72%);height:auto;object-fit:contain;margin:2px auto 15px;}
body[data-travel-mode="transit"] #journeyUndergroundPlannerLogo{display:block;}

/* Journey Underground small inline heading roundel 2026-11-03 */
.planner-card .journey-planner-heading{display:flex;align-items:center;gap:12px;margin:0 0 18px;}
.planner-card .journey-planner-heading #plannerTitle{margin:0;min-width:0;}
#journeyUndergroundPlannerLogo{display:none!important;width:52px!important;max-width:52px!important;height:42px!important;max-height:42px!important;object-fit:contain!important;flex:0 0 52px!important;margin:0!important;}
body[data-travel-mode="transit"] #journeyUndergroundPlannerLogo{display:block!important;}

/* Journey TfL planner heading centred like Rail 2026-11-03 */
body[data-travel-mode="transit"] .planner-card .journey-planner-heading{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;min-height:42px!important;margin:0 0 18px!important;}
body[data-travel-mode="transit"] .planner-card .journey-planner-heading #plannerTitle{display:flex!important;align-items:center!important;min-height:42px!important;margin:0!important;padding:0!important;line-height:1.15!important;}

/* Journey Underground header aligned exactly like Rail 2026-11-03 */
body[data-travel-mode="transit"] .planner-card .journey-planner-heading{display:flex!important;position:static!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;width:auto!important;min-height:42px!important;padding:0!important;margin:0 0 18px!important;}
body[data-travel-mode="transit"] .planner-card .journey-planner-heading #journeyUndergroundPlannerLogo{display:block!important;position:static!important;transform:none!important;width:52px!important;height:42px!important;flex:0 0 52px!important;margin:0!important;}
body[data-travel-mode="transit"] .planner-card .journey-planner-heading #plannerTitle{display:block!important;min-height:0!important;margin:0!important;padding:0!important;text-align:left!important;line-height:1.2!important;}

/* Tube logo blue-bar and heading optical baseline alignment 2026-11-03 */
body[data-travel-mode="transit"] .planner-card .journey-planner-heading #plannerTitle{position:relative!important;top:8px!important;transform:none!important;}

/* Journey Underground matches Train typography 2026-11-03 */
/* Identical form typography proportions to Train; colours and route layout retained. */
body[data-travel-mode="transit"] .planner-card #plannerTitle{font-size:23px!important;font-weight:800!important;letter-spacing:normal!important;line-height:1.15!important;}
body[data-travel-mode="transit"] .planner-card .field-heading label{font-size:18px!important;font-weight:800!important;line-height:1.4!important;}
body[data-travel-mode="transit"] .planner-card #from,body[data-travel-mode="transit"] .planner-card #to{font-family:inherit!important;font-size:16px!important;font-weight:400!important;line-height:1.35!important;min-height:49px!important;padding:10px 12px!important;}
body[data-travel-mode="transit"] .planner-card #from::placeholder,body[data-travel-mode="transit"] .planner-card #to::placeholder{font-size:16px!important;font-weight:400!important;opacity:1!important;}
body[data-travel-mode="transit"] .planner-card #locate,body[data-travel-mode="transit"] .planner-card #swap{font-size:16px!important;font-weight:750!important;line-height:1.25!important;}
body[data-travel-mode="transit"] .planner-card .station-picker{font-size:15px!important;font-weight:750!important;line-height:1.3!important;}
body[data-travel-mode="transit"] .planner-card #go::before{font-size:18px!important;font-weight:800!important;}
body[data-travel-mode="transit"] .planner-card #clearPlan{font-size:15px!important;font-weight:700!important;}
body[data-travel-mode="transit"] .planner-card .planner-actions>*{font-size:15px!important;font-weight:750!important;line-height:1.3!important;}
body[data-travel-mode="transit"] #results .rolling-head h2{font-size:23px!important;font-weight:800!important;letter-spacing:normal!important;}
body[data-travel-mode="transit"] #results .rolling-summary{font-size:16px!important;font-weight:800!important;line-height:1.35!important;}
body[data-travel-mode="transit"] #results .route-progress-position{font-size:18px!important;font-weight:800!important;}
body[data-travel-mode="transit"] #results .route-progress-next{font-size:16px!important;font-weight:750!important;}
body[data-travel-mode="transit"] #routeLive .route-live-details>summary strong{font-size:18px!important;font-weight:800!important;}

/* Tube map and service status paired under planner actions 2026-11-03 */
body[data-travel-mode="transit"] .planner-card .tfl-two-boxes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;width:100%;margin-top:12px;}
.tfl-two-boxes[hidden]{display:none!important;}
.tfl-two-boxes .tfl-tool-box{min-width:0;border:1px solid #c9cfe0;border-radius:14px;background:#f3f4fb;overflow:hidden;}
.tfl-two-boxes .tfl-tool-box>summary{display:flex;align-items:center;justify-content:center;text-align:center;min-height:52px;padding:12px 7px;font-size:15px;font-weight:800;line-height:1.2;color:#193c84;cursor:pointer;list-style:none;}
.tfl-two-boxes .tfl-tool-box>summary::-webkit-details-marker{display:none;}
.tfl-two-boxes .tfl-tool-box>summary:after{content:"⌄";margin-left:5px;font-size:15px;}
.tfl-two-boxes .tfl-tool-box[open]>summary:after{content:"⌃";}
.tfl-two-boxes .tfl-tool-body{padding:8px;}
.tfl-two-boxes .tfl-tool-body>.card{padding:10px!important;margin:0!important;min-width:0;box-shadow:none!important;}
.tfl-two-boxes .tfl-tool-body .tool-icon,.tfl-two-boxes .tfl-tool-body h2,.tfl-two-boxes .tfl-tool-body .map-description,.tfl-two-boxes .tfl-tool-body .map-credit,.tfl-two-boxes .tfl-tool-body .status-card>p{display:none!important;}
.tfl-two-boxes .tfl-tool-body .secondary{width:100%;font-size:14px!important;padding:10px 5px!important;white-space:normal;}
.tfl-two-boxes .tfl-tool-body .status-link{display:block;margin-top:8px;font-size:13px;}

/* Individual full-width Tube map tabs 2026-11-03 */
.tfl-two-boxes .tube-map-links{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;}
.tfl-two-boxes .tube-map-links .tube-map-choice{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%!important;min-height:50px;border:1.5px solid #bfc9de;border-radius:11px;background:#f1f3fb;color:#183c85!important;font-size:15px!important;font-weight:800;line-height:1.3;text-align:center;text-decoration:none;padding:10px!important;}
.tfl-two-boxes .tube-map-offline{margin-top:12px;border-top:1px solid #d9dce5;padding:10px 3px 0;font-size:13px;}
.tfl-two-boxes .tube-map-offline summary{font-weight:700;cursor:pointer;}
.tfl-two-boxes .tube-map-offline p{margin:8px 0 0;line-height:1.4;}

/* Tube map links explicit visibility recovery 2026-11-03 */
body[data-travel-mode="transit"] #tflReferenceTools .tfl-tool-box[open]>.tfl-tool-body{display:block!important;visibility:visible!important;height:auto!important;max-height:none!important;overflow:visible!important;}
body[data-travel-mode="transit"] #tflReferenceTools .tube-map-card .tube-map-links{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:9px!important;visibility:visible!important;width:100%!important;height:auto!important;max-height:none!important;opacity:1!important;}
body[data-travel-mode="transit"] #tflReferenceTools .tube-map-card .tube-map-links>a.tube-map-choice{display:flex!important;visibility:visible!important;opacity:1!important;position:static!important;width:100%!important;min-height:48px!important;color:#193c84!important;pointer-events:auto!important;}

/* TfL live service status official line colours 2026-11-03 */
#status .tfl-colour-status{border-left:7px solid var(--tube-line-colour,#7b8391)!important;border-bottom:1px solid #e8e3dc!important;border-radius:5px!important;padding:9px 10px!important;margin:7px 0!important;background:#fff!important;color:#213652!important;text-align:left!important;}
#status .tfl-colour-status strong{display:block!important;font-size:16px!important;font-weight:800!important;line-height:1.3!important;color:#183a69!important;margin-bottom:3px!important;}
#status .tfl-colour-status details{margin-top:7px!important;font-size:13px!important;}

/* Colour large print and station zoom guidance 2026-11-03 */
.tfl-two-boxes .tube-map-zoom-tip{margin:10px 2px 2px!important;font-size:13px!important;line-height:1.45!important;color:#42546e!important;}

/* Tube map links iPhone reliable tap target 2026-11-03 */
#tflReferenceTools .tube-map-links a.tube-map-choice{cursor:pointer!important;touch-action:manipulation!important;-webkit-tap-highlight-color:rgba(0,56,136,.12)!important;pointer-events:auto!important;position:relative!important;z-index:2!important;}

/* Verified TfL live platforms in Underground rolling road 2026-11-03 */
body[data-travel-mode="transit"] #results .note-board-platform,body[data-travel-mode="transit"] #results .note-arrival-platform{display:block!important;font-size:14px!important;font-weight:800!important;color:#173b79!important;line-height:1.3!important;margin:5px 0!important;padding:5px 8px!important;border-radius:7px!important;background:#edf3ff!important;border-left:3px solid var(--line-colour,#27649a)!important;}
body[data-travel-mode="transit"] #results .note-arrival-platform[hidden]{display:none!important;}

/* TfL coloured left edges on every Underground rolling-road card 2026-11-03 */
body[data-travel-mode="transit"] #results .rolling-stop .station-body,body[data-travel-mode="transit"] #results .rolling-stop.is-change .station-body,body[data-travel-mode="transit"] #results .rolling-stop.is-end .station-body{border-left:6px solid var(--line-colour,#7b8391)!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-walk .station-body{border-left:6px dashed #81786f!important;}

/* Journey Underground TfL identity makeover and Train typography 2026-11-03 */
/* Strict Tube-only styling: official roundel retained, no changes to Train, Bus or Ferry. */
body[data-travel-mode="transit"]{--tube-red:#DC241F;--tube-navy:#1C3F94;--tube-ink:#17355f;--tube-soft:#f1f5fb;--tube-border:#c5d1e3;}
body[data-travel-mode="transit"] .planner-card{background:#fff!important;border:1px solid var(--tube-border)!important;border-top:5px solid var(--tube-red)!important;}
body[data-travel-mode="transit"] .planner-card #plannerTitle{color:var(--tube-navy)!important;font-size:23px!important;font-weight:800!important;letter-spacing:normal!important;}
body[data-travel-mode="transit"] .planner-card .field-heading label{color:var(--tube-ink)!important;font-size:18px!important;font-weight:800!important;}
body[data-travel-mode="transit"] .planner-card #from,body[data-travel-mode="transit"] .planner-card #to{font-family:inherit!important;font-size:16px!important;font-weight:400!important;color:var(--tube-ink)!important;background:#fff!important;border:1.5px solid var(--tube-border)!important;border-radius:11px!important;}
body[data-travel-mode="transit"] .planner-card #from:focus,body[data-travel-mode="transit"] .planner-card #to:focus{border-color:var(--tube-navy)!important;outline:2px solid #d8e3fa!important;outline-offset:1px!important;}
body[data-travel-mode="transit"] .planner-card #locate,body[data-travel-mode="transit"] .planner-card #swap,body[data-travel-mode="transit"] .planner-card .station-picker,body[data-travel-mode="transit"] .planner-card .planner-actions>*{background:var(--tube-soft)!important;color:var(--tube-navy)!important;border:1px solid var(--tube-border)!important;border-radius:11px!important;font-family:inherit!important;font-size:16px!important;font-weight:750!important;}
body[data-travel-mode="transit"] .planner-card .station-picker{font-size:15px!important;}
body[data-travel-mode="transit"] .planner-card #go{background:var(--tube-red)!important;border-color:#b51d1a!important;color:#fff!important;box-shadow:0 5px 0 #981b1b!important;font-size:18px!important;font-weight:800!important;}
body[data-travel-mode="transit"] .planner-card #go::before{color:#fff!important;font-size:18px!important;font-weight:800!important;}
body[data-travel-mode="transit"] .planner-card #clearPlan{color:var(--tube-navy)!important;font-size:15px!important;font-weight:700!important;}
body[data-travel-mode="transit"] .planner-card .tfl-two-boxes .tfl-tool-box{background:var(--tube-soft)!important;border:1px solid var(--tube-border)!important;}
body[data-travel-mode="transit"] .planner-card .tfl-two-boxes .tfl-tool-box>summary{color:var(--tube-navy)!important;font-size:16px!important;font-weight:800!important;}
body[data-travel-mode="transit"] .planner-card .tfl-two-boxes .tfl-tool-box[open]>summary{background:#e6eefb!important;border-bottom:2px solid var(--tube-red)!important;}
body[data-travel-mode="transit"] .planner-card .tfl-two-boxes .tfl-tool-body>.card{background:#fff!important;border:1px solid var(--tube-border)!important;}
body[data-travel-mode="transit"] #tflReferenceTools .tube-map-card .tube-map-links>a.tube-map-choice{background:#fff!important;color:var(--tube-navy)!important;border:1px solid var(--tube-border)!important;font-size:15px!important;font-weight:800!important;line-height:1.35!important;}
body[data-travel-mode="transit"] #tflReferenceTools .tube-map-card .tube-map-links>a.tube-map-choice:focus-visible{outline:3px solid var(--tube-red)!important;outline-offset:2px!important;}
body[data-travel-mode="transit"] #tflReferenceTools .tube-map-offline summary{color:var(--tube-navy)!important;font-size:15px!important;font-weight:750!important;}
body[data-travel-mode="transit"] #tflReferenceTools #statusButton{background:var(--tube-navy)!important;color:#fff!important;border-color:var(--tube-navy)!important;font-size:15px!important;font-weight:800!important;}
body[data-travel-mode="transit"] #tflReferenceTools .status-link{color:var(--tube-navy)!important;font-size:14px!important;font-weight:700!important;}
body[data-travel-mode="transit"] #results .rolling-panel{background:#fff!important;border:1px solid var(--tube-border)!important;border-top:4px solid var(--tube-navy)!important;}
body[data-travel-mode="transit"] #results .rolling-head h2{color:var(--tube-navy)!important;font-size:23px!important;font-weight:800!important;letter-spacing:normal!important;}
body[data-travel-mode="transit"] #results .rolling-summary{color:var(--tube-ink)!important;font-size:16px!important;font-weight:800!important;}
body[data-travel-mode="transit"] #results .tube-route-option{background:#fff!important;border-color:var(--tube-border)!important;color:var(--tube-navy)!important;font-size:15px!important;font-weight:800!important;}
body[data-travel-mode="transit"] #results .tube-route-option.is-active{background:var(--tube-navy)!important;border-color:var(--tube-navy)!important;color:#fff!important;}
body[data-travel-mode="transit"] #results .rolling-panel .notice{background:#eaf1fc!important;border-color:#b9cce9!important;}
body[data-travel-mode="transit"] #results .route-progress-label{color:#536d93!important;font-size:12px!important;font-weight:800!important;letter-spacing:normal!important;}
body[data-travel-mode="transit"] #results .route-progress-position{color:var(--tube-ink)!important;font-size:18px!important;font-weight:800!important;}
body[data-travel-mode="transit"] #results .route-progress-next{color:var(--tube-navy)!important;font-size:16px!important;font-weight:750!important;}
body[data-travel-mode="transit"] #results .rolling-stop .station-body{background:#fff!important;border-top-color:var(--tube-border)!important;border-right-color:var(--tube-border)!important;border-bottom-color:var(--tube-border)!important;color:var(--tube-ink)!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-current .station-body{background:#eef4ff!important;border-top-color:#9fb8df!important;border-right-color:#9fb8df!important;border-bottom-color:#9fb8df!important;}
body[data-travel-mode="transit"] #results .rolling-stop .route-station-name{font-size:17px!important;font-weight:800!important;color:var(--tube-ink)!important;}
body[data-travel-mode="transit"] #results .rolling-stop .route-note{font-size:15px!important;font-weight:400!important;line-height:1.4!important;color:var(--tube-ink)!important;}
body[data-travel-mode="transit"] #results .note-board-platform,body[data-travel-mode="transit"] #results .note-arrival-platform{background:#eaf1fc!important;color:var(--tube-navy)!important;font-size:15px!important;font-weight:800!important;}
body[data-travel-mode="transit"] #results .rolling-panel button:not(.tube-route-option){font-family:inherit!important;font-size:15px!important;font-weight:750!important;}
body[data-travel-mode="transit"] #routeLive{background:#fff!important;border-color:var(--tube-border)!important;}
body[data-travel-mode="transit"] #routeLive .route-live-details>summary strong{color:var(--tube-navy)!important;font-size:18px!important;font-weight:800!important;}
body[data-travel-mode="transit"] #routeLive .route-live-expand{color:var(--tube-navy)!important;font-size:13px!important;font-weight:700!important;}
body[data-travel-mode="transit"] #status .tfl-colour-status{border-left-color:var(--tube-line-colour,#7b8391)!important;}
/* Preserve the route-specific line stripe, coloured route track and walking differentiation. */
body[data-travel-mode="transit"] #results .rolling-stop .station-body,body[data-travel-mode="transit"] #results .rolling-stop.is-change .station-body,body[data-travel-mode="transit"] #results .rolling-stop.is-end .station-body{border-left:6px solid var(--line-colour,#7b8391)!important;}
body[data-travel-mode="transit"] #results .rolling-stop.is-walk .station-body{border-left:6px dashed #81786f!important;}

/* Journey Train Railway Websites + Railway Maps paired tabs — 2026-11-03 */
body[data-travel-mode="rail"] .journey-rail-reference-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;width:100%;margin:10px 0 4px;}
body[data-travel-mode="rail"] .journey-rail-reference-pair>.rail-quickdetails{min-width:0;width:100%;margin:0!important;border:1.5px solid #c9c3e6;border-radius:12px;background:#faf9ff;box-sizing:border-box;overflow:hidden;}
body[data-travel-mode="rail"] .journey-rail-reference-pair>.rail-quickdetails>summary{display:flex;align-items:center;justify-content:center;min-height:56px;padding:11px 5px;font-family:inherit;font-size:15px;font-weight:800;line-height:1.3;text-align:center;color:#30257e;cursor:pointer;list-style:none;}
body[data-travel-mode="rail"] .journey-rail-reference-pair>.rail-quickdetails>summary::-webkit-details-marker{display:none;}
body[data-travel-mode="rail"] .journey-rail-reference-pair>.rail-quickdetails>summary:after{content:"⌄";font-size:16px;margin-left:5px;flex:none;}
body[data-travel-mode="rail"] .journey-rail-reference-pair>.rail-quickdetails[open]>summary{background:#eae7f7;border-bottom:2px solid #322782;}
body[data-travel-mode="rail"] .journey-rail-reference-pair>.rail-quickdetails[open]>summary:after{content:"⌃";}
body[data-travel-mode="rail"] .journey-rail-reference-pair>details:focus-within>summary:focus-visible{outline:3px solid #322782;outline-offset:-3px;}
body[data-travel-mode="rail"] .journey-rail-reference-pair .journey-rail-shortcuts{grid-template-columns:minmax(0,1fr)!important;gap:8px;padding:8px;margin:0;}
body[data-travel-mode="rail"] .journey-rail-reference-pair .journey-rail-shortcuts a{min-width:0;min-height:49px;overflow-wrap:anywhere;padding:9px 5px;font-size:14px!important;line-height:1.35;}
body[data-travel-mode="rail"] .journey-rail-map-shortcuts{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:9px 7px 5px;margin:0;}
body[data-travel-mode="rail"] .journey-rail-map-category{min-width:0;display:grid;gap:7px;padding:0 0 9px;border-bottom:1px solid #dedaf1;}
body[data-travel-mode="rail"] .journey-rail-map-category:last-child{border-bottom:0;}
body[data-travel-mode="rail"] .journey-rail-map-category h3{font-size:14px;font-weight:800;line-height:1.3;color:#30257e;margin:5px 1px 2px;}
body[data-travel-mode="rail"] .journey-rail-map-shortcuts a{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:51px;min-width:0;padding:10px 6px;border:1.5px solid #c9c3e6;border-radius:10px;background:#f3f1fb;color:#30257e;text-decoration:none;text-align:center;font-family:inherit;font-size:14px;font-weight:750;line-height:1.35;overflow-wrap:anywhere;}
body[data-travel-mode="rail"] .journey-rail-map-shortcuts a:focus-visible{outline:3px solid #322782;outline-offset:2px;}
body[data-travel-mode="rail"] .journey-rail-map-note{margin:4px 8px 12px!important;font-size:12px!important;line-height:1.45;color:#5c5574;}

/* Journey rail tabs Mac link and equal-height headers — 2026-11-03 */
body[data-travel-mode="rail"] .journey-rail-reference-pair>.rail-quickdetails>summary{box-sizing:border-box!important;height:62px!important;min-height:62px!important;max-height:62px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:8px 6px!important;line-height:1.25!important;font-size:15px!important;overflow:hidden!important;}
body[data-travel-mode="rail"] .journey-rail-reference-pair{align-items:start!important;}
body[data-travel-mode="rail"] .journey-rail-reference-pair a{position:relative;z-index:1;pointer-events:auto!important;cursor:pointer!important;touch-action:manipulation;}

/* Plan Journey exactly reuses the proven Walk GPS / From / To / GO surface, independently of Underground — 2026-11-03 */


/* Exclusive Journey navigation: a closed module must not remain visible. */
#journeyBusPanel[hidden],#journeyCoachPanel[hidden],#ferryPlanner[hidden],#weatherPanel[hidden]{display:none!important;}
body[data-journey-screen="bus"] .planner-card,body[data-journey-screen="coach"] .planner-card,body[data-journey-screen="ferry"] .planner-card,body[data-journey-screen="weather"] .planner-card{display:none!important;}

/* Walk isolation: never show Underground tools outside Tube mode. */
body:not([data-travel-mode="transit"]) #tflReferenceTools,
body[data-journey-screen="main"]:has(#mode option:not([value="transit"]):checked) #tflReferenceTools {display:none!important;}

/* Future rail result cards */
.future-rail-results{margin-top:16px}.future-rail-route{font-weight:800;font-size:1.15rem}.future-rail-option{padding:14px;margin:10px 0;border:1px solid #d6dceb;border-radius:14px;background:#f7f9ff}.future-rail-option strong{font-size:1.25rem;color:#162d55}.future-rail-option p{margin:6px 0}.future-rail-option details{margin-top:8px}.future-rail-status{font-weight:700}.future-rail-results>a.secondary{display:block;text-align:center;margin-top:16px}

/* ChatGPT tile: custom artwork fills the entire tab, label remains readable. */
.mode-tabs .journey-chatgpt-tab{position:relative;overflow:hidden;padding:0!important;gap:0!important;isolation:isolate;min-height:74px}
.mode-tabs .journey-chatgpt-tab .journey-chatgpt-custom-icon{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;border-radius:0!important;z-index:0}
.mode-tabs .journey-chatgpt-tab span:last-child{position:absolute;bottom:0;left:0;right:0;z-index:1;background:linear-gradient(transparent,rgba(0,25,24,.88));padding:12px 2px 5px;text-align:center;color:white!important;font-weight:800;text-shadow:0 1px 3px #001b1a}

/* Packing tab: full-width artwork while retaining the readable tab label. */
#journeyPackingShortcut{overflow:hidden;}
#journeyPackingShortcut .journey-packing-icon{display:block!important;width:100%!important;height:89px!important;max-width:none!important;flex:0 0 89px!important;min-width:0!important;line-height:0!important;overflow:hidden;border-radius:12px!important;}
#journeyPackingShortcut .journey-packing-icon img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;border-radius:12px!important;}
#journeyPackingShortcut>span:last-child{font-size:15px!important;font-weight:800!important;}

/* ChatGPT artwork sized exactly like Packing tile artwork */
#journeyChatGPTShortcut .journey-chatgpt-custom-icon{display:block!important;width:100%!important;height:89px!important;max-width:none!important;max-height:89px!important;object-fit:cover!important;object-position:center!important;border-radius:12px!important;flex:0 0 89px!important;}

/* Stage 38: compact optional stop controls within master planner only */
#jmMaster .jm-breakfast{width:100%;border:1px solid #b9d5c4;border-radius:12px;padding:10px 13px;margin-top:8px;color:#174f38;font-weight:650}#jmMaster .jm-breakfast summary{cursor:pointer;font-size:0.98rem}#jmMaster .jm-quickstops{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}#jmMaster .jm-quickstops button{font-size:.92rem;padding:9px 12px;flex:1}#jmMaster .jm-actions{display:block}#jmMaster .jm-result{overflow-wrap:anywhere}
