/*! Tailwind CSS preflight — MIT License, Copyright (c) Tailwind Labs, Inc. */
@layer base{
/*
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
  2. Remove default margins and padding
  3. Reset all borders.
*/

*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 2 */
  border: 0 solid; /* 3 */
}

/*
  1. Use a consistent sensible line-height in all browsers.
  2. Prevent adjustments of font size after orientation changes in iOS.
  3. Use a more readable tab size.
  4. Use the user's configured `sans` font-family by default.
  5. Use the user's configured `sans` font-feature-settings by default.
  6. Use the user's configured `sans` font-variation-settings by default.
  7. Disable tap highlights on iOS.
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
  font-family: --theme(
    --default-font-family,
    ui-sans-serif,
    system-ui,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji',
    'Segoe UI Symbol',
    'Noto Color Emoji'
  ); /* 4 */
  font-feature-settings: --theme(--default-font-feature-settings, normal); /* 5 */
  font-variation-settings: --theme(--default-font-variation-settings, normal); /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
  1. Add the correct height in Firefox.
  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
  3. Reset the default border style to a 1px solid border.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
  Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
  Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
  Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

/*
  Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
  1. Use the user's configured `mono` font-family by default.
  2. Use the user's configured `mono` font-feature-settings by default.
  3. Use the user's configured `mono` font-variation-settings by default.
  4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: --theme(
    --default-mono-font-family,
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    'Liberation Mono',
    'Courier New',
    monospace
  ); /* 1 */
  font-feature-settings: --theme(--default-mono-font-feature-settings, normal); /* 2 */
  font-variation-settings: --theme(--default-mono-font-variation-settings, normal); /* 3 */
  font-size: 1em; /* 4 */
}

/*
  Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
  3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
  Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
  Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
  Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
  Make lists unstyled by default.
*/

ol,
ul,
menu {
  list-style: none;
}

/*
  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
      This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/*
  1. Inherit font styles in all browsers.
  2. Remove border radius in all browsers.
  3. Remove background color in all browsers.
  4. Ensure consistent opacity for disabled states in all browsers.
*/

button,
input,
select,
optgroup,
textarea,
::file-selector-button {
  font: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  border-radius: 0; /* 2 */
  background-color: transparent; /* 3 */
  opacity: 1; /* 4 */
}

/*
  Restore default font weight.
*/

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

/*
  Restore indentation.
*/

:where(select:is([multiple], [size])) optgroup option {
  padding-inline-start: 20px;
}

/*
  Restore space after button.
*/

::file-selector-button {
  margin-inline-end: 4px;
}

/*
  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
*/

::placeholder {
  opacity: 1;
}

/*
  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
*/

@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }
}

/*
  Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
  Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
  1. Ensure date/time inputs have the same height when empty in iOS Safari.
  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
*/

::-webkit-date-and-time-value {
  min-height: 1lh; /* 1 */
  text-align: inherit; /* 2 */
}

/*
  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
*/

::-webkit-datetime-edit {
  display: inline-flex;
}

/*
  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
*/

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-millisecond-field,
::-webkit-datetime-edit-meridiem-field {
  padding-block: 0;
}

/*
  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
*/

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

/*
  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
  Correct the inability to style the border radius in iOS Safari.
*/

button,
input:where([type='button'], [type='reset'], [type='submit']),
::file-selector-button {
  appearance: button;
}

/*
  Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
  Make elements with the HTML hidden attribute stay hidden by default.
*/

