@font-face{font-family:Hind;src:url(assets/hind.ttf);font-display:swap}
:root{--green:#006b3f;--deep:#004d32;--red:#e21d35;--bg:#f6f9f7;--white:#fff;--ink:#172c24;--soft:#e8f5ed;--line:#dce8e0;--shadow:0 4px 15px #19362a12;--radius:17px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 Hind,system-ui,sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{cursor:pointer}a{color:var(--green)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ba6900;outline-offset:3px}.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:5px;z-index:20;background:white}header{background:white;border-bottom:1px solid var(--line)}.bar,main,footer{max-width:1220px;margin:auto;padding:0 22px}.bar{display:flex;align-items:center;gap:12px;min-height:76px;justify-content:space-between}.brand{text-decoration:none;display:flex;align-items:center;gap:10px;color:var(--deep);white-space:nowrap}.brand strong{font:900 28px/1 system-ui}.brand em{color:var(--red);font-style:normal}.brand small{display:block;font-weight:700}.brand .icon{width:43px;height:43px}.icon{width:22px;height:22px;vertical-align:middle;fill:currentColor;flex:none}.nav{display:flex;gap:6px;align-items:center}.button,button{border:1px solid var(--line);border-radius:10px;background:#f5f7f6;color:var(--ink);min-height:42px;padding:7px 13px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.primary,.active{background:linear-gradient(135deg,#087d35,var(--deep));border-color:transparent;color:white}button:hover,.button:hover{filter:brightness(.94)}button:disabled{cursor:not-allowed;opacity:.6}.danger{color:#9f1b2b}.menu,#bottom,.mobileQuick{display:none}main{padding-top:18px;padding-bottom:28px}.hero{min-height:290px;border-radius:20px;overflow:hidden;background:linear-gradient(90deg,#003b26 0%,#003f28db 32%,#00452a17 72%),url(assets/padma-rail-user.jpg) center 55%/cover,#00643b;color:white;padding:28px 36px 38px;position:relative}.hero:after{content:'';position:absolute;bottom:0;left:0;right:0;height:16px;background:linear-gradient(103deg,white 0 62%,#078844 62% 82%,white 82% 85%,var(--red) 85%);border-radius:80% 0 0}.hero h1{font-size:clamp(29px,4vw,53px);line-height:1.12;margin:0 0 12px;max-width:610px;text-wrap:balance}.hero p{font-size:19px;margin:0 0 16px}.badges,.row,.tabs{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.badge{background:var(--soft);color:var(--deep);padding:4px 10px;border-radius:8px;font-weight:700}.panel,.metric,.tile,.ticket{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:18px;margin:14px 0}.tabs{margin:14px 0}.search{display:grid;grid-template-columns:1fr auto 1fr 1fr .75fr auto;align-items:end;gap:9px}.field{display:grid;gap:3px;font-weight:700;min-width:0}input,select{width:100%;min-height:43px;border:1px solid var(--line);border-radius:9px;padding:8px;background:#fbfdfc;color:var(--ink)}.tiles,.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tiles{grid-template-columns:repeat(6,minmax(0,1fr))}.tile{display:grid;justify-items:center;align-content:center;text-align:center;gap:6px;min-height:76px;padding:8px;color:var(--ink);text-decoration:none;font-weight:700}.tile .icon,.metric .icon{color:var(--green)}.metric{padding:12px;display:flex;align-items:center;gap:10px}.metric strong{display:block;font:800 24px system-ui}.strip{background:var(--soft)}h1,h2,h3,p{margin-top:0}h2,h3{margin-bottom:8px}.split{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;align-items:start}.stack{display:grid;gap:10px}.between{justify-content:space-between}.muted{color:#496358}.warning{background:#fff3f2;color:#9c1628;border:1px solid #f3b0b9;padding:7px 12px;border-radius:8px;font-weight:800}.stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:0;list-style:none}.stepper li{padding:8px;background:var(--soft);border-radius:8px;font-weight:700}.stepper .current{background:var(--green);color:white}.seats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:480px;margin:14px 0}.seats button:nth-child(4n+2){margin-right:10px}.selected{background:#ffdb49;color:#382900}.held{background:#e7dafa;color:#452572}.booked{background:#ffd8db;color:#8d1821}.unavailable{background:#dfe5e1;color:#3b4a41}.available{background:#f4fff7;border-color:#72a786}.chart{display:flex;gap:9px;align-items:end;min-height:190px;border-bottom:1px solid var(--line);padding:12px 0;overflow:auto}.barItem{display:grid;align-items:end;align-content:end;min-width:58px;padding:5px;background:#caebd4;border:1px solid #5ba674;color:#12462b;border-radius:7px 7px 0 0}.tableWrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th,td{padding:9px 11px;text-align:left;border-bottom:1px solid var(--line)}th{background:var(--soft)}.admin{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px}.admin aside{display:grid;gap:6px}.admin aside button{justify-content:start}.ticket{max-width:680px;margin:15px auto;border:2px solid var(--deep);overflow:hidden}.ticketHead,.ticketBody{padding:18px 22px}.ticketHead{border-bottom:5px solid var(--green)}.ticketFoot{padding:14px 22px;background:var(--deep);color:white;font-weight:800}.route{font:900 clamp(22px,5vw,38px)/1.25 system-ui;margin:16px 0}.ticketGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ticketGrid div{border-top:1px solid var(--line);padding:5px 0;overflow-wrap:anywhere}.ticketGrid strong{display:block}.qr{background:white;padding:7px;display:inline-block;border:1px solid var(--line);border-radius:8px}.qr svg{display:block;width:138px;height:138px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}dialog{border:1px solid var(--line);border-radius:14px;max-width:min(90vw,470px);color:var(--ink);box-shadow:var(--shadow);padding:22px}dialog::backdrop{background:#002a1c9c}#toast:not(:empty){position:fixed;right:16px;bottom:18px;background:var(--deep);color:white;padding:12px 18px;border-radius:10px;z-index:5;max-width:90vw}footer{font-size:14px;color:#496358;padding-bottom:24px}.event{border-left:3px solid var(--green);padding:4px 12px;margin:7px 0}
@media(max-width:1023px){.nav{gap:3px}.nav a{padding:6px}.nav .icon{display:none}.search{grid-template-columns:1fr auto 1fr}.search button[type=submit]{align-self:end}.hero{min-height:250px}}
@media(max-width:767px){.bar,main,footer{padding-left:12px;padding-right:12px}.bar{min-height:61px;gap:7px}.brand strong{font-size:22px}.brand .icon{width:32px;height:32px}.nav{display:none}.menu,.mobileQuick{display:grid}.mobileQuick{margin-top:10px}.desktopQuick,.hero .badges{display:none}main{padding-top:10px}.hero{min-height:230px;padding:17px 15px 76px;background-position:center,63% 60%}.hero h1{font-size:29px;max-width:340px}.hero p{font-size:15px}.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:8px}.metric strong{font-size:20px}.panel{padding:12px}.split,.admin{grid-template-columns:1fr}.admin aside{display:flex;overflow:auto}.admin aside button{white-space:nowrap}.stepper li{font-size:12px;padding:5px;overflow-wrap:anywhere}.ticketHead,.ticketBody,.ticketFoot{padding:12px}.ticketGrid{grid-template-columns:repeat(2,minmax(0,1fr))}#bottom{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:3;justify-content:space-around;background:white;border-top:1px solid var(--line);padding:5px 0 calc(5px + env(safe-area-inset-bottom))}#bottom a{display:grid;justify-items:center;text-decoration:none;font-size:12px;padding:4px 8px;border-radius:7px}footer{padding-bottom:78px}#toast:not(:empty){bottom:72px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{@page{size:A4;margin:14mm}body{background:white}header,footer,#bottom,#toast,.noPrint,.skip{display:none!important}main{padding:0}.ticket{margin:0 auto;box-shadow:none;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.mobileQuick{display:none}
.hero{background-position:center,right center}
.admin>.panel{margin:0;min-width:0}
.ticket{max-width:620px;min-height:620px;display:flex;flex-direction:column}
.ticketBody{flex:1}
.barItem[aria-pressed=true]{background:var(--deep);color:white}
@media(max-width:767px){.mobileQuick{display:grid}.hero{background-position:center,right center}.hero h1{text-shadow:0 2px 8px #00291e}.ticket{min-height:0}.search{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.search>label:nth-of-type(3){grid-column:1/3}.search>button[type=submit]{grid-column:1/-1}.nav{display:none}}
.appBanner{display:none}
.homeTabs{width:max-content;max-width:100%;padding:4px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}
.homeTabs .button:not(.primary){border-color:transparent}
@media(max-width:767px){
 header{background:var(--deep);color:white;border-color:#01613d}
 header .brand{color:white}
 header button{background:#125e43;color:white;border-color:#3c8169}
 .hero{background-image:linear-gradient(90deg,#003b26 0%,#003f28d8 24%,#00452a29 100%),url(assets/padma-rail-user.jpg)}
 .homeTabs{display:none}
 .appBanner{display:grid;margin:10px 0;padding:12px 14px;min-height:72px;align-content:center;background:linear-gradient(90deg,#00452d 10%,#00452db0 52%,#00452a17),url(assets/padma-rail-user.jpg) right center/cover;color:white;text-decoration:none;border-radius:13px}
}
.ticket{width:min(100%,660px);max-width:660px;min-height:660px}
.ticketHead{border-image:linear-gradient(100deg,var(--green) 0 82%,var(--red) 82%) 1}
.ticketDetails{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}
.ticketQR{text-align:center;font-weight:700;font-size:13px}
.ticketQR .qr svg{width:125px;height:125px}
.ticketGrid{font-size:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:580px){.ticket{min-height:0}.ticketDetails{grid-template-columns:1fr}.ticketQR{justify-self:start}}
@media print{.ticket{width:100%;min-height:0}.ticketDetails{grid-template-columns:minmax(0,1fr) auto}}
#westFareLookup{grid-template-columns:minmax(0,1fr)}
#westFareLookup button{justify-self:start}

@media(min-width:1024px){.publicSearch{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) minmax(0,1fr) auto}}

.stationField{display:grid;gap:4px;min-width:0}
.stationField input[type=search]{width:100%;min-width:0;min-height:36px;font-size:.9rem}
.stationCount:empty{display:none}
@media(max-width:767px){.publicSearch>label:nth-of-type(1){grid-column:1/-1}}
@media(max-width:767px){.publicSearch>button.primary{grid-column:1/-1;justify-self:stretch}.publicSearch>[data-a=swap]{align-self:center}}

.offDayBoard{background:#083e2f;color:white}
.noticeInner{max-width:1220px;margin:auto;padding:6px 22px;display:flex;align-items:center;gap:13px;min-height:48px}
.noticeLabel{font-size:.8rem;font-weight:800;color:#a8f5c6;white-space:nowrap}
.noticeCopy{display:flex;flex:1;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0;overflow-wrap:anywhere}
.noticeCopy span{font-weight:800;letter-spacing:.02em}
.noticeCopy small{color:#d2eee0}
.noticeControls{display:flex;gap:4px;flex:none}
.noticeControls button{min-height:30px;min-width:29px;padding:0 5px;color:white;background:#195944;border-color:#4b826f}
.motionHero h1,.motionHero p,.motionHero .badges,.loginStoryCopy>*{animation:rail-entry 650ms both ease-out}
.motionHero p,.loginStoryCopy p{animation-delay:100ms}
.motionHero .badges{animation-delay:180ms}
@keyframes rail-entry{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.landingStory,.loginLayout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}
.storyPhoto{margin:0;min-height:200px;position:relative;isolation:isolate;overflow:hidden;border-radius:18px;background:#064331;color:white;display:flex;align-items:end}
.storyPhoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.storyPhoto:before{content:'';position:absolute;inset:0;background:linear-gradient(transparent 25%,#00291bdc);z-index:-1}
.storyPhoto figcaption{display:grid;padding:16px;gap:3px}
.storyPhoto strong{font-size:clamp(20px,3vw,31px);line-height:1.1}
.storyPhoto a{color:#effff4;font-size:.8rem}
.metroPhoto img{animation:metro-pan 18s ease-in-out infinite alternate}
@keyframes metro-pan{from{transform:scale(1)}to{transform:scale(1.1) translateX(-1.5%)}}
.loginStory{display:grid;gap:10px;min-width:0}
.loginStoryCopy{padding:22px;background:var(--deep);color:white;border-radius:18px}
.loginStoryCopy span{font:900 19px system-ui;letter-spacing:.08em;color:#a8f5c6}
.loginStoryCopy h1{margin:6px 0;font-size:clamp(30px,4vw,50px)}
.loginStoryCopy p{margin:0}
.loginStory .storyPhoto{min-height:145px}
.loginStory .storyPhoto strong{font-size:21px}
.loginCard{align-self:center;min-width:0}
#noticeAdmin input[type=checkbox]{width:22px;min-height:22px}
@media(max-width:767px){.noticeInner{padding:5px 10px;gap:7px}.noticeLabel{display:none}.noticeCopy span{font-size:.83rem}.noticeCopy small{font-size:.77rem}.landingStory,.loginLayout{grid-template-columns:1fr}.loginCard{grid-row:1}.storyPhoto{min-height:185px}}
@media(prefers-reduced-motion:reduce){.motionHero h1,.motionHero p,.motionHero .badges,.loginStoryCopy>*,.metroPhoto img{animation:none}}
/* Let the header subtitle wrap while keeping the controls reachable. */
@media (max-width: 380px) {
  .bar .brand { min-width: 0; white-space: normal; }
  .bar .brand strong { white-space: nowrap; }
  .bar > button { flex-shrink: 0; }
}
#installApp[hidden] { display: none; }
.installNotice {
  position: fixed;
  z-index: 4;
  inset-inline: 12px;
  bottom: calc(76px + env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 460px;
  margin-inline: auto;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--white);
  box-shadow: var(--shadow);
}
.installNotice span { flex: 1; font-weight: 700; }
@media print { .installNotice { display: none; } }

.railHome { background:#071d17; }
.railHome #main { position:relative; isolation:isolate; }
.railHome .motionHero {
  min-height:clamp(340px,56vh,580px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:visible;
  background:transparent;
  padding:clamp(24px,6vw,76px);
}
.railHome .motionHero::after { display:none; }
.railHome .motionHero h1 { text-shadow:0 3px 24px #0009; }
.railHome .motionHero p { color:#e2f0e8; }
.railBackdrop {
  position:fixed;
  inset:0;
  z-index:-1;
  overflow:hidden;
  background:#0b2a20;
  pointer-events:none;
}
.railBackdrop::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#041912ef 3%,#041912ad 43%,#04191225 100%),linear-gradient(0deg,#071d17 0%,transparent 70%);
}
.railFrame {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transform:scale(1.015);
  transition:opacity 1.4s ease,transform 11s linear;
}
.railVisible { opacity:1; transform:scale(1.075); }
.railStill .railFrame { transition:none; transform:none; }
.railSceneBar {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin-top:24px;
}
.railSceneTitle { color:#d4ecdf; font-weight:700; }
.railSceneControls { display:flex; gap:6px; }
.railSceneControls button { min-width:42px; }
.railSceneControls button[hidden] { display:none; }
.railCredits { width:fit-content; margin:0 0 12px 12px; color:#d4ecdf; background:#071d17; padding:4px 10px; border-radius:8px; }
.railCredits a,.railHome footer { color:#d4ecdf; }
@media(max-width:767px){
 .railHome .motionHero { min-height:52svh; padding:24px 14px; }
 .railBackdrop::after { background:linear-gradient(90deg,#041912df,#04191269),linear-gradient(0deg,#071d17,transparent 70%); }
 .railHome .motionHero h1 { max-width:26ch; }
}
@media(prefers-reduced-motion:reduce){ .railFrame { transition:none; transform:none; } }
.railHome header,.railHome footer { position:relative; z-index:2; }
.trafficChart{display:block;width:min(100%,680px);height:auto;margin:12px 0}

#passengerRegistration .registrationIntro{margin:0;color:#496358}
#passengerRegistration .registrationVerification{margin-top:6px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
#passengerRegistration .registrationVerification p{margin:0}
#passengerRegistration .registrationLinks{display:flex;flex-wrap:wrap;gap:8px}
#passengerRegistration input[readonly]{background:#f2f6f3}

.passengerProfileHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.passengerProfileHeader h2{margin:0}
#passengerProfileForm{max-width:680px}
.passengerProfileContacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#passengerProfileForm input[readonly]{background:#f2f6f3}
#profileResult{margin:0}
#profileResult:empty{display:none}
@media(max-width:640px){.passengerProfileContacts{grid-template-columns:1fr}}

#issueError:empty{display:none}
.demoSeatPanel{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.demoSeatPanel p,.demoSeatPanel h2{margin:0}
.demoSeatField{min-width:0;margin:0;padding:0;border:0}
.demoSeatGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) repeat(2,minmax(0,1fr));gap:8px;max-width:420px}
.demoSeat{position:relative;cursor:pointer}
.demoSeat input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.demoSeat>span{display:grid;place-items:center;min-height:46px;border:1px solid #8cbba5;border-radius:8px;background:#eefaf2;font-weight:700}
.demoSeat input:checked+span{background:var(--deep);color:white}
.demoSeat input:focus-visible+span{outline:3px solid #ba6900;outline-offset:2px}
.demoSeatTaken>span{background:#edf0ee;color:#58625c;border-color:var(--line)}
.demoSeatTaken input{cursor:not-allowed}
.demoSeatStatus{font-size:.75rem;font-weight:400}

/* Antigravity National High-Security & Dynamic UI Additions */
dialog{max-width:min(94vw,760px);max-height:88vh;overflow:auto}
.admin{align-items:start}
.admin aside{align-content:start}
.admin>*,.stack>*,.panel{min-width:0}
.nidVerifiedCard{padding:14px 16px;border-radius:12px;background:#e8f8ef;border:1.5px solid #087d35;color:var(--deep);display:grid;gap:8px;margin:8px 0}
.nidVerifiedGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;font-size:.94rem}
.nidBadgeOk{background:#087d35;color:#fff}
.stepper .done{background:#ccebd8;color:var(--deep);border:1px solid #82c49b}
.demoSeatHeldMe>span{background:#fff6d6;border-color:#d89e00;color:#5c4200}
.demoSeatGrid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:520px}
.demoSeatGrid .demoSeat:nth-child(4n+2){margin-right:14px}
.demoSeatGridWide{grid-template-columns:repeat(5,minmax(0,1fr))}
.demoSeatGridWide .demoSeat:nth-child(4n+2){margin-right:0}
.demoSeatGridWide .demoSeat:nth-child(5n+2){margin-right:14px}
.demoSeatGridUnmapped .demoSeat:nth-child(4n+2){margin-right:0}
.tableWrap{overflow-x:auto;max-width:100%}
.tableWrap table td:last-child,.tableWrap table th:last-child{position:sticky;right:0;background:white;box-shadow:-4px 0 8px #0000000a}
.tableWrap table th:last-child{background:var(--soft)}
@media(max-width:640px){.nidVerifiedGrid{grid-template-columns:1fr}.stepper{grid-template-columns:1fr}}
.trackerGrid{display:grid;grid-template-columns:minmax(360px,490px) minmax(0,1fr);gap:14px;align-items:start}
@media(max-width:960px){.trackerGrid{grid-template-columns:1fr}}
.radarMapBox{background:linear-gradient(180deg,#08271e 0%,#051b14 100%);color:#e8faf2;border-radius:14px;padding:12px 14px;border:1px solid #164938;box-shadow:0 6px 20px rgba(4,28,20,.16)}
.radarMapBox .muted{color:#9fd3be}
.radarSvg{width:100%;height:auto;display:block;border-radius:10px;border:1px solid #144031}
.liveGpsMapCanvas{width:100%;height:460px;border-radius:10px;border:1px solid #1c5b46;overflow:hidden;background:#071f18;z-index:1}
.mapToolbarRow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.mapLayerBtn{min-height:30px;padding:4px 10px;border-radius:8px;font-size:.79rem;font-weight:700;background:#0d382b;color:#d1fae5;border:1px solid #1e604b;cursor:pointer}
.mapLayerBtn:hover{background:#134e3b;border-color:#34d399}
.mapLayerBtn.active{background:#ffcb2f;color:#052e16;border-color:#ffcb2f}
.customLocoDivIcon,.customUserGpsIcon{background:transparent;border:none}
.locoPinWrap{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:3px 7px;border-radius:999px;font-size:.76rem;font-weight:800;border:2px solid #052e16;white-space:nowrap;transition:transform .25s linear}
.locoCompassArrow{display:inline-block;font-size:.68rem;line-height:1;transform-origin:center}
.userGpsPinPulse{width:22px;height:22px;border-radius:50%;background:rgba(14,165,233,0.28);border:2px solid #38bdf8;display:flex;align-items:center;justify-content:center;color:#0284c7;font-size:.85rem;box-shadow:0 0 0 6px rgba(56,189,248,0.25)}
.gpsFusionCard{margin-top:10px;padding:12px 14px;border-radius:12px;background:linear-gradient(180deg,#f2fbf7 0%,#e8f7f0 100%);border:1px solid #b5e0cc}
.interceptRadarBox{margin-top:10px;padding:10px 12px;border-radius:10px;background:#ffffff;border:1px solid #93c5fd}
.smsSyncBox{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fffbeb;border:1px solid #fcd34d}
.trackerTrainList{display:flex;flex-direction:column;gap:8px;max-height:460px;overflow-y:auto;padding-right:4px}
.trackerTrainItem{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px 12px;border-radius:10px;border:1px solid #d5e3dc;background:#fbfdfc;color:var(--ink);flex-shrink:0;cursor:pointer;transition:border-color .15s,background .15s}
.trackerTrainItem:hover{border-color:#006a4e;background:#f2faf6}
.trackerTrainItem.active{border:2px solid #004d32;background:#eaf7f0;color:var(--ink)}
.trackerBadgeLive{background:#dcfce7;color:#065f46;border:1px solid #6ee7b7;font-weight:700}
.trackerBadgeStation{background:#e0f2fe;color:#075985;border:1px solid #7dd3fc;font-weight:700}
.trackerBadgeUpcoming{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}
.trackerBadgeOff{background:#f3f4f6;color:#4b5563;border:1px solid #d1d5db}
.livePulseDot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#10b981;margin-right:6px;box-shadow:0 0 0 0 rgba(16,185,129,.7);animation:livePulse 1.6s infinite}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.7)}70%{box-shadow:0 0 0 7px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
.trackLiveHeadline{background:#eefaf3;border-left:4px solid #006a4e;padding:10px 14px;border-radius:8px;margin-top:10px;line-height:1.55}
.trackProgressBar{width:100%;height:10px;background:#dce9e2;border-radius:999px;overflow:hidden}
.trackProgressFill{height:100%;background:linear-gradient(90deg,#004d32 0%,#16a34a 100%);border-radius:999px;transition:width .35s ease}
.trackTimelineWrap{display:flex;flex-direction:column;gap:0;margin-top:10px}
.trackStopRow{display:grid;grid-template-columns:32px 1fr;gap:10px;position:relative;padding:8px 0}
.trackStopRow:not(:last-child)::after{content:'';position:absolute;left:15px;top:28px;bottom:-8px;width:2px;background:#cbd5e1}
.trackStopRow.passed:not(:last-child)::after{background:#059669}
.trackStopRail{display:flex;justify-content:center;align-items:flex-start;padding-top:2px;z-index:1}
.trackStopDot{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.78rem;font-weight:800;background:#f1f5f9;color:#475569;border:2px solid #94a3b8}
.trackStopRow.passed .trackStopDot{background:#059669;color:#fff;border-color:#059669}
.trackStopRow.current .trackStopDot{background:#ffcb2f;color:#052e16;border-color:#004d32;box-shadow:0 0 0 4px rgba(25,195,125,.25)}
.trackStopContent{background:#f8fbf9;border:1px solid #e2ece7;border-radius:10px;padding:8px 12px}
.trackStopRow.current .trackStopContent{background:#eafaf1;border-color:#006a4e}
.trackLiveBetweenCard{margin:4px 0 4px 42px;padding:10px 12px;border-radius:10px;background:linear-gradient(90deg,#063729 0%,#0b523d 100%);color:#ecfdf5;border:1px solid #10b981;box-shadow:0 4px 12px rgba(6,55,41,.14)}
