:root { --bg:#111418; --fg:#e8eaed; --muted:#9aa0a6; --line:#2a2f36; --panel:#181c21; }
* { box-sizing:border-box; }
html, body { margin:0; height:100%; background:var(--bg); color:var(--fg); font:14px/1.4 -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
header { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; padding:8px 12px; border-bottom:1px solid var(--line); background:var(--panel); }
.brand { display:flex; flex-direction:column; line-height:1.15; margin-right:6px; }
.brand span { color:var(--muted); font-size:11px; }
#days { display:flex; flex-wrap:wrap; gap:6px; }
#days button { border:2px solid var(--c, #666); background:transparent; color:var(--fg); padding:4px 10px; border-radius:16px; cursor:pointer; font-weight:600; font-size:13px; }
#days button.on { background:var(--c, #666); color:#fff; }
.tools { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; margin-left:auto; }
.seg button { border:1px solid var(--line); background:transparent; color:var(--fg); padding:4px 9px; cursor:pointer; font-size:12px; }
.seg button:first-child { border-radius:12px 0 0 12px; } .seg button:last-child { border-radius:0 12px 12px 0; margin-left:-1px; }
.seg button.on { background:#e8eaed; color:#111; }
.chk { display:flex; align-items:center; gap:5px; font-size:12px; color:var(--muted); cursor:pointer; }
.dl { color:var(--muted); font-size:12px; text-decoration:none; border:1px solid var(--line); padding:3px 7px; border-radius:8px; }
main { display:flex; height:calc(100% - 58px); }
#panel { width:360px; max-width:40%; overflow:auto; border-right:1px solid var(--line); background:var(--panel); }
#panel-content { padding:12px 14px 24px; }
#map { flex:1; }
h2 { margin:0 0 2px; font-size:17px; } .date { color:var(--muted); font-size:12px; margin-bottom:8px; }
.summary { margin:0 0 10px; color:#c9cdd2; }
.route { font-size:12px; color:var(--muted); margin:4px 0 10px; }
.route b { color:var(--fg); }
.route.alt { border-left:3px dashed var(--muted); padding-left:8px; }
ol.points { list-style:none; margin:0; padding:0; }
ol.points li { display:flex; gap:9px; padding:7px 6px; border-radius:8px; cursor:pointer; align-items:flex-start; }
ol.points li:hover, ol.points li.sel { background:#232931; }
ol.points li.off { opacity:.78; }
.num { flex:0 0 22px; height:22px; border-radius:50%; background:var(--c); color:#fff; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; margin-top:1px; }
.num.off { background:transparent; border:2px solid var(--c); color:var(--c); }
.pt-name { font-weight:600; } .pt-time { color:var(--muted); font-size:12px; margin-left:6px; font-weight:400; }
.pt-desc { color:#b9bec4; font-size:12px; margin-top:1px; }
.leg { font-size:11px; color:var(--muted); padding:0 0 0 37px; }
.fuel-note { margin-top:12px; font-size:12px; color:var(--muted); }
.all h3 { margin:12px 0 4px; font-size:14px; }
.all p { margin:0 0 4px; color:#b9bec4; font-size:12px; }
.marker-num { background:var(--c); color:#fff; border:2px solid #fff; border-radius:50%; width:24px; height:24px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:11px; box-shadow:0 1px 4px rgba(0,0,0,.5); }
.marker-num.off { background:#fff; color:var(--c); border-color:var(--c); }
.marker-fuel { width:14px; height:14px; border-radius:3px; background:#ffd60a; border:2px solid #333; box-shadow:0 1px 3px rgba(0,0,0,.5); }
.leaflet-popup-content { font:13px/1.4 -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; margin:10px 12px; }
.leaflet-popup-content b { font-size:14px; } .leaflet-popup-content .t { color:#666; font-size:12px; }
.leaflet-popup-content .links a { margin-right:9px; font-size:12px; }
.leaflet-container { background:#e9e5dc; }
@media (max-width:760px) {
  header { padding:6px 8px; gap:6px 10px; }
  .brand span { display:none; }
  .tools { margin-left:0; width:100%; }
  main { flex-direction:column-reverse; height:calc(100% - 96px); }
  #panel { width:100%; max-width:none; height:42%; border-right:0; border-top:1px solid var(--line); }
  #map { height:58%; }
}
