:root{
  --sky-1:#8EC3F2; --sky-2:#D6EAFC; --sky-3:#EEF6FE;
  --card:#FFFFFF; --panel:#F3F8FE; --line:#E1ECF7;
  --chip:#DCEBFB; --chip-ink:#1E3A5F;
  --navy:#26587F; --navy-deep:#1D4466;
  --ink:#16202C; --muted:#667689;
  --green:#2E8B57; --green-bg:#E5F4EB; --amber:#B7791F; --amber-bg:#FDF3E1; --red:#C0392B; --red-bg:#FBE9E7;
  --radius:18px; --shadow:0 6px 24px rgba(29,68,102,.10);
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.55 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);
  background:linear-gradient(180deg,var(--sky-1) 0,var(--sky-2) 340px,var(--sky-3) 900px) no-repeat,var(--sky-3)}
a{color:var(--navy);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.25;margin:0 0 .5em}
h1{font-size:1.45rem} h2{font-size:1.15rem} h3{font-size:1rem}
.wrap{max-width:860px;margin:0 auto;padding:0 16px}
/* header */
.top{padding:14px 0}
.top .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.12rem;color:var(--navy-deep);letter-spacing:-.01em}
.brand img{width:36px;height:36px}
.brand b{color:var(--navy)} .brand span{color:#2F7FC1}
.brand:hover{text-decoration:none}
.nav{margin-left:auto;display:flex;gap:16px;font-weight:600;font-size:.93rem}
.nav a{color:var(--navy-deep)}
/* search */
.search{position:relative;margin:6px 0 18px}
.search form{display:flex;background:var(--card);border-radius:999px;box-shadow:var(--shadow);padding:5px}
.search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:1rem;padding:10px 16px;color:var(--ink)}
.search button{border:0;background:var(--navy);color:#fff;font:inherit;font-weight:700;padding:10px 20px;border-radius:999px;cursor:pointer}
.sugg{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--card);border-radius:14px;box-shadow:var(--shadow);z-index:20;overflow:hidden;display:none}
.sugg a{display:flex;gap:10px;padding:10px 16px;border-top:1px solid var(--line);color:var(--ink)}
.sugg a:first-child{border-top:0}
.sugg a:hover,.sugg a.on{background:var(--panel);text-decoration:none}
.sugg .no{font-weight:700;color:var(--navy);min-width:52px}
.sugg .sub{color:var(--muted);font-size:.85rem;margin-left:auto}
/* cards */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin:0 0 16px}
.card.flush{padding:0;overflow:hidden}
.muted{color:var(--muted)} .small{font-size:.85rem}
.hero{text-align:center;padding:18px 0 4px}
.hero h1{font-size:1.7rem;color:var(--navy-deep)}
.hero p{margin:0 auto 14px;max-width:560px;color:#294560}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.tile{display:block;background:var(--panel);border-radius:14px;padding:12px 14px;color:var(--ink)}
.tile:hover{text-decoration:none;background:var(--chip)}
.tile .no{font-weight:800;color:var(--navy)}
.tile .sub{font-size:.83rem;color:var(--muted)}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:6px;background:var(--chip);color:var(--chip-ink);font-weight:600;font-size:.88rem;padding:7px 14px;border-radius:999px;border:0;cursor:pointer;font-family:inherit}
.pill.on{background:var(--navy);color:#fff}
.pill small{font-weight:500;opacity:.8}
.stats{display:flex;gap:10px;flex-wrap:wrap}
.stat{flex:1;min-width:120px;background:var(--panel);border-radius:14px;padding:12px}
.stat b{display:block;font-size:1.35rem;color:var(--navy-deep)}
.stat span{font-size:.82rem;color:var(--muted)}
/* train head */
.thead{text-align:center;padding:18px 18px 6px}
.thead .tno{font-size:.85rem;color:var(--muted)}
.thead h1{font-size:1.3rem;margin:.1em 0 .3em}
.thead .meta{font-size:.85rem;color:var(--muted)}
.thead .pills{justify-content:center;margin:12px 0 4px}
/* live summary */
.now{display:flex;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:12px 16px}
.now .txt{flex:1;min-width:0}
.now h2{font-size:1.05rem;margin:0 0 2px}
.now p{margin:0;font-size:.9rem;color:#33475c}
.now .upd{font-size:.78rem;color:var(--muted);margin-top:4px}
.badge{min-width:66px;text-align:center;border-radius:12px;padding:8px 6px;color:#fff;background:var(--green);line-height:1.1}
.badge b{display:block;font-size:1.5rem} .badge span{font-size:.75rem}
.badge.amber{background:var(--amber)} .badge.red{background:var(--red)} .badge.grey{background:#8796a8}
.now .acts{display:flex;gap:8px;margin-top:8px}
.btn-ghost{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:5px 12px;font:inherit;font-size:.82rem;font-weight:600;color:var(--navy-deep);cursor:pointer}
/* timeline */
.tl-head{display:grid;grid-template-columns:78px 1fr 78px;gap:10px;padding:10px 16px;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--line);background:var(--panel)}
.tl-head div:nth-child(2){text-align:center}
.tl-head div:last-child{text-align:right}
.tl{list-style:none;margin:0;padding:6px 0 10px;position:relative}
.stop{display:grid;grid-template-columns:78px 26px 1fr 78px;gap:0 8px;padding:9px 16px;align-items:start;position:relative}
.stop .t{font-variant-numeric:tabular-nums;font-size:.86rem;color:#2d3e52}
.stop .t.r{text-align:right}
.stop .t .ex{display:block;font-weight:700;font-size:.82rem}
.ex.ok{color:var(--green)} .ex.late{color:var(--red)} .ex.warn{color:var(--amber)}
.rail{position:relative;height:100%;display:flex;justify-content:center}
.rail:before{content:"";position:absolute;top:-9px;bottom:-9px;width:6px;background:#C9DCEE;border-radius:3px}
.stop:first-child .rail:before{top:8px} .stop:last-child .rail:before{bottom:calc(100% - 12px)}
.rail i{position:relative;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid #9DB9D3;margin-top:4px}
.stop.done .rail:before{background:var(--navy)}
.stop.done .rail i{border-color:var(--navy);background:var(--navy)}
.stop.cur .rail i{width:18px;height:18px;margin-top:1px;border-color:var(--green);background:#fff;box-shadow:0 0 0 5px rgba(46,139,87,.2)}
.stop .st{min-width:0}
.stop .st a{font-weight:600;color:var(--ink)}
.stop .st .d{font-size:.78rem;color:var(--muted)}
.stop .st .pf{display:inline-block;background:var(--chip);color:var(--chip-ink);font-size:.72rem;font-weight:700;padding:1px 7px;border-radius:6px;margin-left:4px}
.daysep{padding:8px 16px 4px;font-size:.78rem;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.04em}
/* coach */
.coach{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin}
.coach div{flex:0 0 auto;min-width:48px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 6px}
.coach b{display:block;font-size:.85rem;color:var(--navy-deep)}
.coach span{font-size:.7rem;color:var(--muted)}
.coach .eng{background:var(--navy);border-color:var(--navy)} .coach .eng b,.coach .eng span{color:#fff}
/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.tbl th,.tbl td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font-size:.78rem;color:var(--muted);font-weight:600;background:var(--panel)}
.tbl-wrap{overflow-x:auto}
.tbl td.nw{white-space:nowrap}
.tbl a{overflow-wrap:anywhere}
.hist{display:flex;gap:3px;align-items:flex-end;height:70px;margin:10px 0 4px}
.hist span{flex:1;min-width:4px;background:var(--green);border-radius:3px 3px 0 0}
.hist span.w{background:var(--amber)} .hist span.l{background:var(--red)} .hist span.c{background:#8796a8}
.faq h3{margin-top:14px}
.faq p{margin:.2em 0 .6em;color:#2e4257}
.crumbs{font-size:.82rem;color:#294560;margin:0 0 10px}
.crumbs a{color:#1D4466}
.note{font-size:.82rem;color:var(--muted);background:var(--panel);border-radius:12px;padding:10px 12px}
.ad{margin:0 0 16px}
.ad .lbl{text-align:center;font-size:.7rem;letter-spacing:.14em;color:var(--muted);margin-bottom:6px}
.prose{font-size:1rem}
.prose h2{margin-top:1.4em}
.prose li{margin:.25em 0}
/* footer */
footer{margin-top:28px;padding:22px 0 40px;font-size:.85rem;color:#3c5068;border-top:1px solid #d3e3f3}
footer .links{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:10px}
footer p{margin:.3em 0}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media (max-width:560px){
  .nav{width:100%;margin-left:0;gap:14px;font-size:.88rem}
  .hero h1{font-size:1.35rem}
  .stop,.tl-head{grid-template-columns:62px 22px 1fr 62px;padding-left:10px;padding-right:10px}
  .tl-head{grid-template-columns:62px 1fr 62px}
  .stop .t{font-size:.8rem}
  .now{margin:12px 10px}
  .card{padding:14px}
  .card.flush{padding:0}
  .tbl{font-size:.84rem}
  .tbl th,.tbl td{padding:7px 6px}
}
.stop .st .pf[hidden]{display:none}
