
:root {
  --bg:#02040a; --panel:rgba(5,18,35,.78); --line:rgba(0,229,255,.25);
  --primary:#00e5ff; --secondary:#ff7a00; --text:#d9faff; --muted:#82b6c7;
  --radius:18px; --max:1280px; --font:Trebuchet MS,Segoe UI,Tahoma,sans-serif;
}
*{box-sizing:border-box} html,body{margin:0;padding:0}
body{font-family:var(--font);color:var(--text);min-height:100vh;background:radial-gradient(circle at top,rgba(0,229,255,.08),transparent 30%),linear-gradient(180deg,#02040a,#030814 50%,#02040a)}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.2;background-image:linear-gradient(rgba(0,229,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(0,229,255,.08) 1px,transparent 1px);background-size:40px 40px}
a{color:var(--primary);text-decoration:none} button,input{font:inherit} button{cursor:pointer}
.container{width:min(var(--max),calc(100% - 2rem));margin:0 auto}
.site-header{position:sticky;top:0;background:rgba(2,4,10,.72);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:30}
.header-inner{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;gap:1rem}.brand{font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--primary)} .brand span{color:var(--secondary)}
.nav{display:flex;gap:.7rem;flex-wrap:wrap}.nav a,.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1rem;border-radius:999px;border:1px solid var(--line);text-transform:uppercase;letter-spacing:.08em;background:transparent;color:var(--text)}
.nav a.active,.nav a:hover,.btn-primary{background:rgba(0,229,255,.1)} .btn-ghost{background:transparent;color:var(--text)}
.hero,.page{padding:2rem 0}.title{margin:0 0 1rem;color:var(--primary);text-transform:uppercase;letter-spacing:.08em}.meta,p{color:var(--muted);line-height:1.75}
.grid{display:grid;gap:1rem}.cards{grid-template-columns:repeat(3,1fr)}
.panel,.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;position:relative;overflow:hidden}
.panel::before,.card::before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent)}
.field{width:100%;border-radius:999px;border:1px solid var(--line);background:rgba(5,18,35,.75);color:var(--text);padding:.85rem 1rem}
.notice{border:1px dashed rgba(0,229,255,.26);background:rgba(0,229,255,.08);border-radius:16px;padding:.95rem;color:#d6e4e8}
.badge{display:inline-block;padding:.3rem .65rem;border-radius:999px;border:1px solid rgba(255,122,0,.35);color:var(--secondary);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.badges{display:flex;gap:.5rem;flex-wrap:wrap}.results,.table,.alerts,.routes,.legend,.lines,.kpis{display:grid;gap:.85rem}.row,.item,.kpi{border:1px solid rgba(0,229,255,.16);background:rgba(0,0,0,.18);border-radius:14px;padding:.85rem}
.good{color:#7cffb2}.warn{color:#ffd166}.bad{color:#ff6e8d}.ops-shell{display:grid;gap:1rem}
.ops-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.85rem}.kpi-label{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.kpi-value{margin-top:.35rem;color:var(--primary);font-size:1.6rem;font-weight:800}
.toolbar{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center}.filters{display:flex;gap:.55rem;flex-wrap:wrap}.filter.active{background:rgba(0,229,255,.1)}
.dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.85fr);gap:1rem}.side{position:sticky;top:5rem}
.line{--accent:var(--primary);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 28%),var(--panel);border:1px solid rgba(255,255,255,.05);border-radius:18px;padding:1rem 1rem 1rem 1.45rem;position:relative}.line::before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:var(--accent)}
.linehead{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(220px,.95fr) auto;gap:1rem;align-items:center}.lname{display:flex;align-items:center;gap:.8rem;color:var(--primary);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.roundel{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0 1rem;height:2rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,rgba(0,0,0,.15));border:1px solid color-mix(in srgb,var(--accent) 55%,rgba(255,255,255,.1));overflow:hidden}.roundel::before{content:"";position:absolute;width:2.6rem;height:2.6rem;border-radius:999px;border:.32rem solid var(--accent);left:.2rem;top:50%;transform:translateY(-50%)}.roundel::after{content:"";position:absolute;left:0;right:0;height:.55rem;background:var(--accent);top:50%;transform:translateY(-50%)}.roundel b{position:relative;z-index:1;font-size:.72rem;letter-spacing:.12em}
.line-overall{color:var(--text);text-transform:uppercase;letter-spacing:.06em;font-weight:700}.line-meta{margin-top:.25rem;color:var(--muted);font-size:.9rem}.line-route{margin-top:.45rem;color:#cfeff5;font-size:.9rem}
.details{display:none;margin-top:.9rem;padding-top:1rem;border-top:1px solid rgba(0,229,255,.16)}.details.open{display:block}.route-title{color:var(--primary);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.route-text{color:#d7eef5;margin-top:.35rem;line-height:1.65}
.side-title{color:var(--primary);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.side-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.alert-station{color:var(--primary);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.alert-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.45rem}.alert-desc{margin-top:.55rem;color:#d6e7ec;line-height:1.65}.site-footer{border-top:1px solid var(--line);padding:1rem 0 2rem;color:var(--muted);margin-top:2rem}
.line-soft-update{animation:lineSoftPulse 1.2s ease}@keyframes lineSoftPulse{0%{box-shadow:0 0 0 rgba(0,229,255,0), inset 0 0 0 rgba(0,229,255,0); transform:translateY(0)}20%{box-shadow:0 0 18px rgba(0,229,255,.18), inset 0 0 22px rgba(0,229,255,.05); transform:translateY(-1px)}100%{box-shadow:0 0 0 rgba(0,229,255,0), inset 0 0 0 rgba(0,229,255,0); transform:translateY(0)}}
.alert-soft-update{animation:alertSoftPulse 1s ease}@keyframes alertSoftPulse{0%{background:rgba(0,0,0,.18)}40%{background:rgba(0,229,255,.08)}100%{background:rgba(0,0,0,.18)}}
.autocomplete-wrap{position:relative;margin-bottom:.15rem}
.autocomplete-list{position:absolute;top:calc(100% + .45rem);left:0;right:0;z-index:40;display:grid;gap:.35rem;padding:.5rem;border:1px solid var(--line);border-radius:16px;background:rgba(3,12,24,.96);box-shadow:0 12px 28px rgba(0,0,0,.35);max-height:320px;overflow-y:auto}
.autocomplete-list[hidden]{display:none !important}
.autocomplete-item{width:100%;text-align:left;border:1px solid rgba(0,229,255,.12);border-radius:12px;background:rgba(0,0,0,.18);color:var(--text);padding:.75rem .85rem;transition:background .15s ease,border-color .15s ease}.autocomplete-item:hover,.autocomplete-item.active{background:rgba(0,229,255,.08);border-color:var(--line)}.autocomplete-name{color:var(--primary);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.autocomplete-meta{margin-top:.2rem;color:var(--muted);font-size:.9rem}
.platform-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.platform-card{background:var(--panel);border:1px solid rgba(0,229,255,.16);border-radius:18px;overflow:hidden;display:grid;grid-template-rows:auto 1fr}.platform-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.8rem 1rem;background:linear-gradient(180deg,rgba(0,229,255,.12),rgba(0,229,255,.03));border-bottom:1px solid rgba(0,229,255,.14)}.platform-title{color:var(--primary);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.platform-subtitle{margin-top:.15rem;color:var(--muted);font-size:.88rem}.platform-toggle{padding:.4rem .8rem;border-radius:999px;border:1px solid var(--line);background:rgba(0,229,255,.08);color:var(--text);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.platform-body{padding:1rem}.platform-list{display:grid;gap:.55rem}.platform-card:not(.expanded) .platform-row.later-train{display:none}.platform-card.expanded .platform-list{max-height:340px;overflow-y:auto;padding-right:.25rem}
.platform-row{--service-accent:var(--primary);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:start;border:1px solid rgba(0,229,255,.12);border-left:6px solid var(--service-accent);border-radius:12px;background:rgba(0,0,0,.18);padding:.68rem .8rem .68rem .9rem;min-height:58px}.platform-main{min-width:0}.platform-service{color:var(--text);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform-destination{margin-top:.08rem;color:var(--muted);font-size:.9rem;line-height:1.35}.platform-time{color:var(--primary);font-weight:800;white-space:nowrap;align-self:start;padding-top:.05rem}.platform-empty{color:var(--muted);font-size:.92rem}
@media(max-width:1100px){.dashboard{grid-template-columns:1fr}.side{position:static;top:auto}}@media(max-width:959px){.cards,.ops-kpis,.linehead,.routes,.platform-grid{grid-template-columns:1fr}}

.search-panel{overflow:visible}.autocomplete-list{top:calc(100% + .35rem);z-index:60;max-height:420px;padding:.45rem;gap:.3rem;background:rgba(3,12,24,.98)}.autocomplete-item{padding:.62rem .8rem}.autocomplete-name{line-height:1.25}.autocomplete-meta{margin-top:.12rem;font-size:.88rem;line-height:1.3}

.platform-arrow{opacity:.72;font-weight:700}.platform-via{margin-top:.12rem;color:var(--muted);font-size:.82rem;line-height:1.3}


/* Home page remodel inspired by proof-of-concept terminal dashboard */
.home-hero{padding:3.2rem 0 2rem}
.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:2.25rem;align-items:start}
.home-display{margin:0 0 1rem;text-transform:uppercase;letter-spacing:.08em;line-height:.88}
.home-display span,.home-display strong{display:block;color:var(--primary)}
.home-display span{font-size:clamp(2.3rem,5vw,4.3rem);font-weight:800;text-shadow:0 0 12px rgba(0,229,255,.34),0 0 28px rgba(0,229,255,.2)}
.home-display strong{font-size:clamp(3rem,7vw,5.3rem);font-weight:900;text-shadow:0 0 14px rgba(0,229,255,.42),0 0 36px rgba(0,229,255,.24)}
.home-lead{max-width:42rem;font-size:1.08rem;margin:0 0 1.25rem}
.home-cta-row{display:flex;gap:1rem;flex-wrap:wrap;margin:0 0 1.35rem}
.btn-warm{border-color:rgba(255,122,0,.35);box-shadow:0 0 0 rgba(255,122,0,0)}
.btn-warm:hover{background:rgba(255,122,0,.12);border-color:rgba(255,122,0,.55)}
.terminal-panel{padding:1rem 1.1rem;min-height:9.5rem}
.terminal-output{margin:0;white-space:pre-wrap;font-family:Consolas,Monaco,'Courier New',monospace;font-size:.98rem;line-height:1.95;color:var(--primary)}
.system-overview{padding:1rem 1rem 1.1rem;box-shadow:0 0 0 1px rgba(0,229,255,.08), 0 0 28px rgba(0,229,255,.08)}
.panel-kicker{margin:0 0 .9rem;color:var(--primary);text-transform:uppercase;letter-spacing:.08em;font-size:.98rem}
.overview-grid{display:grid;gap:0}
.overview-row{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;padding:.82rem 0;border-bottom:1px solid rgba(0,229,255,.12)}
.overview-row:last-child{border-bottom:0;padding-bottom:.15rem}
.overview-row span{color:var(--text);font-weight:700}
.overview-row strong{color:var(--muted);font-weight:600;text-align:right}
.status-online{color:var(--secondary)!important}
.home-modules{padding-top:1.5rem}
.home-section-title{margin:0 0 .6rem;color:var(--primary);text-transform:uppercase;letter-spacing:.08em;font-size:clamp(1.8rem,3.5vw,2.6rem)}
.home-section-copy{max-width:58rem;margin:0 0 1.35rem}
.home-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.module-card{display:flex;flex-direction:column;min-height:100%}
.module-card h3{margin:.05rem 0 .8rem;color:var(--primary);text-transform:uppercase;letter-spacing:.06em;font-size:1.02rem}
.module-card p{margin:0 0 1.25rem;flex:1 1 auto}
.module-chip{display:inline-flex;align-self:flex-start;padding:.28rem .62rem;border-radius:999px;border:1px solid rgba(255,122,0,.35);color:var(--secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem}
.module-action{margin-top:auto}
@media (max-width: 980px){.home-hero-grid{grid-template-columns:1fr}.system-overview{order:-1}.home-module-grid{grid-template-columns:1fr 1fr}}
@media (max-width: 640px){.home-hero{padding:2.2rem 0 1.2rem}.home-module-grid{grid-template-columns:1fr}.home-cta-row{flex-direction:column;align-items:flex-start}.home-cta-row .btn{width:100%}.overview-row{grid-template-columns:1fr}.overview-row strong{text-align:left}.terminal-output{font-size:.92rem}}
