/* RAIL pages (M10, mockups R1–R4 approved by Jones 1 Nov 19:54). Uses transit.css + raya.css tokens. */
.rsearch{background:#fff;border-radius:18px;padding:16px;display:grid;grid-template-columns:1fr auto 1fr 170px 150px;gap:10px;align-items:center;color:var(--ink);margin-top:18px}
.fld{border:1.5px solid var(--line);border-radius:12px;padding:8px 12px;display:block;min-width:0}
.fld small{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}
.fld input,.fld select{border:0;padding:2px 0;font:700 16px var(--body);color:var(--ink);width:100%;background:transparent;outline:none}
.fld span{display:block;font-size:12px;color:var(--muted)}
.swap{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-size:18px;background:#fff;color:var(--ink);text-decoration:none}
.rsearch button.go,.rnum button{background:var(--amber);color:var(--ink);font-weight:800;border:0;border-radius:12px;padding:16px;text-align:center;font-size:16px;cursor:pointer}
.cat{color:#fff;font:800 11px var(--body);padding:3px 7px;border-radius:7px;white-space:nowrap;display:inline-block;text-decoration:none}
.trow{display:flex;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--mist);text-decoration:none;color:inherit}
.trow:last-child{border:0}.trow:hover{background:#f8fafc}
.tt{font-family:var(--display);font-size:17px;color:var(--ink);min-width:62px}
.tt small{display:block;font-family:var(--body);font-size:11px;color:var(--muted);font-weight:700}
.tt sup{font-family:var(--body);font-size:11px;color:var(--muted)}
.dur{font-size:13px;color:var(--muted);text-align:right;min-width:86px;margin-left:auto}.dur b{display:block;color:var(--ink);font-size:15px}
.pop{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:14px}
.pop a{border:1px solid var(--line);border-radius:14px;padding:12px 14px;text-decoration:none;color:var(--ink);background:#fff}
.pop a:hover{border-color:var(--ink)}.pop b{display:block;font-size:15px}.pop small{color:var(--muted);font-size:12px}
.note-y{background:#fff6e0;color:#7a5200;font-size:13px;line-height:1.45;padding:11px 18px;border-radius:14px;border:1px solid #ffd98a}
.legend{display:flex;gap:10px;flex-wrap:wrap;padding:12px 18px}.legend span{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}
.tl{padding:6px 18px 14px}.tl .s{display:grid;grid-template-columns:70px 22px 1fr;align-items:start;gap:10px;padding:6px 0;text-decoration:none;color:inherit}
.tl .s b{color:var(--ink)}.tl .s small{display:block;color:var(--muted);font-size:12px}
.tl .dot{width:13px;height:13px;border-radius:50%;border:3px solid var(--ink);background:#fff;margin-top:3px}
.tl .s.end .dot{background:var(--amber)}.tl .tm{font-family:var(--display);font-size:14px;color:var(--ink)}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 18px}.kv div{background:var(--mist);border-radius:12px;padding:10px 12px}
.kv small{display:block;font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.1em;text-transform:uppercase}.kv b{color:var(--ink)}
.dchips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.dchips a{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700;color:var(--ink);background:#fff;text-decoration:none}
.dchips a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.rnum{display:flex;gap:8px}.rnum input{flex:1;border:1.5px solid var(--line);border-radius:12px;padding:12px;font:700 15px var(--body);min-width:0}
.rnum button{padding:12px 16px;font-size:14px}
.ledr .cat{min-width:62px;text-align:center}
.src{font-size:12px;color:var(--muted)}
.err{background:#fdecea;color:#8a1c12;border:1px solid #f1c4bd;border-radius:14px;padding:12px 18px}
.tabs a{flex:1;text-align:center;padding:9px;border-radius:999px;font-size:14px;color:var(--ink);text-decoration:none;font-weight:700}
.tabs a.on{background:var(--ink);color:#fff}
@media (max-width:900px){.dchips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-16px;padding-right:16px}
  .dchips::-webkit-scrollbar{display:none}.dchips a{flex:none}
  .rsearch{grid-template-columns:1fr}.swap{justify-self:center;transform:rotate(90deg)}.pop{grid-template-columns:1fr}
  .trow{flex-wrap:wrap;gap:8px 12px}.dur{min-width:0}}
/* Jones 1 Nov 20:09: yellow notice on every Rail page while the section is being updated (BG + EN). */
.rail-banner{background:#ffd23f;color:#3a2a00;border-bottom:1px solid #e6b800}
.rail-banner .wrap{display:flex;gap:12px;align-items:center;padding-top:10px;padding-bottom:10px}
.rail-banner span[aria-hidden]{font-size:20px}
.rail-banner p{margin:0;font-size:14px;line-height:1.4}.rail-banner p b{display:block}.rail-banner p span{display:block}
.railway .w-grid>*{min-width:0}
.fld{display:flex;flex-direction:column;justify-content:center;min-height:62px}
.mc-row{font-size:13px;padding:3px 0;color:var(--ink)}.mc-row .cat{margin-right:4px}
/* Rail home, compact (Jones 1 Nov 20:49): plan card in the head, tiles below. */
.rail-hero{padding:22px 0 24px}.rail-hero h1{margin:6px 0 12px}
.plan{background:#fff;border-radius:20px;padding:14px;color:var(--ink)}
.plan-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;padding:2px 4px 10px}.plan-h b{font-family:var(--display);font-size:17px}.plan-h span{font-size:13px;color:var(--muted)}
.plan .rsearch{margin-top:0;padding:0}
button.swap{cursor:pointer}
.rail-body{margin-top:22px;margin-bottom:60px}
.rtiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.rtiles a{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:4px}
.rtiles a:hover{border-color:var(--ink)}.rtiles .ri{font-size:24px}.rtiles b{font-size:16px}.rtiles small{color:var(--muted);font-size:12.5px;line-height:1.35}
.rnum{max-width:520px}
@media (max-width:900px){.rtiles{grid-template-columns:1fr 1fr}.rail-hero h1{font-size:28px}}
.legend .cat{color:#fff}.railway .card .hd{gap:10px}

/* Rail home board (Jones 1 Nov 20:55: "this bold style is very good" — the city board, for trains). */
.railway .hub-board a.ledr{color:#fff;text-decoration:none}.railway .hub-board a.ledr:hover .d{text-decoration:underline}
.railway .hub-board .ledr .bd{white-space:nowrap;min-width:64px}
.railway .rail-hero .hub-top{align-items:start}.railway .rail-hero .hub-intro{min-width:0}.railway .hub-right{min-width:0}
/* Plan card beside the board: From ⇄ To on one row, date + Find on the next. */
.railway .hub-intro .rsearch{grid-template-columns:1fr auto 1fr;grid-template-areas:"f s t" "d d g"}
.railway .hub-intro .rsearch>.fld:nth-of-type(1){grid-area:f}.railway .hub-intro .rsearch>.swap{grid-area:s}
.railway .hub-intro .rsearch>.fld:nth-of-type(2){grid-area:t}.railway .hub-intro .rsearch>.fld:nth-of-type(3){grid-area:d}
.railway .hub-intro .rsearch>.go{grid-area:g;min-width:170px}
@media (max-width:900px){.railway .hub-intro .rsearch{grid-template-columns:1fr;grid-template-areas:"f" "s" "t" "d" "g"}}

/* Station picker under From / To: type or pick, max ~9 rows (Jones 1 Nov 21:24). */
.rs-f{position:relative}
.rs-sug{position:absolute;left:-1.5px;right:-1.5px;top:calc(100% + 6px);z-index:30;background:#fff;border:1.5px solid var(--ink);border-radius:12px;box-shadow:0 12px 30px rgba(20,35,59,.18);max-height:340px;overflow:auto;padding:4px}
.rs-sug button{display:block;width:100%;text-align:left;background:none;border:0;border-radius:9px;padding:6px 10px;cursor:pointer;color:var(--ink);font:inherit}
.rs-sug button:hover,.rs-sug button.on{background:var(--mist,#eef2f6)}
.rs-sug b{display:block;font-size:15px}.rs-sug small{display:block;font-size:12px;color:var(--muted);letter-spacing:0;text-transform:none;font-weight:600}

/* Trips with one change (Jones 2 Nov). */
.crow{padding:12px 18px;border-top:1px solid var(--mist,#eef2f6)}.crow:first-of-type{border-top:0}
.crow-top{display:flex;align-items:center;gap:12px}.crow-top .dur{margin-left:auto}
.legs{margin:8px 0 0 4px;border-left:3px solid var(--line);padding-left:12px;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.legs a{color:var(--ink);text-decoration:none;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.legs a:hover{text-decoration:underline}
.legs .chg{color:#8a5a00;background:#fff3d1;border-radius:8px;padding:3px 8px;align-self:flex-start;font-weight:700;font-size:12.5px}.legs .chg small{font-weight:600;color:#7a5200}

/* Railway map (Jones 2 Nov 03:41: "this link is ugly" → full-height map, every station, OpenRailwayMap-style lines). */
.rmap-head{padding:18px 0 16px}.rmap-head h1{font-size:30px;margin:4px 0 4px}.rmap-head p{margin:0;font-size:14px}
.rmap.map-wrap{margin-top:14px}
.rmap #map{height:calc(100vh - 210px);min-height:480px;max-height:none;background:#eef0ea}
.rm-find{position:absolute;top:12px;left:12px;z-index:4;width:min(360px,calc(100% - 70px));background:#fff;border-radius:12px;box-shadow:0 6px 20px rgba(20,35,59,.18);display:flex;align-items:center;gap:8px;padding:0 12px;border:2px solid var(--ink)}
.rm-find input{flex:1;border:0;outline:none;font:600 15px var(--body);padding:11px 0;background:transparent;color:var(--ink);min-width:0}
.rm-find .rs-sug{top:calc(100% + 6px)}
.rm-legend{position:absolute;right:12px;bottom:28px;z-index:2;background:rgba(255,255,255,.94);border-radius:12px;padding:8px 12px;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink);box-shadow:0 4px 14px rgba(20,35,59,.12)}
.rm-legend span{display:flex;align-items:center;gap:8px}.rm-legend b{font-size:12px;color:var(--muted)}
.rm-legend .ln{width:22px;height:5px;border-radius:3px;background:#ff8100;box-shadow:0 0 0 1.5px rgba(58,29,0,.5)}
.rm-legend .dt{width:8px;height:8px;border-radius:50%;background:#fff;border:1.5px solid #14233b;margin:0 7px}.rm-legend .dt-big{width:13px;height:13px;margin:0 4.5px;border-width:2.5px}
@media (max-width:600px){.rmap #map{height:calc(100vh - 150px)}.rm-legend{display:none}.rmap-head{padding:12px 0 10px}.rmap-head h1{font-size:24px}.rmap-head p{display:none}.rmap.map-wrap{margin-top:8px}}
.rm-legend i{flex:none}

/* "Rail home" in the header of every Rail page + the station map cut-out (Jones 2 Nov 04:40). */
.w-head .wrap.has-home{position:relative}
.rail-home{position:absolute;right:20px;top:0;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff;text-decoration:none;font:800 13px var(--body);padding:8px 14px;border-radius:999px}
.rail-home:hover{background:var(--amber);color:var(--ink);border-color:var(--amber)}
.mini-card .hd a{font-weight:800;font-size:13px;color:var(--ink)}
.mini-map{height:360px;background:#e2dfda}
.mini-note{margin:0;padding:10px 18px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--mist,#eef2f6)}
@media (max-width:900px){.rail-home{position:static;margin:0 0 10px}.mini-map{height:280px}}
.mini-box{position:relative}.mini-pop{left:10px;right:10px;bottom:10px;width:auto;max-width:none;padding:12px 14px}

/* Train timeline: one line joining every stop (Jones 2 Nov 04:50). */
.tl .s{position:relative}
.tl .s::before{content:"";position:absolute;left:85px;top:0;bottom:0;width:3px;background:var(--ink)}
.tl .s:first-child::before{top:16px}.tl .s:last-child::before{bottom:auto;height:16px}
.tl .s:only-child::before{display:none}
.tl .dot{position:relative;z-index:1}
.note-y a{color:inherit;font-weight:800;text-decoration:underline}

/* Search page: "At a glance" + the trip map (Jones 2 Nov 04:58). */
.kv .kv-s{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.kv .kv-wide{grid-column:1/-1}
.side-note a{color:var(--ink);font-weight:800}

/* Same station both ends (Jones 2 Nov 05:12): a smile instead of a search. */
.rs-same{grid-column:1/-1;margin:0;background:#fff3d1;border:1px solid #ffd98a;color:#7a5200;border-radius:12px;padding:10px 14px;font-weight:700;font-size:14px}
.rsearch p.rs-same{color:#7a5200;opacity:1}

/* Stations landing (Jones 2 Nov 05:18): list on the left, blocks on the right. */
.nb-btn{width:100%;background:var(--ink);color:#fff;border:0;border-radius:12px;padding:12px;font:800 14px var(--body);cursor:pointer}
.chips-st{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 16px}
.chips-st a{background:var(--mist,#eef2f6);color:var(--ink);text-decoration:none;border-radius:999px;padding:6px 11px;font-weight:700;font-size:13px}
.chips-st a small{margin-left:6px;color:var(--muted);font-weight:700}
.chips-st a:hover{background:var(--ink);color:#fff}
.plan-cta{display:block;text-align:center;background:var(--amber);color:var(--ink);font-weight:800;border-radius:14px;padding:14px;text-decoration:none}

/* Trains page compact flow (Jones 2 Nov 05:25). */
.tf{margin:14px 0 12px;display:flex;flex-direction:column;gap:8px}
.tf-row{display:flex;gap:6px;flex-wrap:wrap}
.tf-row button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 11px;font:700 13px var(--body);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.tf-row button small{color:var(--muted);font-weight:700}
.tf-row button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.tf-row button.on small{color:#c9d3e0}
.tf-row .cat{font-size:11px;padding:2px 6px}
.tf-list .trow{padding-top:9px;padding-bottom:9px}
.tf-list .trow .tt{min-width:54px;font-size:15px}
.tf-more{display:block;width:calc(100% - 36px);margin:10px 18px 16px;border:1px solid var(--ink);background:#fff;color:var(--ink);border-radius:12px;padding:11px;font:800 14px var(--body);cursor:pointer}
.tf-more:hover{background:var(--ink);color:#fff}
@media (max-width:900px){.tf-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}.tf-row button{flex:none}}
.tf-r[hidden],.tf-more[hidden]{display:none}

/* Share card + "shared with you" (Jones 2 Nov 06:03). */
.share-card .sh-body{padding:0 18px 16px}
.sh-go{width:100%;background:var(--amber);color:var(--ink);border:0;border-radius:12px;padding:12px;font:800 14px var(--body);cursor:pointer}
.sh-link{display:flex;gap:6px}.sh-link input{flex:1;min-width:0;border:2px solid var(--ink);border-radius:10px;padding:10px 12px;font:800 16px var(--body);color:var(--ink);background:#fff}
.sh-link button,.sh-acts button,.sh-acts a{background:var(--ink);color:#fff;border:0;border-radius:10px;padding:10px 14px;font:800 13px var(--body);cursor:pointer;text-decoration:none;text-align:center}
.sh-row{display:flex;gap:14px;align-items:center;margin-top:12px}.sh-row img{border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px}
.sh-acts{display:flex;flex-direction:column;gap:8px;flex:1}.sh-acts a{background:#fff;color:var(--ink);border:1px solid var(--ink)}
.sh-err{color:#a3352b;font-weight:700;font-size:13px;margin:8px 0 0}
.shared-note{background:#e9f7ef;border:1px solid #b6e2c6;color:#14532d;border-radius:14px;padding:12px 14px;font-size:14px;margin-bottom:12px}
.shared-note button{background:none;border:0;color:#14233b;font-weight:800;text-decoration:underline;cursor:pointer;padding:0;font-size:14px}

/* Tour fixes (Jones 2 Nov 07:03). Phone: the search form folds into one bar once there are results. */
.rs-bar{display:none}
@media (max-width:900px){
  .rs-fold.folded{display:none}
  .rs-bar{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;background:#fff;color:var(--ink);border:0;border-radius:14px;padding:13px 16px;font:600 14px var(--body);text-align:left;cursor:pointer}
  .rs-bar b{font-weight:800}.rs-bar i{font-style:normal;font-weight:800;white-space:nowrap;color:var(--ink);background:var(--amber);border-radius:999px;padding:5px 11px;font-size:13px}
}
/* Phone: a train row in two clean lines — times + train, then stops · duration. */
@media (max-width:600px){
  .res .trow{display:grid;grid-template-columns:auto auto auto 1fr;grid-template-areas:"a s b c" "n n n d";gap:4px 10px;align-items:center}
  .res .trow>.tt:first-child{grid-area:a}.res .trow>span[style]:not(.cat){grid-area:s}.res .trow>.tt~.tt{grid-area:b}
  .res .trow>.cat{grid-area:c;justify-self:end}.res .trow>.nm{grid-area:n;min-width:0}.res .trow>.dur{grid-area:d;text-align:right}
  .res .trow>.dur b{display:inline;font-size:14px}.res .trow>.dur{font-size:0}.res .trow>.dur b{font-size:14px}
}
.next-day{display:inline-block;margin-top:10px;background:var(--ink);color:#fff;border-radius:10px;padding:9px 14px;font-weight:800;text-decoration:none}
.railway .w-grid{align-items:start}

/* LIVE (Jones 2 Nov 07:57): green on time · amber +3–15 · red over 15 · struck-through cancelled · grey scheduled. */
.lv{display:inline-flex;align-items:center;font:800 11px var(--body);font-style:normal;border-radius:6px;padding:2px 7px;margin-right:6px;vertical-align:middle;white-space:nowrap}
.lv.ok{background:#dcf5e5;color:#11663a}.lv.amb{background:#fff1c7;color:#8a5a00}.lv.red{background:#fde2dd;color:#a3271b}
.lv.x{background:#fde2dd;color:#a3271b;text-decoration:line-through}.lv.sched{background:#eef2f6;color:#526073}
.lv-s{display:block;color:#93a3b8;font-size:11px;text-decoration:line-through;font-family:var(--body)}
.ledr .tm s{color:#93a3b8;font-size:11px;display:block;text-decoration:line-through;text-shadow:none}
.lvb{display:inline-block;font:800 10px var(--body);font-style:normal;border-radius:5px;padding:1px 6px;margin-top:2px;text-shadow:none}
.lvb.amb{background:#ffb000;color:#14233b}.lvb.red{background:#e5484d;color:#fff}.lvb.ok{background:#1e9a4a;color:#fff}.lvb.x{background:#e5484d;color:#fff;text-decoration:line-through}.lvb.sched{background:rgba(255,255,255,.12);color:#c9d3e0}
.livepill{display:inline-flex;align-items:center;gap:6px;font:800 11px var(--body);color:#1e9a4a;letter-spacing:0;text-transform:none}
.livepill i{width:8px;height:8px;border-radius:50%;background:#1e9a4a;box-shadow:0 0 0 3px rgba(30,154,74,.25);animation:lvp 2s infinite}
.ledb .livepill,.livepill.on-dark{color:#7ee2a1}
@keyframes lvp{50%{box-shadow:0 0 0 6px rgba(30,154,74,0)}}
.broken{margin:8px 0 0;background:#fde2dd;color:#a3271b;border-radius:8px;padding:7px 10px;font-weight:800;font-size:12.5px}
.nowbar{background:var(--ink);color:#fff;border-radius:14px;padding:12px 16px;margin-bottom:12px;display:flex;gap:10px 12px;align-items:center;flex-wrap:wrap}
.nowbar b{font-size:15px}.nowbar small{color:#c9d3e0;flex-basis:100%}
.tl .s.past{opacity:.5}

/* Live tracker (Jones 2 Nov 08:43) */
.rail-tops{position:absolute;right:20px;top:0;display:flex;gap:8px}
.rail-tops .rail-home{position:static}
.rail-live{display:inline-flex;align-items:center;gap:7px;background:#1e9a4a;border:1px solid #1e9a4a;color:#fff;text-decoration:none;font:800 13px var(--body);padding:8px 14px;border-radius:999px}
.rail-live:hover{background:#17803d}
.lt-dotp{display:inline-block;width:8px;height:8px;border-radius:50%;background:#7ee2a1;box-shadow:0 0 0 3px rgba(126,226,161,.3);animation:lvp 2s infinite}
.board-links a.bl-live{background:#1e9a4a;border-color:#1e9a4a}
.lt-hero .rail-live{display:none}
@media (max-width:900px){.rail-tops{position:static;margin:0 0 10px;flex-wrap:wrap}.rail-tops .rail-home{margin:0}}
.lt-box{display:flex;gap:8px;margin-top:16px;max-width:620px}
.lt-box input{flex:1;min-width:0;border:0;border-radius:14px;padding:15px 18px;font:800 22px var(--body);color:var(--ink);background:#fff}
.lt-box input::placeholder{font-weight:600;font-size:17px;color:#93a3b8}
.lt-box button{background:var(--amber);color:var(--ink);border:0;border-radius:14px;padding:0 22px;font:800 16px var(--body);cursor:pointer}
.lt-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.lt-chips>span,.lt-chips>a{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:6px 11px;font:700 13px var(--body);color:#fff;text-decoration:none}
.lt-chips b{color:var(--amber)}.lt-chips>a:hover{border-color:var(--amber)}
.lt-recent a{color:var(--amber);font-weight:800;margin-left:2px}
.lt-map{height:360px;background:#eef0ea}
.lt-prog{padding:14px 18px 16px}
.lt-ends{display:flex;justify-content:space-between;gap:10px;align-items:flex-end}
.lt-ends>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.lt-ends small{font-size:12.5px;color:var(--muted)}.lt-ends b{font-size:16px;color:var(--ink)}
.lt-ends .mid{align-items:center;text-align:center}.lt-ends .mid .lv{margin:2px 0 0}
.lt-ends .r{align-items:flex-end;text-align:right}
.lt-ends.sm{font-size:12.5px;color:var(--muted);margin-top:2px}
.lt-s{color:#93a3b8;font-size:12px;font-weight:600;text-decoration:line-through}
.lt-bar{height:10px;background:var(--mist);border-radius:99px;position:relative;margin:18px 0 8px}
.lt-bar i{position:absolute;left:0;top:0;bottom:0;background:#ff8100;border-radius:99px}
.lt-bar b{position:absolute;top:50%;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;background:var(--amber);border:3px solid var(--ink)}
.lt-note{margin:10px 0 0;font-size:13px;color:var(--muted)}
.lt-row{display:grid;grid-template-columns:52px 44px 1fr auto;gap:8px;align-items:center;padding:10px 18px;border-top:1px solid #eef2f6;text-decoration:none;color:var(--ink)}
.lt-row:hover{background:#f7f9fb}.lt-row .tm{font-size:15px}.lt-row .nm b{display:block;font-size:14.5px}.lt-row .nm small{color:var(--muted);font-size:12px}
.lt-kv b{font-size:18px}.lt-kv b.mute{color:var(--muted);font-size:15px}
.lt-ch-h{padding:0 18px 6px;font:800 10.5px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.lt-chart{display:flex;align-items:flex-end;gap:3px;height:60px;padding:0 18px}
.lt-chart i{flex:1;background:var(--amber);border-radius:3px 3px 0 0;min-height:3px}
.lt-ch-l{display:flex;justify-content:space-between;padding:4px 18px 12px;font-size:11.5px;color:var(--muted)}
.lt-tip,.lt-warn{margin:0 18px 12px;border-radius:12px;padding:10px 12px;font-size:13.5px;line-height:1.45}
.lt-tip{background:#e9f7ef;border:1px solid #b6e2c6;color:#14532d}.lt-warn{background:#fde2dd;color:#a3271b}
.lt-train{display:flex;flex-direction:column;align-items:center;pointer-events:none}
.lt-tag{background:var(--ink);color:#fff;font:800 12px var(--body);padding:3px 8px;border-radius:6px;white-space:nowrap;margin-bottom:4px}
.lt-dot{width:18px;height:18px;border-radius:50%;border:3px solid var(--ink);box-shadow:0 0 0 7px rgba(255,176,0,.35);margin-bottom:-9px}
.note-g{background:#e9f7ef;border:1px solid #b6e2c6;color:#14532d;border-radius:12px;padding:10px 14px;font-weight:700}
.railway .row .lv{margin-left:auto}
@media (max-width:900px){.lt-map{height:300px}.lt-box input{font-size:18px}}
#lt-all{height:600px}
@media (max-width:900px){#lt-all{height:340px}}
@media (max-width:900px){.railway .lt-card .hd{flex-wrap:wrap;gap:4px 10px}.railway .lt-card .hd h2{flex-basis:100%}.lt-row{grid-template-columns:46px 38px 1fr auto;padding:10px 14px}}
.railway .hub-right .board-links{gap:5px}.railway .hub-right .board-links a{padding:7px 9px}
.lt-estp{display:inline-block;background:#eef2f6;color:#526073;font:800 11px var(--body);border-radius:6px;padding:2px 7px;margin-left:6px;letter-spacing:0;text-transform:none}
.lt-note.est{background:#fff6dd;border:1px solid #f5d98a;color:#6b4a00;border-radius:10px;padding:8px 12px}
.lt-train.old .lt-dot{background:#c9d3e0!important;box-shadow:0 0 0 7px rgba(147,163,184,.3)}
.lt-train.old .lt-tag{background:#526073}
.lt-train.conf .lt-dot{background:#fff!important;width:16px;height:16px;border-radius:4px;box-shadow:none;margin-bottom:-8px}
.lt-train.conf .lt-tag{background:#1e5a8a}
.lt-bar.off{opacity:.5}
.lv-disc{display:flex;gap:10px;background:#f4f6f9;border:1px solid #d9e0e8;border-radius:12px;padding:10px 14px;font-size:12.5px;line-height:1.45;color:#40506a}
.lv-disc>b{color:#526073;font-size:15px;line-height:1.2}.lv-disc p{margin:0}.lv-disc p+p{margin-top:5px}.lv-disc a{color:#1e5a8a;font-weight:700}
.stack>.lv-disc{margin-top:18px}
.note-r{background:#fde2dd;border:1px solid #f3b3a8;color:#a3271b;border-radius:12px;padding:10px 14px;font-weight:700}
/* Влакове with live (Jones 4 Nov 17:09, as the apps' T1/T2) */
.rseg{display:flex;background:#e6ebf1;border-radius:999px;padding:3px;margin:12px 0}
.rseg button{flex:1;border:0;background:none;border-radius:999px;padding:9px 6px;font:800 13px var(--body);color:var(--muted);cursor:pointer;display:flex;gap:6px;align-items:center;justify-content:center}
.rseg button.on{background:var(--ink);color:#fff}
.rkpi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.rkpi button{background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px 12px;text-align:left;font:700 11px var(--body);color:var(--muted);cursor:pointer}
.rkpi button.on{border:2px solid var(--ink)}.rkpi b{display:block;font:800 22px var(--display);color:var(--ink)}.rkpi b.late{color:#c0352b}.rkpi b.ok{color:#1e9a4a}
.rlive{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px 14px;margin-bottom:8px;color:var(--ink);text-decoration:none}
.rlive:hover{border-color:var(--ink)}
.rl-top{display:flex;gap:8px;align-items:center}.rl-top .nm{flex:1;min-width:0}.rl-top .nm b{display:block;font:800 14px var(--body)}.rl-top .nm small{color:var(--muted);font-size:12px}
.rl-bar{height:6px;border-radius:3px;background:#eef2f6;margin-top:8px;position:relative;overflow:hidden}.rl-bar i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#ff8100,#ffb000)}
.rl-ab{display:flex;justify-content:space-between;font:700 11px var(--body);color:#93a3b8;margin-top:4px}
.rl-where{font:700 12.5px var(--body);margin-top:6px}.rl-where em{font-style:normal;color:#1e9a4a}
.rin{margin-left:auto;background:#eef2f6;border-radius:8px;padding:3px 8px;font:800 12px var(--body);color:var(--muted);white-space:nowrap}
/* Заминаващи (Jones 4 Nov 17:09, as the apps' D1/D2) */
.dp-body{max-width:860px;margin:18px auto 60px}
.dp-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.dp-chips button,.dp-chips [data-recent] button{border:1px solid #d3dbe5;background:#fff;border-radius:999px;padding:7px 12px;font:700 13px var(--body);cursor:pointer;color:var(--ink)}
.dp-chips [data-recent]{display:contents}.dp-chips .on{background:var(--ink);color:#fff;border-color:var(--ink)}
.dp-pick{margin-bottom:10px}.dp-pick input{width:100%;font:600 15px var(--body);padding:11px 13px;border:2px solid var(--ink);border-radius:12px}
.dp-res{display:grid;gap:4px;margin-top:6px}.dp-res button{display:flex;gap:8px;align-items:baseline;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px;cursor:pointer}.dp-res small{color:var(--muted)}
.dp-board{background:#0b1424;border-radius:20px;color:#fff;padding:16px}
.dp-top{display:flex;justify-content:space-between;align-items:flex-start}.dp-top b{font:800 22px var(--display)}.dp-top small{display:block;color:#93a3b8;font:600 12px var(--body)}.dp-top time{color:#ffb000;font:800 28px var(--display)}
.dp-top .livepill{margin-top:6px;display:inline-flex}
.dp-seg{display:flex;background:#1c2738;border-radius:12px;padding:3px;margin:12px 0 8px}.dp-seg a{flex:1;text-align:center;padding:8px;border-radius:9px;font:800 13px var(--body);color:#c9d3e0;text-decoration:none}.dp-seg a.on{background:#ffb000;color:var(--ink)}
.dp-dirs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.dp-dirs a{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:5px 10px;font:700 12px var(--body);color:#c9d3e0;text-decoration:none}.dp-dirs a.on{background:#fff;color:var(--ink)}
.dp-hd,.dp-r{display:grid;grid-template-columns:70px 1fr 110px;gap:8px;align-items:center}
.dp-hd{font:800 10px var(--body);letter-spacing:.14em;color:#6f7f96;padding:8px 0 4px;text-transform:uppercase}.dp-hd span:last-child{text-align:right}
.dp-r{padding:9px 0;border-top:1px dashed rgba(255,255,255,.1);color:#fff;text-decoration:none}
.dp-r .tm{font:800 16px var(--display)}.dp-r .tm.late{color:#ff7a6e}.dp-r .tm s{display:block;font:600 11px var(--body);color:#6f7f96}
.dp-r .d b{font:700 15px var(--body)}.dp-r .d small{display:block;color:#93a3b8;font-size:12px}.dp-r .d em{display:block;font-style:normal;font:600 12px var(--body);color:#8fd3a8;margin-top:3px}
.dp-r .st{text-align:right}.dp-r .st b{display:block;font:800 13px var(--body)}.dp-r .st small{color:#c9d3e0;font-size:11.5px}
.dp-r .ok{color:#5fe08d}.dp-r .red{color:#ff7a6e}.dp-r .amb{color:#ffb000}.dp-r .x{color:#ff7a6e;text-decoration:line-through}
.dp-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font:600 12px var(--body);color:#93a3b8}.dp-foot a{background:#ffb000;color:var(--ink);border-radius:9px;padding:7px 11px;font:800 12px var(--body);text-decoration:none}
.dp-none{color:#c9d3e0;padding:12px 0}
@media (max-width:560px){.dp-hd,.dp-r{grid-template-columns:58px 1fr 92px}}
/* train page live (Jones 4 Nov 17:09, as the apps' TR1) */
.tstat{border-radius:18px;padding:14px 16px;color:#fff;margin-bottom:12px}
.tstat.red{background:linear-gradient(135deg,#7d1d16,#c0352b)}.tstat.amb{background:linear-gradient(135deg,#8a5a00,#d08a00)}.tstat.ok{background:linear-gradient(135deg,#0f5132,#1e9a4a)}
.ts-a{display:flex;justify-content:space-between;align-items:center}.ts-a b{font:800 24px var(--display)}.ts-a span{display:inline-flex;gap:6px;align-items:center;font:800 11px var(--body);letter-spacing:.12em;background:rgba(255,255,255,.18);border-radius:999px;padding:4px 9px}
.ts-a span i{width:7px;height:7px;border-radius:50%;background:#fff}
.tstat p{margin:6px 0 0;font:600 14px var(--body)}
.ts-bar{height:6px;border-radius:3px;background:rgba(255,255,255,.25);margin-top:10px;position:relative;overflow:hidden}.ts-bar i{position:absolute;left:0;top:0;bottom:0;background:#ffb000}
.ts-ab{display:flex;justify-content:space-between;font:700 11.5px var(--body);opacity:.9;margin-top:5px}
.tl .s.past::before{background:var(--amber)}.tl .s.past .dot{background:var(--amber);border-color:var(--amber)}
.tl .s.past:not(.lower)::before{background:linear-gradient(var(--amber) 50%,#cfd7e1 50%)}
.tl .s:not(.past)::before{background:#9fb0c2}
.tl .s.here{display:grid;grid-template-columns:70px 22px 1fr;gap:10px;align-items:center;padding:8px 0;position:relative}
.tl .s.here::before{content:"";position:absolute;left:85px;top:0;bottom:0;width:3px;background:linear-gradient(var(--amber) 50%,#cfd7e1 50%)}
.tl .s.here .tr{position:relative;z-index:1;width:28px;height:28px;margin-left:-4px;border-radius:50%;background:#0b1424;display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 0 0 5px rgba(30,154,74,.25)}
.tl .s.here b{color:#1e9a4a}
.tl .s.past{opacity:1}.tl .s.past b{color:#93a3b8}
.tr-mk{width:28px;height:28px;border-radius:50%;background:#0b1424;display:flex;align-items:center;justify-content:center;font-size:14px;box-shadow:0 0 0 6px rgba(30,154,74,.3)}

/* Motion on the Live Tracker (Jones 6 Nov 22:54): the train glides along the track; focus = opened from a QR / shared link */
.lt-train.mv .lt-dot{animation:cl-pulse 2s ease-in-out infinite}
.railway .cl-mode{padding:12px 18px 4px}.lt-mhint{padding:0 18px 12px;margin:0;font-size:13px;color:#4a5568}
.cl-focus .lt-hero,.cl-focus .rail-banner{display:none}
.cl-focus .note-g.cl-shared{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cl-focus #lt-train{height:calc(100dvh - 260px)!important;min-height:340px}
/* ⟲ Way Back for trains (Jones 6 Nov 23:06): landing — days, the honest numbers, every train with points */
.wbr-days{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.wbr-days a{padding:8px 13px;border-radius:12px;border:1px solid rgba(255,255,255,.22);color:#fff;font:700 13px var(--body);text-decoration:none}
.wbr-days a.on{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.wbr-big{background:var(--amber);color:var(--ink)!important;font:800 13.5px var(--body);padding:9px 14px;border-radius:12px;text-decoration:none;white-space:nowrap}
.wbr-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:6px 18px 4px}
.wbr-sum div{background:#f4f6f9;border-radius:12px;padding:10px 8px;text-align:center}
.wbr-sum b{display:block;font:900 22px var(--body);color:var(--ink);font-variant-numeric:tabular-nums}.wbr-sum small{font:700 11.5px var(--body);color:#5b6b80}
.wbr-sum .ok b{color:#1e9a4a}.wbr-sum .amb b{color:#b07800}.wbr-sum .off b{color:#8a96a8}
.wbr-find{padding:4px 18px 10px}.wbr-find input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #d9e0e8;border-radius:12px;font:600 15px var(--body)}
.wbr-row{text-decoration:none;color:inherit}
.wbr-go{width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font:900 12px var(--body);flex:none}
.wbr-nums{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 14px}.wbr-nums span{background:#f4f6f9;border-radius:8px;padding:3px 8px;font:700 12.5px var(--body);color:#5b6b80}
@media (max-width:520px){.wbr-sum{grid-template-columns:repeat(2,1fr)}.wbr-play .hd{flex-wrap:wrap;gap:8px}}
.wbr-card{display:block;text-decoration:none;color:inherit}.wbr-card .hd span{background:#ff8100;color:#fff;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-size:12px}
.wbr-days a.pre{border-style:dashed}.wbr-wait{display:grid;gap:12px;margin-top:18px}.wbr-pre{margin-top:14px}

/* ⟲ Way Back links across Rail (Jones 7 Nov 05:41) */
.board-links a.bl-wb{background:#ff8100;border-color:#ff8100;color:#fff}
.rail-wb{display:inline-flex;align-items:center;gap:6px;background:#ff8100;border:1px solid #ff8100;color:#fff;text-decoration:none;font:800 13px var(--body);padding:8px 14px;border-radius:999px}
.rail-wb:hover{background:#e67300}
.wbr-hero .rail-wb{display:none}

/* Way Back train list: Grid (default) | List (Jones 7 Nov 05:55) */
.wbr-n{font:700 13px var(--body);color:#8a96a8;margin-left:4px}
.wbr-view{display:flex;border:1px solid #d9e0e8;border-radius:10px;overflow:hidden}
.wbr-view button{border:0;background:#fff;color:#5b6b80;font:700 16px var(--body);width:38px;height:34px;cursor:pointer}
.wbr-view button+button{border-left:1px solid #d9e0e8}.wbr-view button.on{background:var(--ink);color:#fff}
.wbr-list.list .wbr-row{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--mist)}
.wbr-list.list .wbr-row:hover{background:#f8fafc}.wbr-list.list .nm{flex:1;min-width:0}
.wbr-list.list .nm small{display:block}
.wbr-list.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;padding:2px 14px 16px}
.wbr-list.grid .wbr-row{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px 12px 10px;border:1px solid #e3e8ef;border-radius:14px;background:#fff}
.wbr-list.grid .wbr-row:hover{border-color:#ff8100;box-shadow:0 4px 14px rgba(20,35,59,.08)}
.wbr-list.grid .cat{align-self:flex-start}
.wbr-list.grid .nm{display:flex;flex-direction:column;gap:3px;min-width:0}
.wbr-list.grid .nm b{font-size:13.5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wbr-list.grid .nm small{font-size:12px;color:#5b6b80}.wbr-list.grid .nm .pts,.wbr-list.grid .nm .en{display:none}
.wbr-list.grid .lv{position:absolute;right:10px;bottom:9px}
.wbr-list.grid .wbr-go{position:absolute;right:10px;top:10px;width:28px;height:28px;font-size:10px}
.wbr-list .wbr-row[hidden]{display:none!important}
@media (max-width:520px){.wbr-list.grid{grid-template-columns:repeat(2,1fr);gap:8px;padding:2px 10px 14px}}

/* "Сега" close-up (Jones 8 Nov 19:58): only the stretch the train is on, shown with ▶ Движение */
.lt-near,.railway .lt-zoom{display:none}
.lt-motion .lt-near{display:block}.lt-motion .railway .lt-zoom,.lt-motion.railway .lt-zoom{display:flex}
.railway .lt-zoom{padding:0 18px 8px}
.lt-near{margin:14px 0 4px;padding:12px 14px;border:1px solid var(--line,#e2e8f0);border-radius:12px;background:#fff8ec}
.lt-near-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.lt-near-h small{width:100%;font-size:11px;font-weight:800;letter-spacing:.06em;color:#8a5a00}
.lt-near-h .en{color:#4a5568;font-size:13px}.lt-near-m{width:100%;font-size:13px;color:#4a5568}.lt-near-m i{font-style:normal;font-weight:800;color:#14233b}
.lt-near-bar .tr{height:10px;background:var(--mist);border-radius:99px;position:relative;margin:22px 4px 10px}
.lt-near-bar .tr i{position:absolute;left:0;top:0;bottom:0;background:#ff8100;border-radius:99px}
.lt-near-bar .tr b{position:absolute;top:50%;transform:translate(-50%,-60%);font-size:24px;line-height:1}
.lt-near .lt-ends span small{display:block;font-weight:400}