[hidden]:where(:not([hidden='until-found'])) {
  display: none !important;
}
*,::after,::before{border-color:#e5e5e5}}

/* Premium design (owner-supplied reference, components/tracker.css), fonts loaded in the page head */
:root{--green:#087758;--ink:#173438;--muted:#667b80;--line:#e1e8e8;--soft:#f4f7f8}*{box-sizing:border-box}body{margin:0;font-family:Inter,'Hind Siliguri',sans-serif;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #42bd96;outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:2.45rem;letter-spacing:-1.3px;font-weight:750;line-height:1.18}h2{font-size:1.2rem;letter-spacing:-.4px;font-weight:700}h3{font-size:1.02rem;font-weight:650}small{font-size:0.8rem}svg{flex-shrink:0}.muted{color:var(--muted)}.eyebrow{font-size:0.75rem;letter-spacing:1.5px;font-weight:700;color:var(--green);display:block;margin-bottom:9px}.site-header{height:88px;background:#063c34;color:white}.header-inner{max-width:1320px;height:100%;margin:auto;padding:0 42px;display:flex;align-items:center;gap:46px}.brand{display:flex;align-items:center;gap:11px;font-size:1.45rem;font-weight:750;line-height:1.1;white-space:nowrap;letter-spacing:-.8px}.brand-symbol{width:43px;height:45px;border-radius:12px;background:#0c6b54;display:grid;place-items:center;color:#b1f1d5}.brand-light{font-weight:450;color:#d0e7df}.brand small{display:block;font-size:0.75rem;letter-spacing:2.8px;font-weight:600;margin-top:6px;color:#99bfb3}.top-nav{display:flex;align-items:center;gap:27px;flex:1;height:100%;font-size:0.89rem;font-weight:500}.top-nav a{position:relative;display:flex;height:100%;align-items:center;color:#b9d2cc}.top-nav a:hover{color:white}.top-nav a.active{color:white}.top-nav a.active:after{content:'';height:3px;background:#73e6b4;position:absolute;bottom:0;left:0;right:0;border-radius:4px}.header-actions{display:flex;gap:18px;align-items:center;font-size:0.85rem}.language,.sms-nav{display:flex;gap:7px;align-items:center;white-space:nowrap}.sms-nav{border:1px solid #447268;border-radius:8px;padding:10px 13px}.mobile-menu{display:none}.workspace{max-width:1320px;margin:auto;padding:35px 42px 45px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-bottom:27px}.page-heading p{color:var(--muted);margin-top:11px;font-size:0.96rem}.feed-status{display:flex;align-items:center;gap:12px;color:var(--green);font-size:0.88rem;background:#e9f4ee;border:1px solid #d2e8dc;padding:11px 15px;border-radius:10px;white-space:nowrap}.feed-status span{font-weight:650}.feed-status small{display:block;color:#6b8279;font-size:0.75rem;font-weight:400;margin-top:1px}.feed-status button{border:0;background:transparent;padding:6px;color:var(--green)}.search-panel{padding:17px 22px 14px;background:white;border:1px solid var(--line);border-radius:13px;margin-bottom:25px;box-shadow:0 4px 16px #102a2310}.search-tabs[data-slot]{background:none;padding:0;gap:25px;height:37px;border-radius:0;margin-bottom:10px;align-self:flex-start}.search-tabs [data-slot=tabs-trigger]{color:var(--muted);border-radius:0;font-size:0.87rem;padding:0 0 10px;gap:7px;background:transparent!important;box-shadow:none!important;height:100%;border:0;border-bottom:2px solid transparent}.search-tabs [data-slot=tabs-trigger][data-state=active]{color:var(--green);border-bottom-color:var(--green)}.train-search{display:flex;align-items:center;gap:14px;border:1px solid #d6e1de;border-radius:9px;height:60px;padding:7px 7px 7px 17px;color:#8d9d9c;background:#fbfdfc}.train-search input{flex:1;width:0;min-width:0;background:transparent;outline:none!important;color:var(--ink);border:none;font-size:1rem}.train-search input::placeholder{color:#82938f}.train-search>button:not(.primary){padding:5px;border:0;background:transparent;color:var(--muted)}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:8px;background:var(--green);color:white;font-size:0.9rem;font-weight:600;padding:13px 20px;min-height:45px}.primary:hover{background:#075c45}.secondary{background:white;border:1px solid #d5e1dd;color:var(--ink)}.full{width:100%}.popular-chips{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;font-size:0.76rem;color:var(--muted)}.popular-chips>span{margin-right:4px}.popular-chips a{background:#f3f6f5;padding:4px 10px;border-radius:5px;color:#506d62}.popular-chips a:hover{background:#e6f2eb}.popular-chips a span{color:#8faba0;margin:0 4px}.tracking-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:23px}.map-surface{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden;min-width:0}.map-toolbar{padding:16px 21px;display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.map-toolbar .eyebrow{font-size:0.75rem;color:#7e928b;letter-spacing:1.2px;margin-bottom:2px}.map-toolbar h3{font-size:1rem}.source-select[data-slot]{width:166px;height:35px;font-size:0.76rem;color:#476458;border-color:#d9e4df;box-shadow:none}.map-canvas{height:421px;background:#eff5f3;position:relative;overflow:hidden}.map-canvas>svg{height:100%;width:100%;touch-action:none;cursor:grab;background:radial-gradient(#ceded6 .6px,transparent .6px);background-size:12px 12px}.map-canvas>svg:active{cursor:grabbing}.map-canvas>svg g[role=button]{cursor:pointer}.map-canvas>svg g[role=button]:focus{outline:none;filter:drop-shadow(0 0 5px #174b3e)}.map-city{fill:#4d7161;font-size:12px;font-weight:500;paint-order:stroke;stroke:#eff5f3;stroke-width:4px;stroke-linejoin:round}.map-context{position:absolute;bottom:18px;left:18px;display:flex;align-items:center;gap:10px;background:#ffffffeb;border:1px solid #dce7e1;border-radius:9px;padding:10px 14px;box-shadow:0 3px 12px #0d33220a}.map-context-icon{color:var(--green)}.map-context strong{display:block;font-size:0.77rem}.map-context small{display:block;font-size:0.75rem;color:var(--muted);margin-top:1px}.map-controls{position:absolute;right:17px;bottom:18px;display:grid;gap:5px}.map-controls button{width:35px;height:35px;display:grid;place-items:center;background:white;color:#426255;border:1px solid #d5e4db;border-radius:7px;box-shadow:0 2px 5px #153e2010}.map-legend{padding:12px 17px;display:flex;align-items:center;flex-wrap:wrap;gap:14px;color:#6a7e74;font-size:0.75rem}.map-legend>span{display:flex;align-items:center;gap:5px}.map-legend i{height:7px;width:7px;border-radius:50%;display:inline-block}.legend-gps{background:#18784f}.legend-report{background:#2563eb}.legend-est{background:#cb8120}.map-legend>small{margin-left:auto;font-size:0.75rem}.map-message{position:absolute;top:20px;left:50%;transform:translateX(-50%);width:max-content;max-width:90%;background:white;padding:10px 14px;font-size:0.86rem;border-radius:7px;box-shadow:0 2px 10px #0001;color:var(--muted)}.selected-panel{background:white;border:1px solid var(--line);border-radius:13px;padding:23px;min-width:0}.panel-label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:0.75rem;letter-spacing:.8px;font-weight:650;margin-bottom:18px}.panel-label span{margin-left:auto;font-size:0.76rem;letter-spacing:0;color:var(--green);background:#eff7f2;border-radius:4px;padding:2px 5px}.selected-panel h2{font-size:1.4rem;line-height:1.25;margin-bottom:5px}.selected-panel>p{font-size:0.86rem;margin-bottom:12px}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:5px;padding:3px 6px;font-size:0.75rem;font-weight:550;white-space:nowrap}.estimate{background:#fff3de;color:#926120}.gps{background:#e2f5e9;color:#13713e}.report{background:#e6f0fe;color:#1c60b5}.stale{background:#fceae7;color:#a63722}.location-readout{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin:18px 0 17px}.location-readout small{font-size:0.75rem;letter-spacing:1px;font-weight:600;color:#83938b;display:block;margin-bottom:5px}.location-readout strong{font-size:1.07rem;color:var(--green)}.location-readout p{color:var(--muted);font-size:0.77rem;line-height:1.5;margin-top:6px}.journey-times{display:flex;align-items:center;justify-content:space-between;gap:8px}.journey-times>div{min-width:0}.journey-times>div:last-child{text-align:right}.journey-times small{color:#85948d;font-size:0.75rem;display:block}.journey-times strong{display:block;font-size:1.45rem;letter-spacing:-1px;line-height:1.4}.journey-times div>span{font-size:0.75rem;color:var(--muted);display:block}.journey-rail{color:#a5c0b3;font-size:1.4rem}.journey-progress[data-slot]{height:4px;margin-top:18px;background:#e8f0eb}.journey-progress [data-slot=progress-indicator]{background:var(--green)}.progress-caption{display:flex;justify-content:space-between;font-size:0.75rem;color:#84968b;margin:6px 0 18px}.selected-panel>.primary{margin-top:18px;font-size:0.83rem}.progress-caption+.primary{margin-top:0}.passenger-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}.passenger-actions button{background:transparent;border:1px solid #dce6e1;border-radius:7px;display:flex;align-items:center;justify-content:center;gap:6px;flex-direction:column;font-size:0.75rem;color:#597368;padding:8px 3px;min-height:51px}.passenger-actions button:hover{background:#eff8f3}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 15px}.section-heading h2{display:flex;align-items:center;gap:9px}.section-heading>a{display:flex;align-items:center;gap:4px;font-size:0.8rem;color:var(--green);font-weight:550}.section-heading>span{font-size:0.82rem;color:var(--muted)}.count{border-radius:6px;padding:2px 7px;background:#e8efec;font-size:0.75rem;letter-spacing:0;color:#587667}.train-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.train-card{padding:20px;background:white;border:1px solid var(--line);border-radius:10px;transition:box-shadow .2s,border-color .2s;min-width:0}.train-card:hover{border-color:#a8cbbc;box-shadow:0 4px 16px #174d2810}.train-card-top{display:flex;gap:9px;align-items:center}.train-number{font-size:0.75rem;font-weight:700;background:#edf4f0;color:#36775d;padding:4px 7px;border-radius:5px;display:inline-block;min-width:36px;text-align:center;white-space:nowrap}.train-card-top strong{font-size:0.93rem;line-height:1.4}.train-card-top>svg{margin-left:auto;color:#a7b7b2}.train-dest{font-size:0.8rem;color:var(--muted);margin:12px 0 13px}.train-dest>span{margin:0 7px;color:#9ab0a6}.train-meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;font-size:0.75rem}.train-meta>span:first-child{display:flex;align-items:center;gap:5px;color:#70857a}.train-card-bottom{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #eef1ef;margin-top:13px;padding-top:10px;font-size:0.75rem;color:#80958a}.bottom-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:23px;margin-top:28px}.popular-panel{background:white;border:1px solid var(--line);border-radius:11px;padding:21px}.popular-panel>.section-heading{margin:0 0 19px}.popular-route-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.popular-route-grid>a{display:flex;align-items:center;gap:10px}.route-icon{background:#f0f7f3;border-radius:9px;padding:11px;color:#408366}.popular-route-grid strong{font-size:0.85rem;display:block}.popular-route-grid small{font-size:0.75rem;color:var(--muted);display:block;margin-top:3px}.popular-route-grid>a>svg{margin-left:auto;color:#91a79c}.sms-panel{background:#e2f0e8;border:1px solid #d2e6d9;border-radius:11px;padding:21px 25px;position:relative}.sms-panel h2{font-size:1.15rem;margin-top:6px}.sms-panel p{color:#658171;font-size:0.8rem;margin:7px 0 15px}.sms-icon{position:absolute;top:22px;right:22px;color:#519570}.sms-code{display:flex;align-items:center;gap:12px;font-size:0.8rem;color:#6d8577}.sms-code code{background:#fff;border:1px solid #ccdfd3;padding:6px 12px;border-radius:6px;color:#316048;font-weight:650;letter-spacing:1px}.sms-code strong{font-size:1.2rem;color:#245c41;letter-spacing:.5px}.sms-panel>small{display:block;color:#66826f;font-size:0.75rem;margin-top:12px}.site-footer{max-width:1236px;margin:0 auto;padding:24px 0 30px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}.footer-brand{display:flex;align-items:center;gap:9px;color:#477465;font-size:0.88rem}.footer-brand>span{font-size:0.75rem;color:#91a299;margin-left:12px}.footer-links{display:flex;gap:22px;color:#667f74;font-size:0.75rem}.site-footer>p{font-size:0.75rem;line-height:1.8;color:#8a9b92;width:100%;max-width:1000px}.bottom-nav{display:none}.route-search{display:flex;align-items:stretch;gap:12px}.station-picker{display:flex;align-items:center;gap:10px;border:1px solid #d6e1de;background:#fbfdfc;border-radius:8px;padding:8px 12px;text-align:left;color:#6b8579;flex:1;min-width:0}.station-picker>span{flex:1;min-width:0}.station-picker small{display:block;font-size:0.75rem;color:#899b91}.station-picker strong{display:block;color:var(--ink);font-size:0.94rem;font-weight:550;overflow-wrap:anywhere}.station-popover{width:280px;padding:0!important}.station-popover [data-slot=command-item]{font-size:0.9rem;justify-content:space-between}.swap{border:1px solid var(--line);border-radius:7px;background:white;color:#728d7f;align-self:center;flex-shrink:0;width:34px;height:34px;display:grid;place-items:center}.date-field{display:flex;flex-direction:column;justify-content:center;border:1px solid #d6e1de;border-radius:8px;padding:7px 10px;max-width:185px;min-width:150px}.date-field small{color:#899b91;font-size:0.75rem}.date-field input{background:transparent;border:0;font-size:0.88rem;color:var(--ink);max-width:100%;min-width:0}.route-search>.primary{white-space:nowrap}.route-search-panel{background:white;border:1px solid var(--line);border-radius:12px;padding:22px}.directory-tools{display:flex;align-items:center;gap:15px;margin-bottom:23px}.directory-search{display:flex;gap:12px;align-items:center;padding:13px 17px;border:1px solid var(--line);background:white;border-radius:9px;flex:1;color:#82958c}.directory-search input{border:none;outline:none!important;background:transparent;width:100%;color:var(--ink)}.directory-tools [data-slot=select-trigger]{width:190px;height:51px;background:white;font-size:0.85rem}.directory-tools>span{font-size:0.8rem;white-space:nowrap;color:var(--muted)}.standalone{max-width:540px;margin-bottom:25px}.station-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.station-grid>a{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:white;border-radius:10px;padding:18px}.station-grid strong{font-size:0.94rem;display:block}.station-grid small{display:block;color:var(--muted);font-size:0.75rem;margin-top:4px}.station-grid>a>svg{margin-left:auto;color:#9fb4a9}.station-icon{background:#ecf5f0;color:#508f72;border-radius:10px;padding:10px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:70px 25px;background:white;border:1px solid var(--line);border-radius:12px;margin:20px 0}.empty>svg{color:#91b3a3}.empty p{color:var(--muted)}.compact-empty{padding:30px;color:var(--muted);font-size:0.9rem}.route-results{display:grid;gap:12px}.route-result{display:flex;align-items:center;gap:24px;background:white;border:1px solid var(--line);border-radius:10px;padding:21px 25px}.route-result:hover{border-color:#a9cabb}.route-train{flex:1;display:grid;grid-template-columns:auto 1fr;gap:5px 10px;align-items:center}.route-train strong{font-size:0.99rem}.route-train small{grid-column:2;font-size:0.75rem;color:var(--muted)}.route-time{min-width:115px}.route-time strong{display:block;font-size:1.25rem;letter-spacing:-.5px;font-weight:650}.route-time span,.route-time>small{font-size:0.75rem;display:block;color:var(--muted)}.route-time span>small{color:#a17025}.route-duration{width:150px;text-align:center;color:#6f887a;font-size:0.77rem}.route-duration>div{height:1px;background:#d1e3d8;margin:6px 0;position:relative}.route-duration>div:before,.route-duration>div:after{content:'';width:5px;height:5px;border:1px solid #9bbbAA;border-radius:50%;position:absolute;left:0;top:-2px;background:white}.route-duration>div:after{left:auto;right:0}.route-duration small{font-size:0.75rem;color:#8ba395}.route-directory{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.route-directory>a{padding:25px;background:white;border:1px solid var(--line);border-radius:11px;position:relative}.route-directory>a>svg:first-child{color:#3c8969;margin-bottom:17px}.route-directory h2{font-size:1.1rem}.route-directory p{font-size:0.8rem;color:var(--muted);margin-top:9px}.route-directory>a>svg:last-child{position:absolute;top:25px;right:22px;color:#86a995}.breadcrumbs{display:flex;align-items:center;gap:7px;color:#7b9287;font-size:0.79rem;margin-bottom:22px}.breadcrumbs a{color:var(--green)}.detail-facts{display:grid;grid-template-columns:repeat(5,1fr);background:white;border:1px solid var(--line);border-radius:12px;padding:24px;margin-bottom:24px}.detail-facts>div{border-right:1px solid var(--line);padding:0 24px;position:relative}.detail-facts>div:first-child{padding-left:10px}.detail-facts>div:last-child{border:0}.detail-facts svg{height:18px;width:18px;color:#83a392;float:right;margin-top:4px}.detail-facts small{display:block;color:var(--muted);font-size:0.76rem}.detail-facts strong{display:block;font-size:1.45rem;margin-top:5px;letter-spacing:-.5px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:25px}.timetable-panel{background:white;border:1px solid var(--line);border-radius:12px;padding:25px;align-self:start}.timetable-panel>.section-heading{margin:0 0 20px}.timetable-header{display:grid;grid-template-columns:1fr 100px 100px;color:#91a096;font-size:0.75rem;margin:0 0 14px;padding-left:28px}.timetable-row{display:grid;grid-template-columns:20px 1fr 100px 100px;position:relative;gap:7px;align-items:center;min-height:76px;border-top:1px solid #eef2ef}.timetable-row strong{font-size:0.94rem;font-weight:600}.timetable-row small{display:block;color:#84998c;font-size:0.75rem;margin-top:4px}.timetable-row>span:not(.timeline-dot){font-size:0.92rem;color:#456959}.timeline-dot{width:10px;height:10px;border:2px solid #a6c6b5;border-radius:50%;position:relative;margin-left:3px;z-index:1;background:white}.timetable-row:not(:last-child):before{content:'';position:absolute;left:7px;top:50%;height:76px;width:2px;background:#e1ece6}.timetable-row:first-of-type .timeline-dot,.timetable-row:last-child .timeline-dot{border-color:var(--green);background:var(--green)}.next-stop{background:#f0f7f3;margin:0 -12px;padding:0 12px;border-radius:8px}.next-stop:before{left:19px!important}.next-stop .timeline-dot{background:#d38b29;border-color:#d38b29}.info-card{background:#e8f2eb;border:1px solid #d3e5d9;border-radius:11px;padding:23px;margin-top:20px;color:#456e54}.info-card>svg{margin-bottom:10px}.info-card h3{margin-bottom:10px}.info-card p{font-size:0.82rem;line-height:1.7;color:#678675}.info-card a{font-size:0.79rem;display:flex;gap:4px;align-items:center;margin-top:14px;color:var(--green);font-weight:550}.guide-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:45px;margin:25px auto;max-width:1050px}.guide-main{padding:32px;background:white;border:1px solid var(--line);border-radius:13px}.guide-main .lead{font-size:1.04rem;color:var(--muted);line-height:1.8;margin:20px 0 25px}.guide-main>p{color:var(--muted);line-height:1.8;margin:15px 0 25px}.guide-main>h2{margin-top:30px}.guide-main>a:not(.primary){color:var(--green)}.large-sms{padding:22px;background:#e7f3ec;border-radius:9px;display:flex;align-items:center;gap:20px;color:#387558;margin-bottom:28px;flex-wrap:wrap}.large-sms code,.large-sms strong{font-size:1.6rem;font-weight:700}.large-sms>span{font-size:0.9rem;color:#739281}.guide-step{display:flex;gap:17px;align-items:flex-start;margin:24px 0}.guide-step>span{width:31px;min-width:31px;height:31px;border-radius:50%;background:#eef5f1;display:grid;place-items:center;font-size:0.84rem;color:var(--green);font-weight:650}.guide-step p{font-size:0.94rem;color:#657e71;line-height:1.8}.guide-step h3{margin-bottom:8px}.info-note{display:flex;gap:12px;background:#f5f7f6;border:1px solid var(--line);border-radius:9px;padding:17px;margin:28px 0;color:#7a8e80}.info-note p{font-size:0.85rem;line-height:1.8}.guide-aside{color:#61927a;padding:30px 0}.guide-aside>svg{margin-bottom:18px}.guide-aside h2,.guide-aside h3{color:var(--ink);margin-bottom:10px}.guide-aside p{font-size:0.89rem;color:var(--muted);line-height:1.8;margin-bottom:20px}.guide-divider{border-top:1px solid var(--line);margin:32px 0}.guide-aside>a:not(.secondary){display:flex;align-items:center;gap:5px;font-size:0.86rem;color:var(--green);margin-top:15px}.app-icon{display:block;color:var(--green);margin-bottom:25px}.location-dialog{border-radius:16px!important;background:white!important;padding:28px!important;gap:17px!important;max-width:480px!important;color:var(--ink)}.dialog-icon{width:43px;height:43px;background:#e8f4ed;border-radius:12px;display:grid;place-items:center;color:var(--green)}.location-dialog [data-slot=dialog-title]{font-size:1.2rem;line-height:1.4}.location-dialog [data-slot=dialog-description]{font-size:0.86rem;color:var(--muted)}.consent-note{display:flex;gap:12px;background:#f2f6f3;border-radius:9px;padding:15px;color:#6c8375}.consent-note p{font-size:0.82rem;line-height:1.7}.consent-choice{display:flex;align-items:flex-start;gap:11px;font-size:0.87rem;line-height:1.7}.consent-choice [data-slot=checkbox]{margin-top:5px}.location-status{font-size:0.82rem;color:var(--green);line-height:1.6}.dialog-sms{text-align:center;font-size:0.82rem;color:var(--muted)}.sharing-banner{display:flex;align-items:center;gap:11px;background:#daf1e5;color:#246b48;border:1px solid #bee3cf;border-radius:9px;padding:13px 19px;font-size:0.86rem;margin-bottom:20px}.sharing-banner button{margin-left:auto;border:1px solid #98c9ad;background:white;border-radius:6px;padding:6px 10px;font-size:0.8rem;white-space:nowrap}.data-warning{display:flex;align-items:center;gap:9px;background:#fff3e3;border:1px solid #f2dbb4;border-radius:8px;color:#9a702b;padding:11px 15px;font-size:0.8rem;margin-top:15px}
@media(min-width:1500px){.workspace{padding-top:45px}.map-canvas{height:455px}}@media(max-width:1150px){.header-inner{gap:30px;padding:0 28px}.top-nav{gap:20px}.sms-nav{display:none}.workspace{padding:28px}.site-footer{margin:0 28px}.tracking-layout,.detail-layout{grid-template-columns:minmax(0,1fr) 305px;gap:18px}.selected-panel{padding:20px}.map-legend{gap:10px}.map-legend small{display:none}.train-grid{gap:12px}.train-card{padding:16px}.station-grid{grid-template-columns:repeat(3,1fr)}.popular-route-grid{grid-template-columns:1fr}.route-search{gap:9px}.date-field{min-width:145px}.route-search>.primary{padding:12px}.detail-facts>div{padding:0 14px}}@media(max-width:850px){.top-nav{gap:16px}.header-inner{gap:25px}.brand{font-size:1.23rem}.header-actions{gap:10px}.workspace{padding:25px 22px}.page-heading{align-items:flex-start}h1{font-size:2.05rem}.page-heading p{max-width:440px}.tracking-layout{grid-template-columns:1fr 285px;gap:15px}.map-context{left:12px;bottom:14px;padding:8px}.map-context-icon{display:none}.map-canvas{height:433px}.map-toolbar{padding:14px}.map-toolbar .source-select{width:125px}.map-toolbar h3{font-size:0.9rem}.train-grid{grid-template-columns:repeat(2,1fr)}.bottom-grid{grid-template-columns:1.2fr 1fr;gap:15px}.popular-panel{padding:18px}.sms-panel{padding:21px}.sms-icon{display:none}.route-search{flex-wrap:wrap}.station-picker{flex:1;min-width:calc(40% - 20px)}.date-field{flex:1;max-width:none}.route-search>.primary{flex:1}.route-result{gap:15px;padding:20px}.route-time{min-width:85px}.route-duration{width:100px}.detail-layout{grid-template-columns:1fr}.detail-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.info-card{margin:0;align-self:start}.guide-layout{grid-template-columns:1fr 230px;gap:20px}.guide-main{padding:25px}.guide-main h1{font-size:2rem}.route-directory{grid-template-columns:repeat(2,1fr)}.station-grid{grid-template-columns:repeat(3,1fr)}.station-grid>a{padding:15px;gap:9px}.station-icon{padding:6px}.station-grid strong{font-size:0.86rem}}
@media(max-width:680px){body{font-size:16px}.site-header{height:70px}.header-inner{padding:0 18px;gap:15px}.brand{font-size:1.28rem}.brand-symbol{width:36px;height:39px;border-radius:10px}.brand-symbol svg{width:23px}.brand small{font-size:0.75rem;letter-spacing:2.3px}.header-actions{margin-left:auto;gap:16px}.language{font-size:0.84rem}.mobile-menu{display:flex;align-items:center;background:transparent;border:0;color:#c1e5d6;padding:0}.top-nav{display:none}.top-nav.expanded{position:absolute;top:70px;left:0;right:0;z-index:20;background:#063c34;display:flex;flex-direction:column;height:auto;gap:0;padding:10px 20px 17px;align-items:stretch}.top-nav.expanded a{padding:12px 10px;height:auto}.top-nav.expanded a.active:after{display:none}.workspace{padding:25px 17px 30px}.page-heading{display:block;margin-bottom:23px}.page-heading h1{font-size:1.95rem;letter-spacing:-1px}.page-heading p{font-size:0.92rem;line-height:1.8}.eyebrow{font-size:0.75rem;letter-spacing:1.25px}.feed-status{margin-top:17px;padding:9px 13px;width:100%;justify-content:flex-start;font-size:0.85rem;border-radius:8px}.feed-status small{display:inline;margin-left:8px;font-size:0.75rem}.feed-status button{margin-left:auto}.search-panel{padding:15px 13px 14px;margin-bottom:20px}.search-tabs[data-slot]{gap:24px;margin-bottom:8px}.search-tabs [data-slot=tabs-trigger]{font-size:0.85rem}.train-search{padding-left:12px;gap:9px;height:54px}.train-search>svg{width:18px}.train-search input{font-size:0.9rem}.train-search .primary{font-size:0.77rem;padding:10px 12px;min-height:39px;white-space:nowrap}.popular-chips{gap:7px;margin-top:12px;font-size:0.75rem}.popular-chips>span{width:100%;margin-bottom:2px}.popular-chips a{padding:4px 7px}.tracking-layout{grid-template-columns:1fr;gap:15px}.map-toolbar{padding:14px 15px}.map-toolbar .source-select{width:150px}.map-toolbar h3{font-size:0.95rem}.map-canvas{height:345px}.map-context{left:12px;bottom:12px}.map-legend{font-size:0.75rem;padding:11px 12px;gap:10px}.selected-panel{padding:20px}.selected-panel h2{font-size:1.32rem}.panel-label{margin-bottom:13px}.selected-panel>p{margin-bottom:10px}.location-readout{margin:15px 0;padding:14px 0}.journey-times strong{font-size:1.6rem}.journey-times div>span{font-size:0.79rem}.journey-times small{font-size:0.76rem}.selected-panel>.primary{font-size:0.9rem}.passenger-actions{gap:12px}.passenger-actions button{font-size:0.8rem;flex-direction:row;padding:11px 7px}.progress-caption{font-size:0.75rem}.section-heading{margin:24px 0 14px;gap:12px}.section-heading h2{font-size:1.09rem}.section-heading>a{font-size:0.79rem}.train-grid{grid-template-columns:1fr;gap:12px}.train-card{padding:18px}.train-card-top strong{font-size:1.02rem}.train-number{font-size:0.77rem}.train-dest{font-size:0.9rem;margin:10px 0 12px}.train-meta{font-size:0.8rem;gap:10px}.badge{font-size:0.75rem;padding:3px 7px}.train-card-bottom{font-size:0.77rem}.bottom-grid{grid-template-columns:1fr;margin-top:24px;gap:17px}.popular-panel{padding:20px}.popular-route-grid{gap:17px}.popular-route-grid strong{font-size:0.96rem}.popular-route-grid small{font-size:0.76rem}.sms-panel{padding:23px}.sms-panel h2{font-size:1.2rem}.sms-panel p{font-size:0.88rem}.sms-panel>small{font-size:0.76rem}.sms-icon{display:block}.site-footer{margin:0 17px;padding:23px 0 98px}.footer-brand{flex-wrap:wrap;font-size:0.86rem}.footer-brand>span{width:100%;margin:0;font-size:0.78rem}.footer-links{gap:18px;font-size:0.78rem}.site-footer>p{font-size:0.75rem;line-height:1.8}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;padding:9px 7px max(10px,env(safe-area-inset-bottom));height:auto;min-height:64px;background:#fffffff5;backdrop-filter:blur(12px);border-top:1px solid #dce7e1;z-index:30;justify-content:space-around}.bottom-nav>a{display:flex;flex-direction:column;align-items:center;gap:4px;color:#889c92;font-size:0.75rem;padding:4px 8px;min-width:54px}.bottom-nav>a.active{color:var(--green);font-weight:650}.route-search{display:grid;grid-template-columns:1fr 35px 1fr;gap:10px}.station-picker{min-width:0;padding:8px;gap:6px}.station-picker svg{width:16px}.station-picker>svg:last-child{display:none}.station-picker strong{font-size:0.86rem}.station-picker small{font-size:0.75rem}.swap{width:32px}.date-field{grid-column:1/3;min-width:0;max-width:none;padding:8px 10px}.route-search>.primary{grid-column:3;font-size:0.8rem;padding:10px 8px}.route-search-panel{padding:17px 13px}.directory-tools{flex-wrap:wrap;gap:11px}.directory-search{flex-basis:100%;padding:14px;font-size:0.93rem}.directory-tools [data-slot=select-trigger]{flex:1;width:auto;height:43px;font-size:0.88rem}.directory-tools>span{font-size:0.83rem}.station-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.station-grid>a{padding:16px 11px;gap:8px}.station-icon{background:none;padding:0}.station-icon svg{width:18px}.station-grid strong{font-size:0.92rem}.station-grid small{font-size:0.75rem}.station-grid>a>svg{display:none}.route-result{flex-wrap:wrap;gap:12px 20px;padding:18px;position:relative}.route-train{flex-basis:100%;margin-bottom:4px;flex-grow:1}.route-train strong{font-size:0.97rem}.route-train small{font-size:0.79rem}.route-result>.route-time{min-width:0;flex:1}.route-result>.route-duration{width:85px}.route-result>svg{position:absolute;right:18px;top:22px}.route-result>.muted{font-size:0.75rem;width:100%}.route-time strong{font-size:1.28rem}.route-time span{font-size:0.8rem}.route-directory{grid-template-columns:1fr;gap:13px}.route-directory>a{padding:21px}.route-directory h2{font-size:1.1rem}.route-directory p{font-size:0.83rem}.breadcrumbs{font-size:0.8rem}.page-heading>.secondary{margin-top:16px;font-size:0.88rem;padding:10px 14px}.detail-facts{grid-template-columns:repeat(2,1fr);padding:17px;gap:18px}.detail-facts>div{padding:0 8px!important;border:0}.detail-facts>div:last-child{grid-column:1/-1}.detail-facts strong{font-size:1.34rem}.detail-facts small{font-size:0.78rem}.detail-layout{gap:20px}.timetable-panel{padding:20px 14px}.timetable-panel>.section-heading{display:block;margin-bottom:20px}.timetable-panel>.section-heading>span{display:block;margin-top:6px;font-size:0.75rem}.timetable-header{grid-template-columns:1fr 67px 67px;padding-left:22px;font-size:0.75rem}.timetable-row{grid-template-columns:15px minmax(0,1fr) 67px 67px;gap:5px;min-height:79px}.timetable-row strong{font-size:0.9rem;overflow-wrap:anywhere}.timetable-row small{font-size:0.75rem}.timetable-row>span:not(.timeline-dot){font-size:0.87rem}.timetable-row:not(:last-child):before{left:6px;height:79px}.timeline-dot{margin-left:2px}.next-stop{margin:0 -7px;padding:0 7px}.next-stop:before{left:13px!important}.detail-layout>aside{grid-template-columns:1fr}.info-card{padding:21px}.info-card p{font-size:0.86rem}.info-card a{font-size:0.83rem}.guide-layout{grid-template-columns:1fr;gap:15px;margin-top:5px}.guide-main{padding:25px 20px}.guide-main h1{font-size:1.9rem}.guide-main .lead{font-size:1rem}.guide-step p{font-size:0.92rem}.large-sms{gap:13px;padding:20px 16px}.large-sms code,.large-sms strong{font-size:1.45rem}.large-sms>svg{width:20px}.info-note{padding:15px}.info-note p{font-size:0.85rem}.guide-aside{padding:20px}.sharing-banner{align-items:flex-start;flex-wrap:wrap;font-size:0.82rem;padding:13px;gap:8px}.sharing-banner button{margin-left:28px}.data-warning{align-items:flex-start;font-size:0.79rem}.location-dialog{padding:24px!important;max-height:90svh;overflow-y:auto}.location-dialog [data-slot=dialog-title]{font-size:1.2rem}.location-dialog [data-slot=dialog-description]{font-size:0.9rem}.consent-note p{font-size:0.86rem}.dialog-sms{font-size:0.86rem}.consent-choice{font-size:0.9rem}.location-dialog>.primary{font-size:0.88rem}.empty{padding:45px 20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.badge{font-size:.875rem}.train-meta{font-size:.875rem}.map-legend{font-size:.75rem}.panel-label{font-size:.75rem}.map-context strong{font-size:.875rem}.map-context small{font-size:.75rem}.train-card-top strong{font-size:1rem}.location-readout p{font-size:.875rem}.journey-times div>span{font-size:.875rem}.progress-caption{font-size:.75rem}.passenger-actions button{font-size:.875rem}.footer-links{font-size:.875rem}.popular-chips{font-size:.875rem}.source-select[data-slot]{font-size:.875rem;width:190px}.map-toolbar{flex-wrap:wrap}.feed-status{white-space:normal}.train-card-top strong{overflow-wrap:anywhere}.station-grid strong{overflow-wrap:anywhere}.route-train strong{overflow-wrap:anywhere}.route-time span{overflow-wrap:anywhere}.site-footer>p{font-size:.75rem}.map-legend>small{font-size:.75rem}.brand small{font-size:.75rem;letter-spacing:1.5px}.page-heading p{font-size:1rem}.route-result>.muted{overflow-wrap:anywhere}.sharing-banner{flex-wrap:wrap}@media(max-width:680px){.source-select[data-slot]{width:160px}.map-legend{row-gap:6px}.header-actions{gap:11px}.brand small{font-size:.6rem}.route-time span{font-size:.875rem}.bottom-nav>a{font-size:.75rem}.popular-chips{font-size:.8rem}}

/* Premium railway interface: ink, ice and electric lime. */

:root{--green:#183e32;--ink:#152b2a;--muted:#72817e;--line:#e4e9e7;--soft:#f5f7f6;--lime:#d1f7be}
body{background:#f5f7f8;color:var(--ink);-webkit-font-smoothing:antialiased}
.site-header{height:94px;background:#fff;color:var(--ink);border-bottom:1px solid #e8eceb}
.header-inner{max-width:1460px;padding:0 48px;gap:38px}
.brand{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;font-size:1.45rem;font-weight:800;gap:12px;letter-spacing:-1px}
.brand-symbol{width:44px;height:46px;background:#173c31;color:var(--lime);border-radius:13px;box-shadow:0 4px 10px #183d3114}
.brand-light{color:#152b2a;font-weight:600}
.brand small{color:#97a39f;letter-spacing:2.1px;font-size:.6rem;font-weight:600;margin-top:7px}
.top-nav{flex:1;justify-content:center;gap:5px;font-size:.875rem;font-weight:550;height:auto}
.top-nav>a{height:42px;padding:0 14px;border-radius:9px;color:#73837d;gap:8px;white-space:nowrap;transition:background .2s,color .2s}
.top-nav>a>svg{color:#879890}
.top-nav>a:hover{background:#f2f6f3;color:#163c2f}
.top-nav>a.active{background:#183c30;color:#e9f6e7;box-shadow:0 4px 12px #183d3114}
.top-nav>a.active>svg{color:var(--lime)}
.top-nav>a.active:after{display:none}
.header-actions{gap:14px;font-size:.875rem}
.language{border:1px solid #e2e8e4;padding:10px 12px;border-radius:8px;color:#52685c}
.sms-nav{background:#eff5ef;color:#294e3d;border:1px solid #e0e9df;border-radius:8px;padding:10px 13px}
.workspace{max-width:1460px;padding:40px 48px 54px}
.page-heading{margin-bottom:27px;align-items:center;gap:24px}
.eyebrow{font-size:.75rem;letter-spacing:1.35px;font-weight:600;color:#749182;margin-bottom:12px}
h1,.page-heading h1{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;font-size:2.8rem;line-height:1.2;letter-spacing:-1.8px;font-weight:800;color:#132e28}
h1 em{font-style:normal;font-weight:500;color:#588373}
.page-heading p{font-size:.94rem;color:#87948d;margin-top:11px;line-height:1.8}
.overview-metrics{display:flex;align-items:center;gap:28px;flex-shrink:0}
.network-metrics{display:flex;align-items:center;gap:27px}
.network-metrics>span{display:flex;flex-direction:column;gap:2px}
.network-metrics strong{font-size:1.4rem;font-family:Manrope,Inter,sans-serif;font-weight:750;letter-spacing:-.5px}
.network-metrics small{font-size:.75rem;color:#97a39d}
.feed-status{background:#fff;border:1px solid #e2e9e3;padding:12px 13px;border-radius:11px;gap:10px;box-shadow:0 3px 13px #18322104;color:#3a7652;min-width:170px}
.feed-status>svg{color:#7bba87;width:16px}
.feed-status span{font-size:.8rem;font-weight:600}
.feed-status small{font-size:.75rem;color:#a0aca5;margin-top:4px}
.feed-status button{color:#7fa287;border-radius:5px;padding:5px}
.feed-status button:hover{background:#eef7ed}
.search-panel{position:relative;background:#fff;border:1px solid #e2e8e3;border-radius:16px;padding:0 23px 16px;margin-bottom:28px;box-shadow:0 4px 20px #112a1705}
.search-tabs[data-slot]{margin:0 0 15px;height:53px;gap:25px;padding:0;background:none;border-bottom:1px solid #edf0ed;width:100%}
.search-tabs [data-slot=tabs-trigger]{border:0;border-radius:0;flex:0 0 auto;height:53px;padding:0 4px;font-size:.875rem;font-weight:550;color:#8b9a90}
.search-tabs [data-slot=tabs-trigger][data-state=active]{border-bottom:2px solid #305c43;color:#2f5a42}
.search-tabs [data-slot=tabs-trigger]>svg{width:17px;height:17px}
.train-search{height:61px;border:1px solid #dfe6df;border-radius:10px;background:#fafcfb;padding:7px 7px 7px 17px;color:#8da194}
.train-search input{font-size:.96rem}
.train-search input::placeholder{color:#a1afa4}
.primary{background:#183c2e;color:#edf9e8;border-radius:9px;padding:14px 22px;font-weight:550;font-size:.875rem;min-height:46px;box-shadow:none;transition:background .2s,transform .2s}
.primary:hover{background:#285239}
.primary:active,.secondary:active{transform:translateY(1px)}
.train-search .primary{padding:13px 24px;min-height:45px;background:#d5f8c4;color:#244935;font-weight:650;border:1px solid #c4eaae}
.train-search .primary:hover{background:#c5efae}
.secondary{border-radius:9px;border-color:#dde6de;color:#516f5b;background:white;font-size:.875rem;padding:13px 18px}
.secondary:hover{background:#f2f7f0}
.popular-chips{margin-top:13px;font-size:.8rem;gap:8px;color:#9cab9f}
.popular-chips>span{font-size:.75rem}
.popular-chips a{padding:4px 10px;border-radius:5px;background:#f6f8f5;color:#85988a;font-size:.75rem;border:1px solid #edf0e9}
.popular-chips a:hover{background:#eef4e9;border-color:#d3e2cb;color:#476942}
.tracking-layout{grid-template-columns:minmax(0,1fr) 345px;gap:24px;align-items:stretch}
.map-surface{border:1px solid #213e31;background:#112921;border-radius:20px;box-shadow:0 14px 30px #143b2411;position:relative}
.map-toolbar{padding:22px 25px 18px;border:0;background:#112921;color:#e4f0e6;gap:12px;position:relative;z-index:2}
.map-toolbar .eyebrow{color:#7c9986;font-size:.75rem;font-weight:500;letter-spacing:1.9px;margin-bottom:5px}
.map-toolbar h3{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;font-size:1.05rem;font-weight:600;letter-spacing:-.2px;color:#e2eee2}
.source-select[data-slot]{height:36px;width:171px;border:1px solid #355140;background:#1d3829;color:#b2c7b6;font-size:.75rem;border-radius:8px;box-shadow:none}
.source-select[data-slot] svg{color:#739b7a}
.map-canvas{height:496px;background:#112921;position:relative;isolation:isolate}
.map-canvas:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 42%,#1b352870,transparent 66%)}
.map-canvas>svg{width:100%;height:100%;background:linear-gradient(#29423420 1px,transparent 1px),linear-gradient(90deg,#29423420 1px,transparent 1px);background-size:46px 46px;touch-action:none}
.map-geography{opacity:.95}
.map-geography>path:first-child{stroke:#3e5b49;stroke-width:1.8}
.map-geography>path:not(:first-child){stroke-opacity:.65}
.map-city{font-family:Inter,'Hind Siliguri',sans-serif;font-size:23px;font-weight:400;fill:#afc8b2;stroke:#163128;stroke-width:6;paint-order:stroke;stroke-linejoin:round}
.train-pin{cursor:pointer}
.train-pin:hover>circle:nth-of-type(2){stroke:#efffe3;stroke-width:4}
.train-pin:focus{outline:none;filter:drop-shadow(0 0 5px #bdffc5)}
.map-region-label{position:absolute;left:26px;top:24px;pointer-events:none;color:#526e5b;display:flex;flex-direction:column;gap:8px}
.map-region-label>span{font-size:.75rem;letter-spacing:2.6px;font-weight:650}
.map-region-label small{font-family:monospace;font-size:.75rem;color:#49664f}
.map-context{bottom:22px;left:24px;background:#152f25eb;border:1px solid #35573d;border-radius:10px;box-shadow:0 5px 18px #040e0520;gap:12px;padding:12px 15px;max-width:calc(100% - 93px);backdrop-filter:blur(10px)}
.map-context-icon{color:#c4edb9;background:#294b30;padding:8px;border-radius:8px;display:grid;place-items:center}
.map-context strong{color:#cde5cc;font-size:.8rem;font-weight:500}
.map-context small{color:#779d7c;font-size:.75rem;margin-top:4px}
.map-controls{right:23px;bottom:22px;gap:7px}
.map-controls button{width:37px;height:37px;border:1px solid #35523d;background:#203b2a;color:#c7e5c3;border-radius:8px;box-shadow:0 3px 12px #06130915}
.map-controls button:hover{background:#385337;border-color:#557b4c}
.map-message{background:#29442ff0;border:1px solid #547550;color:#dcf2d4;top:70px;font-size:.875rem;padding:12px 15px;text-align:center;backdrop-filter:blur(10px)}
.map-legend{padding:17px 25px;border-top:1px solid #27432f;gap:18px;background:#112921;color:#83a289;font-size:.75rem;min-height:56px;align-items:center}
.map-legend i{height:6px;width:6px}
.legend-gps{background:#6dd4a7}.legend-report{background:#8cc4ff}.legend-est{background:#e5b97f}
.map-legend>small{color:#4c7057;font-size:.75rem;margin-left:auto;display:block}
.selected-panel{background:#fff;border:1px solid #e2e8e2;border-radius:20px;overflow:hidden;padding:0;box-shadow:0 8px 30px #27331c07;position:relative}
.ticket-top{display:flex;gap:10px;align-items:center;padding:22px 23px 18px}
.ticket-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#f0f5ed;color:#456743}
.ticket-top>div{flex:1;min-width:0}
.ticket-top .panel-label{display:block;margin:0 0 4px;font-size:.75rem;letter-spacing:.9px;color:#9caa98;font-weight:500;line-height:1.4}
.ticket-type{font-size:.875rem;color:#76876c;font-weight:450}
.ticket-number{background:#f0f6eb;color:#709358;border:1px solid #dfead5;letter-spacing:1px;font-size:.75rem;border-radius:7px;padding:5px 7px;font-family:monospace}
.ticket-name{padding:0 23px 20px}
.ticket-name h2{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;font-size:1.52rem;line-height:1.35;letter-spacing:-.6px;font-weight:750;color:#27422b;margin-bottom:5px;overflow-wrap:anywhere}
.ticket-name p{font-size:.875rem;color:#95a38b;margin-bottom:15px;line-height:1.6}
.ticket-name p>span{color:#bdc6b4;margin:0 5px}
.badge{font-size:.75rem;padding:4px 8px;border-radius:5px;font-weight:450;white-space:normal}
.badge.estimate{color:#a28753;background:#fbf4e4;border:1px solid #f2e7cd}
.badge.gps{color:#468951;background:#e8f7eb;border:1px solid #cce9ce}
.badge.report{color:#5583ab;background:#edf4fa;border:1px solid #d3e7f5}
.badge.stale{color:#b97563;background:#fff0e9;border:1px solid #f0dacf}
.ticket-divider{display:flex;align-items:center;position:relative;height:16px;margin-bottom:6px}
.ticket-divider>span{flex:1;border-top:1px dashed #dfe5d9;margin:0 10px}
.ticket-divider>i{height:18px;width:18px;border-radius:50%;background:#f5f7f8;border:1px solid #e2e8e2;position:absolute;left:-10px;top:-1px}
.ticket-divider>i:last-child{left:auto;right:-10px}
.location-readout{margin:0;padding:12px 23px 17px;border:0}
.location-heading{display:flex;align-items:center;gap:7px;margin-bottom:8px}
.location-heading small{font-size:.75rem;letter-spacing:.9px;color:#91a283;font-weight:500;margin:0;display:inline}
.location-icon{color:#86a775;display:flex;align-items:center}
.location-readout>strong{font-size:1.35rem;color:#48733f;font-weight:600;line-height:1.4;letter-spacing:-.3px}
.location-readout p{font-size:.875rem;line-height:1.6;color:#a0ab93;margin-top:6px}
.journey-times{padding:12px 23px 0;gap:12px;align-items:center}
.journey-times small{font-size:.75rem;font-weight:450;letter-spacing:.8px;color:#a4ad99}
.journey-times strong{font-family:Manrope,Inter,sans-serif;font-size:1.9rem;letter-spacing:-1.2px;font-weight:650;line-height:1.5;color:#345335}
.journey-times div>span{font-size:.8rem;line-height:1.5;color:#9cab8d;overflow-wrap:anywhere}
.journey-rail{display:flex;align-items:center;justify-content:center;gap:5px;color:#a4bd92;flex:1;min-width:30px;margin-top:9px}
.journey-rail>span{flex:1;height:1px;background:#d9e5cc;position:relative}
.journey-rail>span:first-child:before{content:'';width:4px;height:4px;border-radius:50%;position:absolute;left:0;top:-1.5px;background:#bfd5ac}
.journey-rail>span:last-child:after{content:'';width:4px;height:4px;border-radius:50%;position:absolute;right:0;top:-1.5px;background:#bfd5ac}
.journey-progress-wrap{padding:0 23px;margin-top:17px}
.journey-progress[data-slot]{margin-top:0;height:4px;background:#edf1e6;border-radius:4px}
.journey-progress [data-slot=progress-indicator]{background:#a3c884;border-radius:4px}
.progress-caption{font-size:.75rem;color:#9bac8d;margin:8px 0 0;gap:10px;align-items:center}
.progress-caption strong{color:#6b9551;font-size:.8rem;font-weight:500}
.selected-panel>.ticket-cta{margin:21px 23px 0;width:calc(100% - 46px);border:1px solid #c9e3b4;background:#d9f5c5;color:#52713e;font-size:.875rem;font-weight:600;min-height:44px}
.selected-panel>.ticket-cta:hover{background:#caefac;color:#365927}
.passenger-actions{margin:14px 23px 22px;gap:10px}
.passenger-actions button{padding:10px 4px;border-radius:8px;border-color:#e5ecdf;min-height:47px;font-size:.75rem;gap:5px;flex-direction:row;color:#8aa071;background:#fafcf7}
.passenger-actions button:hover{background:#f0f7e8;border-color:#d0e4bd;color:#5a7d46}
.section-heading{margin:33px 0 17px}
.section-heading h2{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;font-size:1.25rem;letter-spacing:-.5px;font-weight:700;color:#324c36}
.section-heading>a{font-size:.8rem;font-weight:450;color:#91a785;gap:3px}
.section-heading>a:hover{color:#476c3f}
.count{background:#eef3e8;color:#96ae82;border:1px solid #e0e8d5;border-radius:6px;font-size:.75rem;font-weight:450;padding:2px 7px}
.train-grid{gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}
.train-card{padding:21px 21px 0;border-radius:14px;background:#fff;border:1px solid #e1e7dd;box-shadow:0 5px 15px #18311703;overflow:hidden;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;flex-direction:column}
.train-card:hover{border-color:#c4d9b2;box-shadow:0 9px 22px #223b1410;transform:translateY(-2px)}
.train-card-top{gap:12px;align-items:center}
.card-train-icon{width:43px;height:43px;border-radius:12px;background:#f2f6eb;color:#80986b;display:grid;place-items:center;flex-shrink:0}
.train-card-top>div{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.card-kicker{font-size:.75rem;font-weight:400;letter-spacing:1px;color:#b1bbaa}
.train-card-top strong{font-size:1rem;font-weight:600;color:#4c6446;letter-spacing:-.2px;line-height:1.4;overflow-wrap:anywhere}
.card-open{width:25px;height:25px;display:grid;place-items:center;flex-shrink:0;border:1px solid #edf1e7;border-radius:6px;color:#b8c4aa}
.card-journey{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 0 21px;flex:1}
.card-journey>div:first-child,.card-journey>div:last-child{max-width:40%;min-width:0}
.card-journey>div:last-child{text-align:right}
.card-journey strong{font-family:Manrope,Inter,sans-serif;display:block;font-size:1.4rem;font-weight:650;letter-spacing:-.6px;color:#54704b;line-height:1.4}
.card-journey span{display:block;font-size:.8rem;color:#a8b59d;margin-top:4px;overflow-wrap:anywhere}
.card-rail{display:flex;gap:5px;align-items:center;color:#acbea0;flex:1;max-width:76px;padding-top:7px}
.card-rail span{flex:1;height:1px;background:#dce6d3;margin:0;position:relative}
.card-rail span:first-child:before{content:'';height:4px;width:4px;background:#c8d8b9;border-radius:50%;position:absolute;left:0;top:-1.5px}
.card-rail span:last-child:after{content:'';height:4px;width:4px;background:#c8d8b9;border-radius:50%;position:absolute;right:0;top:-1.5px}
.train-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 -21px;padding:12px 17px;border-top:1px solid #edf0e7;background:#fbfcf8;font-size:.75rem;color:#b2bea4;min-height:46px}
.train-card-bottom>span:last-child{max-width:48%;text-align:right;overflow-wrap:anywhere}
.train-card-bottom .badge{font-size:.75rem;background:transparent!important;border:0!important;padding:0;max-width:60%}
.scheduled-label{display:flex;gap:5px;align-items:center;font-size:.75rem;color:#abb89c}
.bottom-grid{grid-template-columns:1.45fr 1fr;gap:24px;margin-top:30px}
.popular-panel{border-radius:16px;border-color:#e2e8dc;padding:25px;background:#fff;box-shadow:0 5px 15px #18311703}
.popular-panel>.section-heading{margin-bottom:23px}
.popular-route-grid{gap:23px 24px;grid-template-columns:1fr 1fr}
.route-icon{padding:11px;background:#f2f6e9;border-radius:10px;color:#a6bb8a}
.popular-route-grid strong{font-size:.875rem;font-weight:550;color:#82976b}
.popular-route-grid small{font-size:.75rem;color:#b4bfa3;margin-top:5px}
.popular-route-grid>a>svg{color:#c5d1b0}
.sms-panel{border-radius:16px;padding:27px 30px;border:1px solid #dbe9c5;background:#eff8df;overflow:hidden}
.sms-panel h2{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;font-size:1.3rem;font-weight:650;letter-spacing:-.6px;color:#5a7540;margin-top:2px}
.sms-panel p{font-size:.875rem;color:#a4b783;margin:10px 0 20px}
.sms-icon{top:27px;right:26px;color:#9cba73}
.sms-code{gap:13px;color:#abbf8c;font-size:.875rem}
.sms-code code{font-size:1.02rem;letter-spacing:1.5px;color:#718e49;background:#f9fff0;border-color:#dcebc7;border-radius:7px;padding:8px 14px}
.sms-code strong{font-family:Manrope,Inter,sans-serif;font-size:1.6rem;color:#6a8646;font-weight:650}
.sms-panel>small{font-size:.75rem;color:#a5ba85;margin-top:15px}
.site-footer{max-width:1364px;margin:0 auto;border-top-color:#e2e8dc;padding:26px 0 36px;gap:20px}
.footer-brand{color:#a4b98d;font-size:.875rem}
.footer-brand strong{font-family:Manrope,Inter,sans-serif;font-weight:600}
.footer-brand>span{font-size:.75rem;color:#b2bfa4;margin-left:15px}
.footer-links{font-size:.75rem;color:#a3b48c;gap:25px}
.site-footer>p{font-size:.75rem;color:#b3bfaa;max-width:1100px;line-height:1.8}
.directory-tools{margin-bottom:25px;gap:16px}
.directory-search{padding:16px 19px;border-radius:12px;border-color:#e0e7d8;box-shadow:0 4px 15px #29411a02;color:#a5b999;min-width:0}
.directory-search input{font-size:.94rem;color:#526f44}
.directory-search input::placeholder{color:#b0bfa1}
.directory-tools [data-slot=select-trigger]{height:55px;border-radius:11px;border-color:#e0e7d8;color:#8da078;font-size:.875rem;box-shadow:none}
.directory-tools>span{font-size:.875rem;color:#a6b89a}
.station-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.station-grid>a{border-color:#e2e8d9;border-radius:13px;padding:20px 18px;gap:13px;transition:transform .2s,border-color .2s}
.station-grid>a:hover{transform:translateY(-2px);border-color:#c5d7b6}
.station-icon{padding:11px;border-radius:11px;background:#f2f7e9;color:#9ab87d}
.station-grid strong{font-size:.94rem;color:#7d9760;font-weight:550}
.station-grid small{color:#b0bf9f;font-size:.75rem;margin-top:5px}
.station-grid>a>svg{color:#c2d2b0}
.route-search-panel{border-radius:16px;border-color:#e2e8da;padding:23px;box-shadow:0 5px 15px #21361703}
.station-picker{border-radius:10px;background:#fafdf5;border-color:#dfe8d2;gap:11px;padding:11px 14px;min-height:58px;color:#a9bd94}
.station-picker small{font-size:.75rem;color:#afbf9c}
.station-picker strong{font-size:.94rem;font-weight:550;color:#7d9b5d;margin-top:2px}
.swap{border-color:#e2ead6;border-radius:8px;background:#fcfef8;color:#b3c49c}
.date-field{border-color:#dfe8d2;background:#fafdf5;border-radius:10px;padding:10px 12px}
.date-field small{font-size:.75rem;color:#afbf9c}
.date-field input{font-size:.875rem;color:#7c9a5c}
.station-popover{border-color:#dfe8d4;border-radius:11px;background:#fff}
[data-slot=command-input]{font-size:.875rem}
[data-slot=select-content]{border-radius:10px;border-color:#dce7ce}
[data-slot=select-item]{font-size:.875rem;padding-top:9px;padding-bottom:9px}
.route-results{gap:15px}
.route-result{border-radius:13px;border-color:#e2e8d8;padding:24px 26px;gap:28px;box-shadow:0 4px 14px #1a371401;transition:border-color .2s,box-shadow .2s}
.route-result:hover{border-color:#c0d6ae;box-shadow:0 8px 20px #24441908}
.train-number{background:#f1f6e6;border:1px solid #e3ecd5;color:#91ad6c;border-radius:6px;font-family:monospace;font-size:.75rem;padding:5px 8px}
.route-train{gap:6px 11px}
.route-train strong{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;font-size:1rem;font-weight:600;color:#718c54;letter-spacing:-.3px}
.route-train small{color:#adbd98;font-size:.75rem}
.route-time strong{font-family:Manrope,Inter,sans-serif;font-size:1.45rem;font-weight:600;color:#87a369;letter-spacing:-.5px}
.route-time span,.route-time>small{font-size:.8rem;color:#b8c6a4}
.route-duration{font-size:.8rem;color:#b0c491}
.route-duration>div{background:#e2ecd4}
.route-duration>div:before,.route-duration>div:after{border-color:#c9dcb0}
.route-duration small{color:#c3d0b1;font-size:.75rem}
.route-result>svg{color:#cad9b5}
.route-result>.muted{color:#b5c5a0;font-size:.8rem}
.route-directory{gap:20px}
.route-directory>a{padding:28px;border-radius:14px;border-color:#e2e9d6;background:#fff;transition:border-color .2s,transform .2s}
.route-directory>a:hover{border-color:#c2d7a6;transform:translateY(-2px)}
.route-directory>a>svg:first-child{color:#a6c17c;margin-bottom:22px}
.route-directory h2{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;font-size:1.15rem;font-weight:600;color:#8aa567;letter-spacing:-.4px}
.route-directory p{font-size:.875rem;color:#b8c8a1;margin-top:10px}
.route-directory>a>svg:last-child{color:#ccdab5;top:28px;right:25px}
.breadcrumbs{color:#aebf9a;font-size:.8rem;margin-bottom:24px}
.breadcrumbs a{color:#8aa66b}
.detail-facts{border-radius:15px;padding:25px;border-color:#dfe8d2;background:white;box-shadow:0 5px 15px #27410e03}
.detail-facts>div{padding:0 25px;border-color:#e7eddd}
.detail-facts small{font-size:.8rem;color:#b2c09f}
.detail-facts strong{font-family:Manrope,Inter,sans-serif;font-size:1.6rem;letter-spacing:-.6px;font-weight:600;color:#86a265;margin-top:7px}
.detail-facts svg{color:#b6c99b}
.detail-layout{grid-template-columns:minmax(0,1fr) 345px;gap:24px}
.timetable-panel{border-radius:17px;border-color:#e2e9d5;padding:27px}
.timetable-panel>.section-heading{margin:0 0 26px}
.timetable-header{font-size:.75rem;color:#b6c5a2;margin-bottom:12px}
.timetable-row{min-height:83px;border-color:#eef2e6;gap:9px}
.timetable-row strong{font-size:.94rem;color:#95af75;font-weight:500;line-height:1.5}
.timetable-row small{color:#c0cfaa;font-size:.75rem}
.timetable-row>span:not(.timeline-dot){font-family:Manrope,Inter,sans-serif;font-size:1rem;color:#adc38b;font-weight:550}
.timeline-dot{border-color:#c9dcb1;z-index:1}
.timetable-row:not(:last-child):before{background:#e1ecd2;height:83px}
.next-stop{background:#f4fae8}
.next-stop .timeline-dot{background:#b8d693;border-color:#b8d693;box-shadow:0 0 0 4px #e1f0cc}
.info-card{padding:26px;background:#f1f8e3;border-radius:15px;border-color:#e0edc7;color:#b3cb8b}
.info-card h3{font-size:1rem;color:#97b96d;font-weight:550}
.info-card p{font-size:.875rem;color:#b5cb94;line-height:1.85}
.info-card a{font-size:.8rem;color:#a6c47d;margin-top:19px}
.guide-layout{gap:45px;margin:30px auto;max-width:1100px;grid-template-columns:minmax(0,1fr) 290px}
.guide-main{border-radius:18px;padding:39px;border-color:#e0e9d0;box-shadow:0 7px 25px #28401703}
.guide-main h1{font-size:2.4rem;line-height:1.3;color:#809f62}
.guide-main .lead{color:#acbf96;line-height:1.8;font-size:1rem;margin-top:20px}
.guide-main>p{color:#b4c79b}
.guide-main>h2{font-size:1.15rem;color:#a0ba7d}
.large-sms{background:#f1fae2;border:1px solid #dfedc6;border-radius:13px;padding:25px;color:#b2cf88;gap:20px}
.large-sms code,.large-sms strong{font-family:Manrope,Inter,sans-serif;font-size:1.8rem;color:#9fbe71;font-weight:600}
.large-sms>span{font-size:.875rem;color:#c4d6a8}
.guide-step{gap:20px;margin:28px 0}
.guide-step>span{width:34px;min-width:34px;height:34px;background:#f1f8e3;border:1px solid #e1edce;color:#b9d48e;font-size:.875rem}
.guide-step h3{font-weight:550;color:#a8c67e}
.guide-step p{font-size:.94rem;color:#b6cda0;line-height:1.85}
.info-note{border-radius:11px;background:#f8fbf0;border-color:#e5edd7;color:#c2d7a7;padding:20px}
.info-note p{font-size:.875rem;color:#b9cda0;line-height:1.8}
.guide-aside{padding:39px 0;color:#b6d190}
.guide-aside h2,.guide-aside h3{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;color:#aac884;font-weight:550}
.guide-aside p{font-size:.94rem;color:#bed3a5;line-height:1.8}
.guide-aside>a:not(.secondary){font-size:.875rem;color:#b1cd8c}
.guide-divider{border-color:#e3edcf;margin:36px 0}
.app-icon{color:#a8c77c}
.empty{border-radius:16px;border-color:#e3ead7;padding:70px 25px}
.empty>svg{color:#c1d7a5}
.empty h3{color:#abc688;font-weight:550}
.empty p,.compact-empty{color:#c2d1ad;font-size:.94rem}
.sharing-banner{border-radius:11px;background:#e8f8d3;border-color:#d4eab7;color:#8daa61;font-size:.875rem}
.sharing-banner button{border-color:#c9dfa9;color:#93ad6b}
.data-warning{border-radius:10px;background:#fff7e7;border-color:#f4e5c4;color:#b9a277;font-size:.875rem}
.location-dialog{border-radius:20px!important;padding:30px!important;border-color:#e1ead3!important;box-shadow:0 24px 90px #18361725;color:#91af72}
.location-dialog [data-slot=dialog-title]{font-family:Manrope,Inter,'Hind Siliguri',sans-serif;font-size:1.28rem;color:#8aa96c;font-weight:600;line-height:1.5}
.location-dialog [data-slot=dialog-description]{color:#b6c8a0;font-size:.875rem}
.dialog-icon{width:47px;height:47px;border-radius:13px;background:#edf8dd;color:#b2d68a}
.consent-note{background:#f5fbea;border-radius:11px;padding:18px;color:#bbd7a0}
.consent-note p{font-size:.875rem;color:#b0c698;line-height:1.8}
.consent-choice{font-size:.875rem;color:#aac58b;line-height:1.7}
.location-status{font-size:.875rem;color:#9fbf77}
.dialog-sms{font-size:.875rem;color:#bdd0a6}
.bottom-nav{border-color:#dbe6ce;background:#fffffff7}
.bottom-nav>a{font-size:.75rem;color:#bccdab;padding:5px 8px}
.bottom-nav>a.active{color:#8fab6b}
.bottom-nav>a.active:before{content:'';position:absolute;width:44px;height:32px;border-radius:9px;background:#eff7e1;top:8px;z-index:-1}
.workspace[data-lang=bn] h1,.workspace[data-lang=bn] h2,.workspace[data-lang=bn] .ticket-name h2{letter-spacing:0;font-family:'Hind Siliguri',Inter,sans-serif;line-height:1.4}
.workspace[data-lang=bn] .page-heading p{line-height:1.8}
/* Contrast tokens remain strong for regular content; subdued color is for metadata only. */
.ticket-name h2,.train-card-top strong,.section-heading h2,.route-train strong,.station-grid strong,.route-directory h2,.timetable-row strong,.guide-main h1,.guide-step h3,.guide-aside h2,.guide-aside h3{color:#294231}
.card-journey strong,.journey-times strong,.route-time strong,.detail-facts strong,.timetable-row>span:not(.timeline-dot){color:#46693d}
.page-heading p,.ticket-name p,.location-readout p,.journey-times div>span,.card-journey span,.station-grid small,.route-train small,.route-time span,.route-time>small,.route-directory p,.guide-main .lead,.guide-main>p,.guide-step p,.guide-aside p,.info-card p,.info-note p,.consent-note p{color:#7d8e72}
.popular-route-grid strong,.sms-panel h2,.location-dialog [data-slot=dialog-title],.guide-main>h2,.info-card h3{color:#557747}
.popular-route-grid small,.sms-panel p,.footer-links,.ticket-type,.station-picker strong,.date-field input,.consent-choice,.location-dialog [data-slot=dialog-description]{color:#7b9468}
.card-kicker,.panel-label,.ticket-top .panel-label,.journey-times small,.progress-caption,.train-card-bottom,.train-card-bottom>span,.scheduled-label,.directory-tools>span,.timetable-header,.timetable-row small{color:#91a282}
@media(min-width:1500px){.workspace{padding-top:43px}.map-canvas{height:515px}}
@media(max-width:1240px){.header-inner{padding:0 34px;gap:24px}.top-nav>a{padding:0 11px;gap:6px}.sms-nav{display:none}.workspace{padding:34px}.site-footer{margin:0 34px}.overview-metrics{gap:20px}.network-metrics{gap:20px}.tracking-layout,.detail-layout{grid-template-columns:minmax(0,1fr) 325px;gap:21px}.map-toolbar{padding:20px 23px}.map-canvas{height:506px}.map-legend{gap:12px;padding:16px 22px}.map-legend small{display:none}.ticket-top,.ticket-name{padding-left:21px;padding-right:21px}.ticket-name h2{font-size:1.4rem}.location-readout,.journey-times{padding-left:21px;padding-right:21px}.journey-progress-wrap{padding:0 21px}.selected-panel>.ticket-cta{margin-left:21px;margin-right:21px;width:calc(100% - 42px)}.passenger-actions{margin-left:21px;margin-right:21px}.train-card{padding:19px 19px 0}.train-card-bottom{margin:0 -19px}.card-journey strong{font-size:1.3rem}.popular-route-grid{grid-template-columns:1fr 1fr;gap:20px}.sms-panel{padding:25px}.sms-panel h2{font-size:1.2rem}.sms-icon{display:none}.detail-facts>div{padding:0 17px}}
@media(max-width:1050px){.site-header{height:86px}.header-inner{gap:18px;padding:0 27px}.brand{font-size:1.3rem;gap:9px}.brand-symbol{width:39px;height:42px}.top-nav{gap:3px}.top-nav>a{padding:0 10px;font-size:.8rem}.top-nav>a>svg{display:none}.header-actions{gap:10px}.workspace{padding:30px 27px}.page-heading h1{font-size:2.35rem}.overview-metrics{gap:17px}.network-metrics{gap:17px}.network-metrics strong{font-size:1.2rem}.feed-status{min-width:155px}.tracking-layout{grid-template-columns:minmax(0,1fr) 310px;gap:19px}.map-toolbar{padding:20px;flex-wrap:wrap}.map-toolbar h3{font-size:1rem}.source-select[data-slot]{width:151px}.map-canvas{height:485px}.map-region-label{left:21px;top:20px}.map-context{left:17px;bottom:20px;padding:10px 12px;gap:8px}.map-context-icon{display:none}.map-context strong{font-size:.75rem}.map-controls{right:18px;bottom:20px}.ticket-name h2{font-size:1.3rem}.ticket-top .panel-label{font-size:.75rem;letter-spacing:.3px}.ticket-type{font-size:.8rem}.ticket-mark{height:38px;width:38px}.location-readout>strong{font-size:1.23rem}.location-readout p{font-size:.8rem}.journey-times strong{font-size:1.7rem}.journey-times small{font-size:.75rem;letter-spacing:.1px}.passenger-actions{gap:7px}.passenger-actions button{font-size:.75rem;gap:4px}.train-grid{gap:15px}.card-train-icon{width:38px;height:39px}.train-card-top{gap:9px}.train-card-top strong{font-size:.94rem}.card-open{display:none}.train-card-bottom{font-size:.75rem;padding:11px 14px}.train-card-bottom .badge{font-size:.75rem}.bottom-grid{gap:19px;grid-template-columns:1.35fr 1fr}.popular-panel{padding:23px}.popular-route-grid{grid-template-columns:1fr}.station-grid{grid-template-columns:repeat(3,1fr)}.site-footer{margin:0 27px}.route-result{gap:20px}.guide-layout{gap:30px;grid-template-columns:minmax(0,1fr) 245px}.guide-main{padding:30px}.guide-main h1{font-size:2.1rem}}
@media(max-width:850px){.site-header{height:80px}.header-inner{padding:0 22px;gap:17px}.brand{font-size:1.25rem}.top-nav>a{font-size:.8rem;padding:0 8px;height:37px}.language{padding:9px;font-size:.8rem}.workspace{padding:28px 22px 38px}.page-heading{align-items:flex-start;gap:18px}.page-heading h1{font-size:2.15rem;letter-spacing:-1.3px}.page-heading p{font-size:.875rem}.overview-metrics{gap:0}.network-metrics{display:none}.feed-status{padding:11px;margin-top:5px}.tracking-layout{grid-template-columns:1fr}.map-toolbar{padding:23px 25px;flex-wrap:nowrap}.map-canvas{height:465px}.map-legend{justify-content:flex-start;padding:17px 25px}.map-legend small{display:block}.selected-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:25px;padding:23px;border-radius:18px;align-items:start}.ticket-top{padding:0;grid-column:1;grid-row:1}.ticket-name{padding:15px 0 0;grid-column:1;grid-row:2/4}.ticket-name h2{font-size:1.6rem}.ticket-divider{display:none}.location-readout{padding:0 0 12px;grid-column:2;grid-row:1/3}.location-readout>strong{font-size:1.25rem}.journey-times{padding:13px 0 0;grid-column:1;grid-row:4}.journey-progress-wrap{padding:0;grid-column:1;grid-row:5;margin-top:14px}.selected-panel>.ticket-cta{margin:8px 0 0;width:100%;grid-column:2;grid-row:3;align-self:end}.passenger-actions{margin:12px 0 0;grid-column:2;grid-row:4/6;align-self:start}.passenger-actions button{font-size:.8rem;min-height:48px}.train-grid{grid-template-columns:repeat(2,1fr);gap:15px}.card-open{display:grid}.card-train-icon{height:42px;width:42px}.train-card-top strong{font-size:1rem}.card-journey strong{font-size:1.45rem}.bottom-grid{grid-template-columns:1.25fr 1fr;gap:18px}.sms-panel{padding:23px}.sms-panel h2{font-size:1.15rem}.sms-panel p{font-size:.8rem}.sms-code{gap:10px}.sms-code code{font-size:.9rem;padding:8px 11px}.sms-code strong{font-size:1.4rem}.footer-brand>span{display:none}.route-directory{grid-template-columns:repeat(2,1fr)}.detail-layout{grid-template-columns:1fr}.detail-layout>aside{display:grid;grid-template-columns:1fr;gap:20px}.detail-layout>aside .selected-panel{align-self:start}.info-card{margin:0}.station-grid{gap:14px}.station-grid>a{padding:18px 14px}.route-result{gap:15px}.route-time{min-width:90px}.route-duration{width:105px}.guide-layout{grid-template-columns:minmax(0,1fr) 220px;gap:25px}.guide-main{padding:27px}.guide-main h1{font-size:2rem}.guide-aside{padding:27px 0}.detail-facts{padding:22px 18px}.detail-facts>div{padding:0 14px}.detail-facts strong{font-size:1.4rem}}
@media(max-width:680px){.site-header{height:75px;background:#fff;position:relative}.header-inner{padding:0 19px;gap:15px}.brand{font-size:1.23rem;gap:9px}.brand-symbol{height:38px;width:38px;border-radius:11px}.brand-symbol svg{width:22px}.brand small{font-size:.55rem;letter-spacing:1.8px;margin-top:5px}.header-actions{margin-left:auto;gap:14px}.language{border:0;background:#f1f6ec;color:#779069;font-size:.8rem;padding:8px 10px;border-radius:7px}.language svg{height:14px;width:14px}.mobile-menu{color:#496443;display:flex}.mobile-menu svg{height:21px;width:21px}.top-nav{display:none}.top-nav.expanded{top:75px;background:white;color:var(--ink);padding:12px 18px 18px;box-shadow:0 14px 25px #2038190c;border-bottom:1px solid #e1e8d6;gap:5px}.top-nav.expanded>a{height:44px;padding:0 13px;border-radius:9px;gap:10px;color:#899e72;font-size:.875rem}.top-nav.expanded>a>svg{display:block}.top-nav.expanded>a.active{background:#193b2c;color:#e8f6dc}.sms-nav{display:none}.workspace{padding:28px 18px 32px}.page-heading{display:block;margin-bottom:22px}.eyebrow{font-size:.7rem;letter-spacing:1.15px;margin-bottom:11px}.page-heading h1{font-size:2.23rem;letter-spacing:-1.6px;line-height:1.25}.page-heading p{font-size:.875rem;line-height:1.75;margin-top:11px;max-width:330px}.overview-metrics{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-top:21px}.network-metrics{display:flex;gap:23px;flex-shrink:0}.network-metrics strong{font-size:1.2rem;line-height:1.4}.network-metrics small{font-size:.75rem}.feed-status{width:auto;min-width:0;flex:0 1 auto;padding:10px 12px;margin:0;background:#fff;gap:8px;border-radius:10px}.feed-status span{font-size:.75rem;line-height:1.5}.feed-status small{display:block;margin:2px 0 0;font-size:.75rem;line-height:1.4}.feed-status button{display:none}.feed-status>svg{width:14px;height:14px}.search-panel{padding:0 15px 15px;border-radius:15px;margin-bottom:21px}.search-tabs[data-slot]{height:51px;gap:23px;margin-bottom:13px}.search-tabs [data-slot=tabs-trigger]{height:51px;padding:0 1px;font-size:.83rem;gap:7px}.search-tabs [data-slot=tabs-trigger] svg{width:16px;height:16px}.train-search{height:57px;gap:9px;padding:6px 6px 6px 12px;border-radius:9px}.train-search>svg{width:17px}.train-search input{font-size:.875rem}.train-search .primary{font-size:.8rem;padding:10px 13px;min-height:43px;gap:6px;border-radius:7px;white-space:nowrap}.train-search .primary svg{display:none}.popular-chips{margin-top:13px;gap:7px;font-size:.75rem}.popular-chips>span{display:none}.popular-chips a{font-size:.72rem;padding:4px 7px}.popular-chips a:nth-child(n+4){display:none}.tracking-layout{gap:18px}.map-surface{border-radius:18px;box-shadow:0 9px 25px #1634160c}.map-toolbar{padding:20px 18px 15px;gap:12px;flex-wrap:wrap}.map-toolbar .eyebrow{font-size:.68rem;letter-spacing:1.8px;margin-bottom:4px}.map-toolbar h3{font-size:.94rem;font-weight:550;letter-spacing:-.1px}.source-select[data-slot]{width:139px;height:33px;font-size:.7rem;border-radius:7px;gap:6px;max-width:100%;padding-left:10px;padding-right:7px}.map-canvas{height:400px}.map-canvas>svg{background-size:36px 36px}.map-region-label{left:18px;top:22px}.map-region-label>span{font-size:.65rem;letter-spacing:2px}.map-region-label small{display:none}.map-context{left:15px;bottom:19px;padding:10px 12px;gap:8px;max-width:calc(100% - 82px);border-radius:9px}.map-context-icon{display:none}.map-context strong{font-size:.7rem;line-height:1.5}.map-context small{font-size:.65rem;line-height:1.6;margin-top:3px}.map-controls{right:16px;bottom:19px;gap:6px}.map-controls button{width:35px;height:35px;border-radius:7px}.map-legend{padding:14px 16px;gap:7px 11px;font-size:.66rem;min-height:49px;line-height:1.6}.map-legend>small{display:none}.map-legend i{height:5px;width:5px}.map-message{top:65px;max-width:90%;font-size:.8rem}.selected-panel{display:block;padding:0;border-radius:18px}.ticket-top{padding:20px 22px 18px}.ticket-top .panel-label{font-size:.7rem;letter-spacing:.6px}.ticket-type{font-size:.8rem}.ticket-number{font-size:.75rem;padding:5px 7px}.ticket-mark{height:40px;width:40px}.ticket-name{padding:0 22px 20px}.ticket-name h2{font-size:1.57rem;letter-spacing:-.6px}.ticket-name p{font-size:.875rem;line-height:1.7;margin-bottom:15px}.badge{font-size:.75rem;padding:4px 8px}.ticket-divider{display:flex;margin-bottom:4px}.location-readout{padding:13px 22px 16px}.location-heading small{font-size:.7rem}.location-readout>strong{font-size:1.37rem;line-height:1.5}.location-readout p{font-size:.875rem;line-height:1.7;margin-top:5px}.journey-times{padding:12px 22px 0;gap:14px}.journey-times small{font-size:.7rem;letter-spacing:.7px}.journey-times strong{font-size:1.95rem;line-height:1.5;letter-spacing:-1px}.journey-times div>span{font-size:.875rem;line-height:1.7}.journey-rail{gap:8px;max-width:100px}.journey-progress-wrap{padding:0 22px;margin-top:19px}.progress-caption{font-size:.75rem;margin-top:9px;gap:10px}.progress-caption strong{font-size:.8rem}.selected-panel>.ticket-cta{margin:21px 22px 0;width:calc(100% - 44px);font-size:.9rem;min-height:48px;border-radius:9px}.passenger-actions{margin:14px 22px 22px;gap:13px}.passenger-actions button{font-size:.8rem;padding:11px 6px;min-height:47px;border-radius:8px;gap:7px}.section-heading{margin:28px 0 17px;gap:10px}.section-heading h2{font-size:1.17rem;font-weight:650}.section-heading>a{font-size:.8rem}.count{font-size:.75rem;padding:2px 7px}.train-grid{grid-template-columns:1fr;gap:14px}.train-card{padding:21px 21px 0;border-radius:14px}.train-card-top{gap:11px}.train-card-top strong{font-size:1.04rem;line-height:1.5}.card-train-icon{height:44px;width:44px;border-radius:12px}.card-kicker{font-size:.75rem;letter-spacing:.8px}.card-open{display:grid;height:27px;width:27px}.card-journey{padding:25px 0 22px;gap:13px}.card-journey strong{font-size:1.6rem;font-weight:600;letter-spacing:-.7px}.card-journey span{font-size:.875rem;line-height:1.6;margin-top:5px}.card-rail{max-width:90px;gap:8px}.train-card-bottom{margin:0 -21px;padding:13px 19px;font-size:.75rem;min-height:48px;gap:9px}.train-card-bottom .badge{font-size:.75rem}.bottom-grid{grid-template-columns:1fr;gap:19px;margin-top:28px}.popular-panel{padding:23px 21px;border-radius:15px}.popular-panel>.section-heading{margin-bottom:22px}.popular-route-grid{grid-template-columns:1fr;gap:20px}.popular-route-grid strong{font-size:.94rem;font-weight:500;line-height:1.6}.popular-route-grid small{font-size:.75rem;margin-top:3px}.route-icon{padding:11px;border-radius:11px}.sms-panel{padding:25px 23px;border-radius:15px}.sms-panel h2{font-size:1.24rem;font-weight:600;letter-spacing:-.4px}.sms-panel p{font-size:.875rem;line-height:1.8;margin:9px 0 18px}.sms-icon{display:block;top:27px;right:23px}.sms-icon svg{width:21px}.sms-code{gap:13px;font-size:.875rem}.sms-code code{font-size:1.05rem;padding:8px 13px}.sms-code strong{font-size:1.65rem}.sms-panel>small{font-size:.75rem;line-height:1.7;margin-top:15px}.site-footer{margin:0 18px;padding:24px 0 100px;gap:17px}.footer-brand{gap:9px;font-size:.9rem;flex-wrap:wrap}.footer-brand>span{display:block;width:100%;margin:0;font-size:.8rem;line-height:1.7}.footer-links{font-size:.8rem;gap:22px}.site-footer>p{font-size:.75rem;line-height:1.9}.bottom-nav{display:flex;justify-content:space-around;min-height:70px;padding-top:9px;background:#fffffff7;isolation:isolate;box-shadow:0 -5px 20px #28401904}.bottom-nav>a{font-size:.7rem;gap:5px;min-width:58px;padding:5px 7px;color:#9eb18a;position:relative}.bottom-nav>a svg{width:21px;height:21px}.bottom-nav>a.active{color:#749453;font-weight:550}.bottom-nav>a.active:before{top:0;left:50%;transform:translateX(-50%);height:35px;width:44px}.directory-tools{gap:12px;margin-bottom:23px}.directory-search{padding:15px 17px;border-radius:11px;flex-basis:100%;font-size:.94rem}.directory-tools [data-slot=select-trigger]{height:45px;border-radius:9px;font-size:.875rem}.directory-tools>span{font-size:.8rem}.station-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.station-grid>a{padding:18px 13px;gap:9px;border-radius:12px;align-items:flex-start}.station-icon{padding:0;background:transparent;color:#a9bf8d;margin-top:3px}.station-icon svg{height:18px;width:18px}.station-grid strong{font-size:.875rem;line-height:1.6;font-weight:500}.station-grid small{font-size:.75rem;line-height:1.7;margin-top:5px}.station-grid>a>svg{display:none}.route-search-panel{padding:18px 15px;border-radius:14px}.route-search{grid-template-columns:1fr 32px 1fr;gap:10px}.station-picker{padding:10px 9px;min-height:58px;border-radius:8px;gap:5px}.station-picker>svg{width:15px;height:15px}.station-picker strong{font-size:.875rem;line-height:1.6;margin-top:2px}.station-picker small{font-size:.7rem;line-height:1.6}.swap{width:31px;height:32px}.date-field{padding:9px 11px;border-radius:8px;min-width:0}.date-field small{font-size:.7rem}.date-field input{font-size:.8rem}.route-search>.primary{font-size:.8rem;gap:5px;padding:11px 9px;border-radius:8px}.route-search>.primary svg{width:15px}.route-results{gap:14px}.route-result{padding:20px;gap:15px 21px;border-radius:13px}.route-train{gap:7px 10px;min-width:0;margin-bottom:4px}.route-train strong{font-size:1rem;line-height:1.5;padding-right:15px}.route-train small{font-size:.8rem;line-height:1.7}.train-number{font-size:.75rem;padding:4px 6px;min-width:35px}.route-result>.route-time{min-width:0}.route-time strong{font-size:1.47rem;font-weight:550;line-height:1.5}.route-time span,.route-time>small{font-size:.8rem;line-height:1.7}.route-result>.route-duration{width:81px;font-size:.75rem}.route-duration small{font-size:.7rem;line-height:1.7}.route-result>.muted{font-size:.75rem}.route-result>svg{top:22px;right:15px;width:16px}.route-directory{grid-template-columns:1fr;gap:14px}.route-directory>a{padding:24px;border-radius:13px}.route-directory>a>svg:first-child{margin-bottom:20px}.route-directory h2{font-size:1.13rem;line-height:1.6}.route-directory p{font-size:.875rem;line-height:1.7;margin-top:8px}.breadcrumbs{font-size:.8rem;line-height:1.8;margin-bottom:20px}.detail-facts{grid-template-columns:repeat(2,1fr);gap:19px;padding:20px;border-radius:14px;margin-bottom:21px}.detail-facts>div{padding:0!important}.detail-facts strong{font-size:1.4rem;line-height:1.5;margin-top:4px}.detail-facts small{font-size:.8rem;line-height:1.7}.detail-facts>div:last-child{grid-column:1/-1}.detail-facts>div:last-child svg{float:none;position:absolute;right:0}.detail-layout{gap:22px}.detail-layout>aside{display:grid;grid-template-columns:1fr;gap:20px}.timetable-panel{padding:22px 15px;border-radius:15px}.timetable-panel>.section-heading{margin-bottom:23px}.timetable-panel>.section-heading>span{font-size:.75rem;line-height:1.7;margin-top:7px}.timetable-header{grid-template-columns:1fr 67px 67px;padding-left:23px;font-size:.7rem;line-height:1.7}.timetable-row{grid-template-columns:15px minmax(0,1fr) 67px 67px;gap:7px;min-height:83px}.timetable-row strong{font-size:.875rem;line-height:1.7}.timetable-row small{font-size:.7rem;line-height:1.7;margin-top:4px}.timetable-row>span:not(.timeline-dot){font-size:.875rem}.timetable-row:not(:last-child):before{height:83px;left:6px}.next-stop{margin:0 -6px;padding:0 6px}.next-stop:before{left:12px!important}.info-card{padding:24px;border-radius:14px;margin:0}.info-card h3{font-size:1rem;line-height:1.6}.info-card p{font-size:.875rem;line-height:1.9}.info-card a{font-size:.8rem;line-height:1.7}.guide-layout{grid-template-columns:1fr;margin-top:8px;gap:25px}.guide-main{padding:28px 22px;border-radius:16px}.guide-main h1{font-size:2rem;line-height:1.4;letter-spacing:-.8px}.guide-main .lead{font-size:1rem;line-height:1.85;margin:20px 0 25px}.large-sms{padding:21px 17px;border-radius:12px;gap:15px;flex-wrap:wrap}.large-sms code,.large-sms strong{font-size:1.5rem}.large-sms>svg{height:21px;width:21px}.large-sms>span{font-size:.875rem}.guide-step{gap:15px;margin:27px 0}.guide-step p{font-size:.94rem;line-height:1.9}.guide-step h3{font-size:1rem;line-height:1.8}.info-note{padding:17px;border-radius:10px;gap:11px}.info-note p{font-size:.875rem;line-height:1.85}.guide-aside{padding:13px 15px}.guide-aside p{font-size:.94rem;line-height:1.9}.location-dialog{padding:27px!important;max-height:90svh;overflow-y:auto;border-radius:20px!important}.location-dialog [data-slot=dialog-title]{font-size:1.2rem;line-height:1.6}.location-dialog [data-slot=dialog-description]{font-size:.875rem;line-height:1.8}.consent-note{padding:17px;gap:11px;border-radius:10px}.consent-note p{font-size:.875rem;line-height:1.8}.consent-choice{font-size:.875rem;line-height:1.8}.location-status{font-size:.875rem;line-height:1.8}.dialog-sms{font-size:.875rem;line-height:1.7}.location-dialog>.primary{font-size:.875rem;line-height:1.6}.sharing-banner{font-size:.875rem;line-height:1.8;padding:15px}.data-warning{font-size:.875rem;line-height:1.8;align-items:flex-start}.empty{padding:45px 22px}.empty p{font-size:.875rem;line-height:1.9}.workspace[data-lang=bn] h1{font-size:2.1rem;line-height:1.5}.workspace[data-lang=bn] .page-heading p{font-size:.94rem}}
@media(max-width:380px){.workspace{padding-left:14px;padding-right:14px}.header-inner{padding:0 15px}.page-heading h1{font-size:2.05rem}.header-actions{gap:10px}.network-metrics{gap:18px}.overview-metrics{gap:14px}.feed-status{padding:9px}.feed-status small{font-size:.68rem}.map-toolbar{padding-left:15px;padding-right:15px}.map-toolbar h3{font-size:.875rem}.source-select[data-slot]{width:128px}.popular-chips a{font-size:.68rem}.map-legend{font-size:.62rem;gap:7px 8px}.station-grid{grid-template-columns:1fr}.ticket-name h2{font-size:1.45rem}.passenger-actions button{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.train-card,.station-grid>a,.route-directory>a{transform:none!important;transition:none!important}}

/* Reading and interaction contrast. */
.card-kicker,.ticket-top .panel-label,.ticket-type,.ticket-name p,.location-heading small,.location-readout p,.journey-times small,.journey-times div>span,.progress-caption,.train-card-bottom,.train-card-bottom>span,.scheduled-label,.directory-tools>span,.timetable-header,.timetable-row small,.network-metrics small,.feed-status small,.popular-chips>span,.section-heading>span,.footer-links,.footer-brand>span,.site-footer>p{color:#6c7c62}
.page-heading p,.card-journey span,.station-grid small,.route-train small,.route-time span,.route-time>small,.route-directory p,.guide-main .lead,.guide-main>p,.guide-step p,.guide-aside p,.info-card p,.info-note p,.consent-note p,.location-dialog [data-slot=dialog-description],.consent-choice,.dialog-sms{color:#647b5d}
.popular-route-grid strong,.sms-panel h2,.sms-code strong,.large-sms code,.large-sms strong,.route-time strong,.detail-facts strong,.timetable-row>span:not(.timeline-dot),.guide-main>h2,.location-dialog [data-slot=dialog-title],.info-card h3{color:#365b35}
.popular-route-grid small,.sms-panel p,.sms-panel>small,.sms-code>span,.large-sms>span,.station-picker small,.date-field small,.route-duration,.route-duration small,.route-result>.muted,.location-status,.info-card a,.guide-aside>a:not(.secondary){color:#69865b}
.language,.station-picker strong,.date-field input,.directory-tools [data-slot=select-trigger],.directory-search input,.section-heading>a{color:#466d3e}
.popular-chips a{color:#698060}.train-card-bottom .badge.estimate{color:#8b703a}.badge.estimate{color:#886729}.badge.gps{color:#347541}.badge.report{color:#406d92}.ticket-number{color:#5f7d43}.ticket-cta.primary{color:#3e632a}.passenger-actions button{color:#657c52}.count{color:#6e8752}.scheduled-label{color:#6a7f5a}.train-number{color:#627f3c}.map-context strong{color:#cde5cc}.map-context small{color:#88ab8b}.map-legend{color:#9cb4a0}.map-legend>small{color:#80a086}.map-region-label>span{color:#668d76}.brand small{color:#778774}.feed-status span{color:#4f6d48}.feed-status small{color:#7c8e75}.train-search input::placeholder,.directory-search input::placeholder{color:#82927c}.bottom-nav>a{color:#778f62}.bottom-nav>a.active{color:#4b713c}.guide-aside .secondary{color:#567844}.empty h3{color:#5b7b46}.empty p,.compact-empty{color:#7a9066}.source-select[data-slot]{font-size:.875rem}
@media(max-width:680px){.map-context strong{font-size:.75rem}.map-context small{font-size:.75rem}.map-legend{font-size:.75rem}.source-select[data-slot]{font-size:.75rem;width:145px}.popular-chips a{font-size:.75rem}.bottom-nav>a{font-size:.75rem}.map-toolbar .eyebrow{font-size:.75rem}.map-region-label>span{font-size:.75rem}.train-search .primary{font-size:.875rem}.ticket-top .panel-label,.location-heading small,.journey-times small{font-size:.75rem}.popular-route-grid small{font-size:.8rem}.station-picker small,.date-field small,.timetable-header,.timetable-row small{font-size:.75rem}.sms-panel>small{font-size:.8rem}.card-kicker{font-size:.75rem}.network-metrics small{font-size:.75rem}}

/* ── Train Tracker additions to the premium design ───────────────────────────
   The design was built with shadcn/Radix components; our pages are plain
   server-rendered HTML, so the handful of base styles those components brought
   are restated here, followed by the parts this site has that the design does
   not draw (live countdowns, filters, the route map, station boards). */

.skip-link { position: absolute; left: -9999px; top: 10px; z-index: 100; background: #183c2e; color: #edf9e8; padding: 10px 14px; border-radius: 8px; font-weight: 600; }
.skip-link:focus { left: 12px; }

/* base styles of the components the design used */
[data-slot="tabs-list"] { display: inline-flex; align-items: center; justify-content: center; }
[data-slot="tabs-trigger"] { display: inline-flex; align-items: center; justify-content: center; gap: 7px; white-space: nowrap; cursor: pointer; }
.js .search-panel:not(.route) .p-route, .js .search-panel.route .p-train { display: none; }
.js .search-tabs-wrap > [data-slot="tabs-content"] { animation: tt-fade .18s ease-out; }
[data-slot="progress"] { position: relative; width: 100%; overflow: hidden; }
[data-slot="progress-indicator"] { height: 100%; width: 100%; transition: transform .9s ease; }
select[data-slot="select-trigger"] { appearance: none; -webkit-appearance: none; display: flex; align-items: center; border: 1px solid; border-radius: 8px; height: 38px; padding: 0 34px 0 12px; font: inherit; cursor: pointer; background-repeat: no-repeat; background-position: right 11px center; background-size: 14px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23739b7a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
.directory-tools select[data-slot="select-trigger"] { background-color: #fff; border-color: #e0e7d8; color: #526f44; height: auto; min-height: 54px; border-radius: 12px; padding: 0 40px 0 16px; }
@keyframes tt-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* the journey search: native selects inside the design's station pickers */
.station-picker { position: relative; cursor: pointer; }
.station-picker:focus-within { outline: 3px solid #42bd96; outline-offset: 2px; }
.station-picker select { appearance: none; -webkit-appearance: none; display: block; width: 100%; border: 0; background: transparent; padding: 0; font: inherit; font-size: .94rem; font-weight: 600; color: var(--ink); cursor: pointer; text-overflow: ellipsis; }
.station-picker select:focus-visible { outline: none; }
.station-picker > svg:last-child { color: #a5b5ac; }
.swap { display: grid; place-items: center; }
.swap.spin svg { animation: tt-spin .3s ease; }
@keyframes tt-spin { to { transform: rotate(180deg); } }
.train-search .clear-q { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 8px; color: #8b9a90; flex: none; }
.train-search .clear-q:hover { background: #f2f6f3; }

/* passenger actions are links here (they open the live map's sharing flows) */
.passenger-actions a { background: transparent; border: 1px solid #dce6e1; border-radius: 7px; display: flex; align-items: center; justify-content: center; gap: 6px; flex-direction: column; font-size: .875rem; color: #597368; padding: 8px 3px; min-height: 51px; text-align: center; }
.passenger-actions a:hover { background: #eff8f3; }
.selected-panel .ticket-delay { margin-top: 4px; font-size: .8rem; color: #87948d; }
.selected-panel .ticket-delay.late { color: #a5651c; font-weight: 600; }
.selected-panel .ticket-note { padding: 14px 23px 22px; font-size: .75rem; line-height: 1.6; color: #87948d; }

/* headings */
.h1-no { color: #9aaba3; font-weight: 500; letter-spacing: -1px; }
.heading-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.heading-actions .secondary, .page-heading > .secondary { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #dde6de; white-space: nowrap; }

/* ── the dark railway map ── */
/* The map fills its card: the country drawn as large as the card allows, no
   boxes over it (the selected train is named in a strip below), pins big
   enough to tap, the selected one with its number. */
.tracking-layout .map-surface { display: flex; flex-direction: column; min-height: 0; }
.map-canvas { overflow: hidden; height: auto; min-height: 560px; flex: 1 0 auto; background: #112921; }
.mapstage { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; touch-action: none; cursor: grab; container-type: size;
  background: radial-gradient(ellipse at 50% 42%, #1b352870, transparent 66%), linear-gradient(#29423420 1px, transparent 1px), linear-gradient(90deg, #29423420 1px, transparent 1px); background-size: auto, 46px 46px, 46px 46px; }
.mapstage.dragging { cursor: grabbing; }
.mapzoom { height: min(96cqh, 133cqw); aspect-ratio: 560 / 792; flex: none; transform-origin: center; transition: transform .25s ease; }
.mapstage.dragging .mapzoom { transition: none; }
.mapzoom .mapbox { height: 100%; width: 100%; overflow: visible; }
.mapbox { position: relative; overflow: hidden; }
.mapin { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
.mapin > img, .mapin > svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.mcity { position: absolute; transform: translate(10px, -50%) scale(var(--iz, 1)); transform-origin: left center; font: 500 13px/1 Inter, "Hind Siliguri", sans-serif; color: #b9d0bc; white-space: nowrap; pointer-events: none;
  text-shadow: 0 0 4px #112921, 0 0 4px #112921, 0 0 3px #112921, 0 1px 2px #112921; }
.mcity.w { transform: translate(calc(-100% - 10px), -50%) scale(var(--iz, 1)); transform-origin: right center; }
.mcity-dot { position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: #112921; border: 2px solid #8fb79b; pointer-events: none; transform: scale(var(--iz, 1)); }
.pin { position: absolute; width: 40px; height: 40px; margin: -20px 0 0 -20px; padding: 0; border: 0; background: transparent; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 1;
  transform: scale(var(--iz, 1)); transition: left .9s linear, top .9s linear; }
.pin .pin-dot { width: 18px; height: 18px; border-radius: 50%; background: #e5b97f; border: 2.5px solid #112921; box-shadow: 0 0 0 1.5px rgba(229, 185, 127, .55), 0 2px 6px rgba(0, 0, 0, .45); display: flex; align-items: center; justify-content: center; color: #173b2e; transition: width .2s, height .2s, box-shadow .2s; }
.pin .pin-dot::after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #112921; }
.pin .pin-dot svg { display: none; }
.pin.gps .pin-dot { background: #6dd4a7; box-shadow: 0 0 0 1.5px rgba(109, 212, 167, .6), 0 2px 6px rgba(0, 0, 0, .45); }
.pin.report .pin-dot { background: #8cc4ff; box-shadow: 0 0 0 1.5px rgba(140, 196, 255, .6), 0 2px 6px rgba(0, 0, 0, .45); }
.pin:hover .pin-dot, .pin:focus-visible .pin-dot { width: 22px; height: 22px; border-color: #efffe3; }
.pin:focus-visible { outline: none; }
.pin.selected { z-index: 3; }
.pin.selected .pin-dot { width: 30px; height: 30px; background: #ccf9b9; border-color: #efffe8; box-shadow: 0 0 0 9px rgba(177, 248, 181, .14), 0 0 0 10.5px rgba(188, 249, 189, .5), 0 4px 12px rgba(0, 0, 0, .5); }
.pin.selected .pin-dot::after { display: none; }
.pin.selected .pin-dot svg { display: block; width: 16px; height: 16px; }
.pin .pin-tag { display: none; }
.pin.selected .pin-tag { display: block; position: absolute; left: calc(100% - 2px); top: 50%; transform: translateY(-50%); background: #d5fac9; color: #153329; font: 700 13px/1.3 Manrope, Inter, sans-serif; padding: 4px 9px; border-radius: 8px; white-space: nowrap; box-shadow: 0 3px 10px rgba(0, 0, 0, .35); }
.pin.hide { display: none; }
.map-controls { position: absolute; right: 16px; top: 16px; bottom: auto; display: flex; flex-direction: column; gap: 7px; z-index: 4; }
.map-controls button { width: 40px; height: 40px; }
.map-message { position: absolute; left: 50%; top: 16px; transform: translateX(-50%); max-width: calc(100% - 32px); z-index: 4; border-radius: 10px; }
.map-selbar { display: flex; align-items: center; gap: 14px; padding: 14px 25px; border-top: 1px solid #27432f; background: #152f25; color: #e2eee2; }
.map-selicon { width: 38px; height: 38px; border-radius: 10px; background: #294b30; color: #c4edb9; display: grid; place-items: center; flex: none; }
.map-seltext { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.map-seltext small { font-size: .7rem; letter-spacing: 1.4px; text-transform: uppercase; color: #7c9986; }
.map-seltext strong { font-family: Manrope, Inter, "Hind Siliguri", sans-serif; font-size: 1rem; font-weight: 700; color: #e9f5ec; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.map-seltext strong small { font: 600 .75rem/1 Inter, sans-serif; letter-spacing: 0; text-transform: none; color: #153329; background: #d5fac9; padding: 3px 7px; border-radius: 6px; margin-left: 8px; vertical-align: 2px; }
.map-selhint { font-size: .75rem; color: #779d7c; white-space: nowrap; }
.map-legend { min-height: 48px; padding: 12px 25px; }
@media (prefers-reduced-motion: reduce) { .pin, .mapzoom { transition: none; } }

/* the train page's route map and the station's location map (dark cards) */
.route-map-card { margin-top: 20px; border-radius: 18px; background: #112921; color: #d6e6da; overflow: hidden; border: 1px solid #1d3a30; }
.route-map-card .map-toolbar { padding: 20px 22px 6px; }
.route-map-card .map-toolbar h3 { color: #e9f5ec; font-family: Manrope, Inter, "Hind Siliguri", sans-serif; font-weight: 650; font-size: 1rem; }
.route-map-card .route-canvas { height: auto; background: linear-gradient(#29423420 1px, transparent 1px), linear-gradient(90deg, #29423420 1px, transparent 1px); background-size: 46px 46px; }
.route-map-card .map-legend { border-top: 1px solid #1d3a30; }
.route-map-card .map-legend a { color: #b2c7b6; text-decoration: underline; }
.rstop { position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: #112921; border: 2px solid #9fc6a9; }

/* "my station" on the train page */
.tl-item { display: flex; align-items: stretch; gap: 6px; }
.tl-item > .timetable-row { flex: 1; min-width: 0; }
.mine-btn { flex: none; align-self: center; width: 40px; height: 40px; border-radius: 10px; border: 1px solid transparent; background: transparent; color: #aebf9a; display: grid; place-items: center; }
.mine-btn:hover { background: #f2f7f0; color: #2f5a42; border-color: #dde6de; }
.mine-btn[aria-pressed="true"] { background: #d1f7be; color: #183c2e; border-color: #b8d693; }
.tl-item.mine > .timetable-row { background: #f4fae8; border-radius: 10px; }
.tl-item.mine .timetable-row strong::after { content: " · " attr(data-mine); color: #4f7a2c; font-weight: 600; font-size: .8rem; }
.minebox { display: flex; align-items: center; gap: 14px; padding: 16px 20px; margin-bottom: 14px; border-radius: 14px; background: #f1f8e3; border: 1px solid #d3e2cb; }
.minebox .mine-ic { width: 40px; height: 40px; border-radius: 10px; background: #d1f7be; color: #183c2e; display: grid; place-items: center; flex: none; }
.minebox .grow { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.minebox small { font-size: .7rem; letter-spacing: 1.2px; text-transform: uppercase; color: #749182; }
.minebox strong { font-family: Manrope, Inter, "Hind Siliguri", sans-serif; font-size: 1.05rem; color: #132e28; }
.minebox span { font-size: .85rem; color: #4f7a2c; font-weight: 600; }
.minebox .secondary { padding: 9px 14px; min-height: 40px; }
.mine-hint { margin: 0 0 14px; }

/* timetable states */
.timetable-row.past { opacity: .6; }
.timetable-row.here .timeline-dot { background: #3ddc84; box-shadow: 0 0 0 4px rgba(61, 220, 132, .22); }
.timetable-row .eta { color: #a5651c; font-weight: 600; }
.timetable-row .tl-state { color: #3f7a4f; font-weight: 600; }

/* next train, filters (route + station pages) */
.next-card { display: flex; align-items: center; gap: 16px; padding: 18px 22px; border-radius: 14px; background: #fff; border: 1px solid #e1e7dd; margin: 0 0 16px; box-shadow: 0 4px 14px #1a371402; }
.next-card .next-icon { width: 44px; height: 44px; border-radius: 11px; background: #f1f8e3; color: #5c8a3c; display: grid; place-items: center; flex: none; }
.next-card > div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.next-card small { font-size: .75rem; color: #87948d; letter-spacing: .3px; }
.next-card strong { font-family: Manrope, Inter, "Hind Siliguri", sans-serif; font-size: 1.08rem; font-weight: 700; color: #132e28; }
.next-card span { font-size: .85rem; color: #72817e; }
.next-card b { font-family: Manrope, Inter, sans-serif; font-size: 1.3rem; font-weight: 800; color: #183c2e; white-space: nowrap; font-variant-numeric: tabular-nums; }
.filter-chips { display: flex; flex-wrap: wrap; align-items: center; margin: 0 0 18px; }
.fchip { min-height: 36px; padding: 6px 12px; border-radius: 7px; background: #fff; border: 1px solid #e1e7dd; color: #5d7466; font-size: .8rem; font-weight: 500; }
.fchip:hover { background: #eef4e9; }
.fchip[aria-pressed="true"] { background: #183c2e; color: #edf9e8; border-color: #183c2e; }
.filter-chips .sep { width: 1px; height: 20px; background: #e1e7dd; margin: 0 6px; }
.route-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 22px; }
.route-facts strong { font-size: 1.05rem !important; overflow-wrap: anywhere; }

/* route rows: off on the chosen day, the next train, duration bar */
.route-result.off { opacity: .55; }
.route-result.isnext { border-color: #b8d693; box-shadow: 0 0 0 3px #f1f8e3; }
.route-result .nb.next { display: inline-block; margin-left: 8px; font-size: .7rem; font-weight: 650; background: #d1f7be; color: #183c2e; border-radius: 5px; padding: 1px 7px; vertical-align: 2px; }
.route-duration > div { position: relative; }
.route-duration > div > i { display: block; position: absolute; left: 0; top: 0; height: 100%; background: #9cc58a; border-radius: 3px; }
.route-result.fastest .route-duration > div > i { background: #3f8f5a; }
.route-result.gone { opacity: .5; }
.route-result .muted .in { display: block; margin-top: 3px; color: #3f7a4f; font-weight: 600; }
.route-result .muted .in.soon { color: #a5651c; }
.route-result .muted .in .late { display: block; color: #a5651c; }
.wide-btn { display: flex; width: 100%; justify-content: center; margin-top: 14px; border: 1px solid #dde6de; }
.fine { font-size: .8rem; color: #87948d; margin-top: 12px; line-height: 1.7; }
.fine a, .about-block a, .guide-main p a, .info-note a { color: #2f5a42; text-decoration: underline; text-underline-offset: 2px; }

/* station page extras */
.station-extra { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 20px; margin-top: 30px; align-items: start; }
.station-extra .route-map-card { margin-top: 0; }
.station-extra .popular-panel .popular-route-grid { grid-template-columns: 1fr 1fr; }

/* directory extras */
.more-routes a small { color: #a5b49f; margin-left: 2px; }
.about-block { margin-top: 36px; }
.about-block p { color: #5f716b; line-height: 1.85; max-width: 82ch; font-size: .94rem; }
.compact-empty { padding: 28px 22px; }
.empty-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 20px; }
.notfound h1 { margin-top: 10px; }

/* guides, app, privacy */
.guide-layout.single { grid-template-columns: minmax(0, 820px); }
.prose h2 { margin-top: 30px; margin-bottom: 10px; }
.prose ul.steps { list-style: disc; padding-left: 20px; display: grid; gap: 8px; color: #4f625c; line-height: 1.75; }
.prose p { color: #4f625c; line-height: 1.8; }
.guide-main h2 { margin-top: 28px; }
.info-note.hash code { display: block; word-break: break-all; white-space: normal; font-size: .78rem; margin: 3px 0 8px; }

/* "On a train? Share your live location" — the compact lime call-out (home, running train pages) */
.detect-callout { display: flex; align-items: center; gap: 14px; margin: 18px 0 0; padding: 14px 18px; border-radius: 14px; background: #d9f5c5; border: 1px solid #c9e3b4; color: #2f5221; }
.timetable-panel .detect-callout { margin: 0 0 18px; }
/* the station page's "At <station> now?" — above the board, under the heading */
.checkin-callout { margin: 0 0 18px; }
.detect-ic { width: 42px; height: 42px; border-radius: 11px; background: #173c31; color: #ccf9b9; display: grid; place-items: center; flex: none; }
.detect-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.detect-txt strong { font-family: Manrope, Inter, "Hind Siliguri", sans-serif; font-size: 1.02rem; color: #24451f; }
.detect-txt span { font-size: .86rem; line-height: 1.5; color: #3f6132; }
.detect-btn { display: inline-flex; align-items: center; gap: 4px; padding: 10px 14px; min-height: 42px; border-radius: 9px; background: #173c31; color: #ccf9b9; font-size: .875rem; font-weight: 600; white-space: nowrap; flex: none; }
.detect-callout:hover .detect-btn { background: #0f2b23; }
@media (max-width: 680px) {
  .detect-callout { flex-wrap: wrap; padding: 14px 16px; }
  .detect-txt { flex-basis: calc(100% - 56px); }
  .detect-btn { width: 100%; justify-content: center; }
}

/* contrast: the design's pale green info card text, a little darker for legibility */
.info-card h3 { color: #567a37; }
.info-card p { color: #6f875a; }
.info-card a { color: #4f7a2c; }

@media (max-width: 1050px) {
  .route-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  .station-extra { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .next-card { flex-wrap: wrap; padding: 16px; }
  .next-card b { width: 100%; font-size: 1.15rem; }
  .station-extra .popular-panel .popular-route-grid { grid-template-columns: 1fr; }
  .heading-actions { width: 100%; }
  .heading-actions > * { flex: 1; justify-content: center; }
}
.feed-status button.spin svg, .swap.spin svg { animation: tt-spin .45s ease; }
.site-footer .footer-links { flex-wrap: wrap; row-gap: 8px; }

@media (max-width: 850px) {
  /* the card is as tall as the country needs at its width: nothing cut off */
  .map-canvas { min-height: 0; height: auto; aspect-ratio: 560 / 760; flex: none; }
  .mapzoom { height: 96cqh; }
  .map-controls { right: 12px; top: 12px; }
  .map-controls button { width: 44px; height: 44px; }
  .map-selbar { padding: 12px 16px; }
  .map-selhint { display: none; }
  .map-legend { padding: 10px 16px; gap: 10px 14px; }
}
@media (max-width: 420px) {
  .mcity { font-size: 12px; }
  .pin .pin-dot { width: 16px; height: 16px; border-width: 2px; }
  .pin.selected .pin-dot { width: 28px; height: 28px; }
}

/* ── Responsive audit (2026-10-03) ─────────────────────────────────────────
   Fixes found by the page × viewport audit; the design's look is kept. */
/* the train page's route map and the station's location map are exactly as
   tall as their crop (the home map's min-height / phone aspect-ratio do not
   apply to them): no empty dark area under the map */
.route-map-card .route-canvas { min-height: 0; height: auto; aspect-ratio: auto; flex: none; }

/* the home map's east-coast labels (Chattogram, Sylhet) go left of their dot
   on narrow screens, where the label would run past the map's edge */
@media (max-width: 480px) {
  .map-surface .mcity.e { transform: translate(calc(-100% - 10px), -50%) scale(var(--iz, 1)); transform-origin: right center; }
}

/* the journey form at 320–360 px: the pickers keep their label on one line
   ("From station" needs ~71 px) by dropping their pin and chevron icons */
@media (max-width: 360px) {
  .station-picker > span { min-width: 0; flex: 1; }
  .station-picker small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .station-picker > svg { display: none; }
}

/* tap targets: every control at least 40×40 CSS px on phones and tablets,
   extended without moving the design (negative margins absorb the growth) */
.mobile-menu { width: 44px; height: 44px; justify-content: center; margin: 0 -12px 0 -11px; border-radius: 10px; }
.mobile-menu:hover { background: #f1f6ec; }
@media (max-width: 1024px) {
  .language { min-height: 40px; display: inline-flex; align-items: center; }
  .brand { min-height: 44px; }
  .top-nav > a { height: 40px; min-width: 44px; justify-content: center; }
  .feed-status button { width: 40px; height: 40px; flex: none; padding: 0; line-height: 0; margin: -7px -10px -7px -4px; } /* the design hides it under 380 px */
  .fchip { min-height: 40px; }
  .heading-actions .secondary, .page-heading > .secondary { min-height: 40px; }
  .section-heading > a { min-height: 40px; display: inline-flex; align-items: center; margin-block: -8px; }
  .popular-chips a { min-height: 40px; display: inline-flex; align-items: center; }
  .footer-links a { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; min-width: 40px; margin-block: -11px; }
  .info-card a, .guide-aside > a:not(.secondary) { min-height: 40px; display: inline-flex; align-items: center; }
  .info-card a { margin: 10px 0 -9px; }
  .map-legend a { display: inline-flex; align-items: center; min-height: 40px; margin-block: -12px; }
  .source-select[data-slot] { height: 40px; }
  .train-search input { align-self: stretch; min-height: 40px; }
  .directory-search input { min-height: 40px; margin-block: -9px; }
  .station-picker select { min-height: 40px; margin: -8px 0 -9px; }
  .date-field input { min-height: 40px; margin: -10px 0 -11px; }
  .swap { width: 40px; height: 40px; }
}
@media (max-width: 850px) {
  .route-search { grid-template-columns: 1fr 40px 1fr; }
}
