:root{--bg:#f7f4ef;--surface:#fff;--rule:#e3ddd3;--rule-soft:#ede8e0;--ink:#1c1a17;--ink-2:#6b655c;--ink-3:#a0998e;--accent:#b4552d;--font-sans:"PingFang SC", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;--font-serif:"Songti SC", "STSong", "Source Han Serif SC", "Noto Serif CJK SC", "SimSun", Georgia, serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, "Roboto Mono", monospace;--gutter:24px;--max-w:780px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;padding:0}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);font-size:15px;line-height:1.6}#root{min-height:100dvh}.serif{font-family:var(--font-serif)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input{font:inherit;color:inherit}::selection{background:#b4552d29}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.page{max-width:var(--max-w);padding:0 var(--gutter) 96px;margin:0 auto}.row-between{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.eyebrow{letter-spacing:.22em;color:var(--ink-3);text-transform:uppercase;font-size:10px}.head{padding:28px 0 30px}.head__title{letter-spacing:.01em;margin:10px 0 0;font-size:28px;font-weight:600;line-height:1.2}.head__lede{color:var(--ink-2);margin-top:10px;font-size:12px;line-height:1.75}.live{margin-bottom:0}.live__top{justify-content:space-between;align-items:baseline;margin-bottom:9px;display:flex}.live__tag{align-items:center;gap:7px;display:flex}.live__dot{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px}.live__label{letter-spacing:.2em;color:var(--accent);text-transform:uppercase;font-size:10px}.live__age{letter-spacing:.12em;color:var(--ink-3);font-size:10px}.live__route{margin-bottom:5px;font-size:21px;line-height:1.4}.live__say{color:var(--ink-2);margin-bottom:14px;font-size:13px;line-height:1.75}.live--muted .live__dot{background:var(--ink-3)}.live--muted .live__label{color:var(--ink-3)}.live--muted .live__route{font-size:18px}.live__rule{background:var(--ink);height:2px;margin:20px 0 0}.live--muted .live__rule{background:var(--rule);height:1px}.plate{border:1px solid var(--rule);background:var(--surface);overflow:hidden}.plate__box{line-height:0;position:relative}.plate__map{width:100%;height:240px;display:block}.plate__cap{color:var(--ink-3);letter-spacing:.06em;border-top:1px solid var(--rule-soft);padding:7px 10px;font-size:10px}.plate__empty{height:240px;color:var(--ink-3);letter-spacing:.06em;text-align:center;background:#efeae2;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:11px;line-height:1.7;display:flex}.map-tint{background:var(--bg);pointer-events:none;position:absolute;inset:0}.map-grain{pointer-events:none;opacity:.5;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.06'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.map-ctl{border:1px solid var(--rule);background:var(--surface);flex-direction:column;display:flex;position:absolute;bottom:10px;right:10px}.map-ctl__btn{width:30px;height:30px;color:var(--ink-2);border-bottom:1px solid var(--rule-soft);justify-content:center;align-items:center;font-size:15px;line-height:1;transition:background .12s,color .12s;display:flex}.map-ctl__btn:last-child{border-bottom:none}.map-ctl__btn:hover{background:var(--bg);color:var(--ink)}.map-ctl__fit{display:block}.legend{border-top:1px solid var(--rule-soft);letter-spacing:.06em;color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:4px 14px;padding:8px 10px;font-size:10px;display:flex}.legend__cap{letter-spacing:.16em;text-transform:uppercase}.legend__item{align-items:center;gap:5px;display:inline-flex}.legend__swatch{flex:none;width:14px;height:3px}.stylebar{border-top:1px solid var(--rule-soft);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;font-size:10px;display:flex}.stylebar__cap{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.stylebar__btn{letter-spacing:.04em;color:var(--ink-3);border-bottom:1px solid #0000;padding:1px 0;font-size:10px;transition:color .12s,border-color .12s}.stylebar__btn:hover{color:var(--ink-2)}.stylebar__btn--on{color:var(--accent);border-bottom-color:var(--accent)}.amap-dot{box-sizing:border-box;border-radius:50%;width:11px;height:11px;position:relative}.amap-dot--start{border:2px solid var(--accent);background:var(--bg)}.amap-dot--end{background:var(--accent)}.amap-dot--car{background:var(--accent);border:2px solid var(--bg);justify-content:center;align-items:center;width:15px;height:15px;display:flex}.amap-dot--car i{background:var(--bg);border-radius:50%;width:5px;height:5px;display:block}.amap-dot__pulse{border:1.5px solid var(--accent);pointer-events:none;border-radius:50%;animation:2.6s cubic-bezier(.2,.6,.4,1) infinite radar;position:absolute;inset:-2px}.amap-dot__pulse--b{animation-delay:1.3s}@keyframes radar{0%{opacity:0;transform:scale(.7)}12%{opacity:.85}to{opacity:0;transform:scale(3.4)}}@media (prefers-reduced-motion:reduce){.amap-dot__pulse{opacity:.4;transform:scale(2.2);animation:none!important}.amap-dot__pulse--b{display:none}}.amap-arrow{border-left:4.5px solid #0000;border-right:4.5px solid #0000;border-bottom:7px solid var(--accent);width:0;height:0;filter:drop-shadow(0 0 1px var(--bg)) drop-shadow(0 0 1px var(--bg))}.amap-chip{letter-spacing:.06em;white-space:nowrap;background:var(--bg);border:1px solid var(--rule);color:var(--ink-2);padding:2px 6px;font-size:10px;line-height:1.5}.amap-chip--start{border-color:var(--accent);color:var(--accent)}.amap-chip--end{background:var(--accent);border-color:var(--accent);color:var(--bg)}.amap-chip--car{border-color:var(--ink-3);color:var(--ink)}.amap-scalecontrol{background:0 0!important}.amap-scalecontrol .amap-scale-text{color:var(--ink-3)!important;font-size:9px!important}.amap-scalecontrol .amap-scale-edgeleft,.amap-scalecontrol .amap-scale-edgeright,.amap-scalecontrol .amap-scale-middle{background-color:var(--ink-3)!important;border-color:var(--bg)!important}.dev{border-bottom:1px solid var(--rule-soft);flex-wrap:wrap;gap:20px;margin-top:16px;display:flex}.dev__tab{letter-spacing:.06em;color:var(--ink-3);align-items:center;gap:7px;padding:0 0 9px;font-size:12px;transition:color .15s;display:inline-flex;position:relative}.dev__tab:hover{color:var(--ink-2)}.dev__tab--on{color:var(--ink)}.dev__tab--on:after{content:"";background:var(--ink);height:2px;position:absolute;bottom:-1px;left:0;right:0}.dev__dot{background:var(--rule);border-radius:50%;flex:none;width:5px;height:5px}.dev__dot--online{background:var(--accent)}.car{padding:20px 0 0}.car__top{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.car__cap{letter-spacing:.22em;color:var(--ink-3);text-transform:uppercase;font-size:10px}.car__when{letter-spacing:.12em;color:var(--ink-3);font-size:10px}.car__soc{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"num meta""bar bar";align-items:center;column-gap:14px;display:grid}.car__socNum{letter-spacing:-.01em;grid-area:num;font-size:32px;line-height:1}.car__pct{color:var(--ink-2);margin-left:2px;font-size:13px}.car__meta{color:var(--ink-2);grid-area:meta;font-size:11px;line-height:1.6}.car__sep{color:var(--rule);margin:0 6px}.car__charge{color:var(--accent);letter-spacing:.08em;margin-left:8px}.car__bar{background:var(--rule-soft);grid-area:bar;height:3px;margin-top:14px;position:relative}.car__bar>span{background:var(--ink);transition:width .3s;position:absolute;top:0;bottom:0;left:0}.car__bar--charge>span{background:var(--accent)}.car__grid{border-top:1px solid var(--rule-soft);grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0 0;display:grid}.car__cell{border-bottom:1px solid var(--rule-soft);padding:11px 0}.car__cell dt{letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase;font-size:10px}.car__cell dd{margin:4px 0 0;font-size:15px}.car__cell dd .car__unit{color:var(--ink-2);font-size:11px}.tl{padding-top:34px;position:relative}.tl:before{content:"";background:var(--rule);width:1px;position:absolute;top:46px;bottom:0;left:3px}.tl-item{cursor:pointer;padding:0 0 26px 26px;position:relative}.tl-item__dot{border:1.5px solid var(--ink-3);background:var(--bg);box-sizing:border-box;border-radius:50%;width:7px;height:7px;transition:border-color .15s;position:absolute;top:6px;left:0}.tl-item:hover .tl-item__dot{border-color:var(--accent);background:var(--accent)}.tl-date{letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;margin-bottom:5px;font-size:10px}.tl-route{font-size:15px;line-height:1.45}.tl-route__arrow{color:var(--accent);margin:0 5px}.tl-stats{color:var(--ink-2);margin-top:5px;font-size:11px}.tl-stats__sep{color:var(--rule);margin:0 7px}.tl-item--dim .tl-route{color:var(--ink-2)}.sec{letter-spacing:.22em;color:var(--ink-3);text-transform:uppercase;padding:26px 0 10px;font-size:10px}.dl__row{border-bottom:1px solid var(--rule-soft);justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;display:flex}.dl__row:last-child{border-bottom:none}.dl__k{letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase;flex:none;font-size:10px}.dl__v{text-align:right;font-size:15px}.dl__u{color:var(--ink-2);margin-left:3px;font-size:11px}.note{border-top:1px solid var(--rule);color:var(--ink-2);margin-top:20px;padding-top:16px;font-size:13px;line-height:1.8}.actions{gap:10px;padding-top:22px;display:flex}.btn{letter-spacing:.06em;border:1px solid var(--rule);height:44px;color:var(--ink-2);background:0 0;flex:1;justify-content:center;align-items:center;gap:8px;font-size:13px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn:hover{border-color:var(--ink-3);color:var(--ink)}.btn--primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn--primary:hover{color:var(--bg);background:#000}.btn:disabled{opacity:.45;cursor:not-allowed}.back{color:var(--ink-2);align-items:center;gap:7px;padding:4px 0;font-size:13px;display:inline-flex}.back:hover{color:var(--ink)}.back__chev{border-bottom:1.5px solid;border-left:1.5px solid;width:8px;height:8px;transform:rotate(45deg)}.chart{width:100%;height:88px;display:block}.chart__axis{color:var(--ink-3);letter-spacing:.08em;justify-content:space-between;gap:10px;margin-top:6px;font-size:10px;display:flex}.hint{color:var(--ink-3);white-space:pre-line;padding:34px 0;font-size:12px;line-height:1.9}.empty{text-align:center;color:var(--ink-3);white-space:pre-line;padding:84px 0;font-size:13px;line-height:1.9}.empty__mark{border:1px solid var(--rule);width:22px;height:22px;margin:0 auto 14px}.banner{border:1px solid var(--rule);color:var(--ink-2);background:#fdfbf7;margin:0 0 22px;padding:12px 14px;font-size:12px;line-height:1.75}.banner--accent{border-color:#b4552d59}.banner code{font-family:var(--font-mono);background:#0000000a;padding:1px 4px;font-size:11px}.foot{border-top:1px solid var(--rule-soft);letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase;margin-top:28px;padding-top:16px;font-size:10px}@media (width>=720px){:root{--gutter:32px;--max-w:820px}body{font-size:15px}.head__title{font-size:34px}.plate__map,.plate__empty{height:280px}.live__route{font-size:25px}.live__say{font-size:14px}.car__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.car__cell{padding-right:16px}}@media (width>=940px){:root{--max-w:1080px}.detail-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:40px;display:grid}.detail-grid__map{position:sticky;top:28px}.plate__map,.plate__empty{height:420px}.detail-grid .head{grid-column:1/-1;padding-bottom:20px}}
