
#ezoic-pub-ad-placeholder-101 { max-height: 350px; overflow: scroll; min-height: 280px !important; }
.ads { min-height:30px !important; } span.ezoic-ad { min-height: 25px !important; }
.adsx * { overflow: overlay;scrollbar-width: thin; width: 100% !important; position:relative; display:block; }



#popup {
    position: fixed; top: 10px; left: 10px; right: 10px; height: 99vh;  padding: 10px; overflow: overlay;
    background-color: #fff;  box-shadow: 0 0 10px #ccc;  z-index: 1000;
    table { max-height:unset;  } button { float:right; }
}

.history-items {display: flex; gap: 20px;white-space: nowrap;overflow-x: overlay;scrollbar-width: thin; margin:-12px 0 -12px}

.progress { height: 5px; border: 0; width: 95%; margin: -13px auto; }

.loading { pointer-events: none;  }
.loading .progress { pointer-events: none; background-image: linear-gradient(90deg, teal 0%,  #209dd5 100%) !important;background-repeat: no-repeat  !important; background-colorx:teal !important; animation-timing-function: ease-out; }
button.loading, input[type="submit"].loading, .loading button, .loading .progress { animation: hLoading 7s infinite; } li.loading { animation: vLoading 3s infinite;  }
@keyframes hLoading { 0% { background-size:0% 100%; }  100% { background-size:100% 100%; } }
@keyframes vLoading { 0% { background-size:0% 100%; }  100% { background-size:100% 100%; } }








/* --- EDITORIAL SYSTEM RESET --- */
* {box-sizing: border-box;margin: 0;padding: 0;/* transition: all 0.2s ease; */-webkit-font-smoothing: antialiased;}

/* --- DEFAULT WARM EDITORIAL THEME VARIABLES --- */
body {
  --bg: #faf7f2;
  --surface: #ffffff;
  --border: #e6dfd5;
  --text: #1a1612;
  --text-muted: #6e6559;
  --accent: #b5892f; --primary-color:#b5892f;
  --accent-light: #fbf9f5;
  --heading-font: "Georgia", serif;
  --nav-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --body-font: "Times New Roman", Times, serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* padding: 32px 16px; */
  font-family: var(--body-font);
  font-size: 16px;
  line-height: 1.6;
}

/* --- CANVAS LAYOUT & HEADER --- */
main {background: var(--surface);padding: 0;display: flex;flex-direction: column;gap: 1.5em; max-width: 100%;}
.app-header {text-align: center;}
.app-header h1 { font-family: var(--heading-font); font-size: 36px; font-weight: 700; color: var(--text); letter-spacing: -0.5px; margin-bottom: 8px; }
.app-header p { font-family: var(--nav-font); font-size: 14px; color: var(--text-muted); line-height: 1.5; padding: 0 12px; }

main { min-height: 98.1vh; }
main>* {
    max-width: 480px;
    padding: 0 17px;
}

/* --- FORMS & INPUT APPARATUS --- */
#input { display: flex; flex-direction: column; gap: 20px; }
.search-box { position: relative; display: flex; align-items: center; background: var(--bg); border: 1px solid var(--border); border-radius: 14px; padding: 0 16px; }
.search-box:focus-within { border-color: var(--accent); background: var(--surface); box-shadow: 0 0 0 4px rgba(181,137,47,0.08); }
.search-box input { width: 100%; height: 54px; background: transparent; border: none; outline: none; color: var(--text); font-family: var(--nav-font); font-size: 16px; font-weight: 500; }
#trainInfo { font-size: 16px; opacity: 0.6; padding-left: 8px; }

/* --- SEGMENTED NAVIGATION CONTROLS --- */
#date-container {display: flex; justify-content: space-between; gap: 7px;background: var(--bg);padding: 5px;border-radius: 7px;border: 1px solid var(--border);overflow-x: auto;scroll-snap-type: x mandatory;scrollbar-width: none;flex-direction: row-reverse;}
#date-container input, #services input {position: absolute;opacity: 0;width: 0;height: 0;}
#date-container label:has(input:checked) {background: var(--surface);color: var(--text);border: 1px solid var(--border);box-shadow: 0 2px 8px rgba(0,0,0,0.02);}
#date-container::-webkit-scrollbar { display: none; }
#date-container label { scroll-snap-align: start;text-align: center;padding: 0.6em 17px;font-size: 14px;font-weight: 600;color: var(--text-muted);border-radius: 7px;cursor: pointer;position: relative;transition: all 0.15s ease;white-space: nowrap;height: 38px;font-family: var(--nav-font); border: 1px solid #e8e8e8;}


#services {display: grid;grid-template-columns: repeat(3, 1fr);gap: 10px;}
#services label { display: flex; align-items: center; justify-content: center; padding: 14px; font-family: var(--nav-font); font-size: 13px; font-weight: 600; color: var(--text-muted); background: var(--bg); border: 1px solid var(--border); border-radius: 12px; cursor: pointer; text-align: center; line-height: 1.3; }
#services label:has(input:checked) { background: var(--accent-light); color: var(--accent); border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }

/* --- APP STATE FEEDBACK --- */
#output { background: var(--bg); border: 1px dashed var(--border); border-radius: 14px; padding: 24px 0; text-align: center; font-family: var(--nav-font); font-size: 14px; color: var(--text-muted); font-style: italic; }

/* --- EDITORIAL CONTENT FLOW (SEO) --- */
.seo-hub {display: flex;flex-direction: column;gap: 15px;border-top: 1px solid var(--border);padding-top: 28px;}
.seo-hub article {display: flex;flex-direction: column;gap: 8px;padding: 0 10px; border-bottom: 1px dashed var(--border);  padding-bottom: 17px; }
.seo-hub h2 {font-family: var(--heading-font);font-size: 18px;}
.seo-hub p {/* font-family: var(--body-font); */font-size: 15px;color: var(--text-muted);/* line-height: 1.6; *//* text-align: left; */}
#trust-anchor {margin-top: 16px;font-family: var(--nav-font);font-size: 12px;color: var(--text-muted);}



.affiliatex::before { 
    content: "Transparency Notice: This utility platform operates strictly as an autonomous engineering project utilizing public records. It holds no direct commercial contract, endorsement, or administrative affiliation with official government railway ministries, IRCTC, or CRIS registries."; 
    display: block; 
    font-size: 0.75rem; 
    line-height: 1.5; 
    color: var(--muted); 
    margin-bottom: 2rem; 
    border-bottom: 1px dashed var(--border); 
    padding-bottom: 1.5rem; 
    text-align: justify;
}





#output { scroll-margin-top: 50px; 
    padding: 24px 0;
    font-style: normal;
    color: black;
    font-family: georgia;
    font-size: 15.5px;
    h2, h3,p, div { margin-bottom:15px;  } .card p {text-align:left;margin-left: 2.5em;}

  table th, table td { border-right: 1px solid #ccc; border-bottom: 1px solid #ddd; padding: 4px 8px; text-align: center; }
  table td.transition-occupied-onboard { border-top: 2px solid #aaa; }
  table td.occupied.transition-from-empty { background: linear-gradient(to bottom, #fff 50%, #e0e0e0 50%); }
  table td.empty.transition-from-occupied { background: linear-gradient(to bottom, #eee 25%, #fff 50%); }
  table td.empty { background: #fff; }  table td:first-child { text-align:left; }
  table thead th, table tbody td:first-child, #popup tbody tr:first-child { position: sticky; border: 1px solid #ddd; top: 0; left: 0; z-index: 30; background-color: #eee; }
  .chart-table { th, td { border-bottom-color: #f5f5f5; } }
}
#popup table { max-height:75vh; }


.coach-layout {display: flex;row-gap: 14px; flex-wrap: wrap; justify-content: space-between; list-style-type: none; margin:0; padding:0; }
.coach-layout>*, .coach {text-align:center;padding: 8px 0px;border-radius: 4px;border: 1px solid #ccc;background: #fafafa;cursor: pointer;color: black;min-width: 23%;box-sizing: border-box;}
.coach-layout button, .coach-list button, .coach-btn { width: calc(20% - 22px); text-align:center; margin: 4px; padding: 6px 12px; border-radius: 4px; border: 1px solid #ccc;background: #fafafa;cursor: pointer;color: black;}
div,section { scrollbar-width: none !important; -ms-overflow-style: none; }  div::-webkit-scrollbar, section::-webkit-scrollbar { width: 0; height: 0; display: none; }


table { max-height:60vh; border-spacing:0; border-width: 1px 0 0 1px; margin: 0 0 1.5em; display:block; overflow:overlay; scrollbar-width:thin; padding-bottom:7px; white-space: nowrap; border-collapse: collapse;background-color: #f0f0f0;}


#speedometer-main-btn {cursor:pointer;color: white;background-color: var(--primary-color);font-weight:bold; width:98%; font-size:16px; border:0; padding: 10px 20px !important;}


#mapimg { max-width: 100%;    object-fit: contain; }


/* The Blue User GPS Pulsar */
.gps-pulsar .dot {
    width: 12px; height: 12px;
    background: #2196F3;
    border: 2px solid white;
    border-radius: 50%;
    box-shadow: 0 0 0 rgba(33, 150, 243, 0.4);
    animation: pulse-gps 2s infinite;
}

@keyframes pulse-gps {
    0% { box-shadow: 0 0 0 0 rgba(33, 150, 243, 0.7); }
    70% { box-shadow: 0 0 0 15px rgba(33, 150, 243, 0); }
    100% { box-shadow: 0 0 0 0 rgba(33, 150, 243, 0); }
}

/* The Next Station Orange Glow */
.next-stn-glow {
    filter: drop-shadow(0 0 8px rgba(255, 171, 0, 0.8));
    animation: glow-next 1.5s ease-in-out infinite alternate;
}

@keyframes glow-next {
    from { filter: drop-shadow(0 0 4px rgba(255, 171, 0, 0.6)); transform: scale(1); }
    to { filter: drop-shadow(0 0 12px rgba(255, 171, 0, 1)); transform: scale(1.1); }
}

/* Station Tooltip Labels */
.stn-label {
    background: rgba(0, 0, 0, 0.7) !important;
    border: none !important;
    color: white !important;
    font-weight: bold !important;
    font-size: 10px !important;
    border-radius: 4px !important;
    padding: 2px 5px !important;
}


/* https://unpkg.com/leaflet/dist/leaflet.css  */
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0;}
.leaflet-container{overflow:hidden;}
.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;}
.leaflet-tile::selection{background:transparent;}
.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast;}
.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0;}
.leaflet-marker-icon,.leaflet-marker-shadow{display:block;}
.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important;}
.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0;}
.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter;}
.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y;}
.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom;}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none;}
.leaflet-container{-webkit-tap-highlight-color:transparent;}
.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,0.4);}
.leaflet-tile{filter:inherit;visibility:hidden;}
.leaflet-tile-loaded{visibility:inherit;}
.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800;}
.leaflet-overlay-pane svg{-moz-user-select:none;}
.leaflet-pane{z-index:400;}
.leaflet-tile-pane{z-index:200;}
.leaflet-overlay-pane{z-index:400;}
.leaflet-shadow-pane{z-index:500;}
.leaflet-marker-pane{z-index:600;}
.leaflet-tooltip-pane{z-index:650;}
.leaflet-popup-pane{z-index:700;}
.leaflet-map-pane canvas{z-index:100;}
.leaflet-map-pane svg{z-index:200;}
.leaflet-vml-shape{width:1px;height:1px;}
.lvml{behavior:url(#default#VML);display:inline-block;position:absolute;}
.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto;}
.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none;}
.leaflet-top{top:0;}
.leaflet-right{right:0;}
.leaflet-bottom{bottom:0;}
.leaflet-left{left:0;}
.leaflet-control{float:left;clear:both;}
.leaflet-right .leaflet-control{float:right;}
.leaflet-top .leaflet-control{margin-top:10px;}
.leaflet-bottom .leaflet-control{margin-bottom:10px;}
.leaflet-left .leaflet-control{margin-left:10px;}
.leaflet-right .leaflet-control{margin-right:10px;}
.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear;}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1;}
.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;}
svg.leaflet-zoom-animated{will-change:transform;}
.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1);}
.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none;}
.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden;}
.leaflet-interactive{cursor:pointer;}
.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab;}
.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair;}
.leaflet-popup-pane,.leaflet-control{cursor:auto;}
.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing;}
.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none;}
.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto;}
.leaflet-container{background:#ddd;outline-offset:1px;}
.leaflet-container a{color:#0078A8;}
.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,0.5);}
.leaflet-container{font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5;}
.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,0.65);border-radius:4px;}
.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:black;}
.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block;}
.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4;}
.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px;}
.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none;}
.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb;}
.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px;}
.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px;}
.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px;}
.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:bold 18px 'Lucida Console',Monaco,monospace;text-indent:1px;}
.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px;}
.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,0.4);background:#fff;border-radius:5px;}
.leaflet-control-layers-toggle{background-image:url(images/layers.png);width:36px;height:36px;}
.leaflet-retina .leaflet-control-layers-toggle{background-image:url(images/layers-2x.png);background-size:26px 26px;}
.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px;}
.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none;}
.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative;}
.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff;}
.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px;}
.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px;}
.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em;}
.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px;}
.leaflet-default-icon-path{background-image:url(images/marker-icon.png);}
.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,0.8);margin:0;}
.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4;}
.leaflet-control-attribution a{text-decoration:none;}
.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline;}
.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em;}
.leaflet-left .leaflet-control-scale{margin-left:5px;}
.leaflet-bottom .leaflet-control-scale{margin-bottom:5px;}
.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:rgba(255,255,255,0.8);text-shadow:1px 1px #fff;}
.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px;}
.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777;}
.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none;}
.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,0.2);background-clip:padding-box;}
.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px;}
.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px;}
.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px;}
.leaflet-popup-content p{margin:17px 0;margin:1.3em 0;}
.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none;}
.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:white;color:#333;box-shadow:0 3px 14px rgba(0,0,0,0.4);}
.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent;}
.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858;}
.leaflet-popup-scrolled{overflow:auto;}
.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1;}
.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);}
.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999;}
.leaflet-div-icon{background:#fff;border:1px solid #666;}
.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,0.4);}
.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto;}
.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:"";}
.leaflet-tooltip-bottom{margin-top:6px;}
.leaflet-tooltip-top{margin-top:-6px;}
.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px;}
.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff;}
.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff;}
.leaflet-tooltip-left{margin-left:-6px;}
.leaflet-tooltip-right{margin-left:6px;}
.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px;}
.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff;}
.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff;}

