/* Google-Maps-style skin for the driver page (scoped to body.gm) */
body.gm{
  --g-blue:#1a73e8;--g-blue-d:#1558b0;--g-green:#188038;--g-green-bg:#e6f4ea;--g-red:#d93025;--g-red-bg:#fce8e6;
  --g-amber:#b06000;--g-amber-bg:#fef7e0;--g-ink:#202124;--g-ink2:#5f6368;--g-line:#dadce0;--g-hover:#f1f3f4;--g-bg:#fff;
  --g-shadow:0 1px 2px rgba(60,64,67,.3),0 2px 6px 2px rgba(60,64,67,.15);
  --panel-w:408px;
  font-family:Roboto,"Segoe UI",system-ui,-apple-system,Arial,sans-serif;color:var(--g-ink);
  margin:0;height:100%;overflow:hidden;background:#e5e3df;
}
@media (prefers-color-scheme:dark){body.gm:not([data-theme=light]){
  --g-ink:#e8eaed;--g-ink2:#9aa0a6;--g-line:#3c4043;--g-hover:#303134;--g-bg:#202124;--g-green-bg:#0d3a1f;--g-red-bg:#3c1614;--g-amber-bg:#3a2a0a;
  --g-shadow:0 1px 3px rgba(0,0,0,.6),0 4px 8px 3px rgba(0,0,0,.3);background:#1b1b1b}}
body.gm #map{position:fixed;inset:0;height:auto;min-height:0;z-index:0}

/* ---------- cards / panel ---------- */
body.gm .gm-card{position:fixed;z-index:500;background:var(--g-bg);color:var(--g-ink)}
body.gm .gm-search{left:0;top:0;width:var(--panel-w);padding:12px 16px 14px;box-shadow:0 1px 0 var(--g-line)}
body.gm .gm-sheet{left:0;width:var(--panel-w);bottom:0;top:var(--search-h,300px);box-shadow:var(--g-shadow);display:flex;flex-direction:column}
body.gm .gm-sheet-body{overflow:auto;padding:4px 16px 24px;flex:1;background:var(--g-bg)}
body.gm .gm-handle{display:none}
body.gm .leaflet-left .leaflet-control{margin-left:calc(var(--panel-w) + 12px)}

.gm-brand{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:500;margin-bottom:8px}
.gm-brand img{border-radius:7px}
.gm-brand .spacer{flex:1}
.gm-date{font-size:12px;font-weight:500;padding:4px 10px;border-radius:14px;background:var(--g-green-bg);color:var(--g-green);white-space:nowrap}
.gm-date.old{background:var(--g-amber-bg);color:var(--g-amber)}
.gm-date.tmr{background:#ede7f6;color:#5e35b1}

.gm-modes{display:flex;gap:6px;margin:0 -4px 10px}
.gm-modes button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;color:var(--g-ink2);padding:8px;border-radius:18px;font:500 14px Roboto,system-ui,sans-serif;cursor:pointer}
.gm-modes button.on{background:#e8f0fe;color:var(--g-blue)}
@media (prefers-color-scheme:dark){body.gm:not([data-theme=light]) .gm-modes button.on{background:#1f3a60;color:#8ab4f8}}

.gm-dir{display:flex;align-items:center;gap:8px}
.gm-dots{display:flex;flex-direction:column;align-items:center;gap:4px;width:16px;flex:none}
.gm-dots i{display:block;width:3px;height:3px;border-radius:50%;background:var(--g-ink2)}
.gm-dots i.o{width:12px;height:12px;border:2px solid var(--g-ink2);background:transparent;box-sizing:border-box}
.gm-dots i.d{width:12px;height:12px;background:var(--g-red);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.gm-fields{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
body.gm .gm-fields input,body.gm .gm-searchbox input{border:1px solid var(--g-line);border-radius:8px;padding:10px 12px;font:15px Roboto,system-ui,sans-serif;background:var(--g-bg);color:var(--g-ink);width:100%;box-sizing:border-box}
body.gm .gm-fields input:focus,body.gm .gm-searchbox input:focus{outline:2px solid var(--g-blue);outline-offset:-1px;border-color:transparent}
body.gm .with-btn{display:flex;gap:4px;align-items:center}
.gm-ibtn{border:0;background:transparent;color:var(--g-ink2);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;flex:none;font-size:22px;line-height:1}
.gm-ibtn:hover{background:var(--g-hover)}
.gm-swap{align-self:center}

.gm-searchbox{display:flex;align-items:center;gap:8px;border:1px solid var(--g-line);border-radius:24px;padding:2px 12px;box-shadow:var(--g-shadow)}
.gm-searchbox svg{color:var(--g-ink2);flex:none}
body.gm .gm-searchbox input{border:0;padding:10px 0}
body.gm .gm-searchbox input:focus{outline:0}

.gm-chips{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.gm-chips::-webkit-scrollbar{display:none}
.gm-chip,body.gm .chip{display:inline-flex;align-items:center;gap:6px;flex:none;border:1px solid var(--g-line);background:var(--g-bg);color:var(--g-ink);border-radius:16px;padding:6px 12px;font:500 13px Roboto,system-ui,sans-serif;cursor:pointer;white-space:nowrap;text-decoration:none}
.gm-chip:hover,body.gm .chip:hover{background:var(--g-hover)}
body.gm .chip{background:#e8f0fe;border-color:#d2e3fc;color:var(--g-blue-d)}
body.gm .chip.off{background:var(--g-bg);border-color:var(--g-line);color:var(--g-ink2);text-decoration:none;opacity:.75}
.gm-chip-select span{color:var(--g-ink2);font-weight:400}
.gm-chip-select select{border:0;background:transparent;color:var(--g-ink);font:500 13px Roboto,system-ui,sans-serif;padding:0;width:auto;cursor:pointer}
.gm-chip-select select:focus{outline:0}
.gm-chip-blue{color:var(--g-blue);border-color:#d2e3fc}
.gm-chip.on{background:#e8f0fe;border-color:#d2e3fc;color:var(--g-blue-d)}
.gm-truck{margin-top:8px;padding:4px 12px 8px;border:1px solid var(--g-line);border-radius:12px}
.gm-truck:not([open]){display:none}
body.gm .gm-truck input{border:1px solid var(--g-line);border-radius:8px;padding:8px 10px;font:14px Roboto,system-ui,sans-serif;background:var(--g-bg);color:var(--g-ink)}
body.gm label{color:var(--g-ink2);font-weight:500}

.gm-go{margin-top:12px;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:20px;background:var(--g-blue);color:#fff;font:500 15px Roboto,system-ui,sans-serif;padding:11px;cursor:pointer;box-shadow:0 1px 2px rgba(60,64,67,.3)}
.gm-go:hover{background:#1765cc;box-shadow:0 1px 3px rgba(60,64,67,.4)}
.gm-go:disabled{opacity:.7}

.gm-summary{display:flex;align-items:center;gap:8px;width:100%;border:1px solid var(--g-line);border-radius:24px;background:var(--g-bg);color:var(--g-ink);padding:10px 14px;font:500 14px Roboto,system-ui,sans-serif;cursor:pointer;box-shadow:var(--g-shadow);text-align:left}
.gm-summary span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gm-summary svg{color:var(--g-ink2)}

/* ---------- results ---------- */
.gm-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#e8f0fe;margin:8px 0;font-size:14px}
body.gm .daybar{background:var(--g-amber-bg);border:0;color:var(--g-ink)}
body.gm .daybar.tmr{background:#ede7f6}
@media (prefers-color-scheme:dark){body.gm:not([data-theme=light]) .gm-banner{background:#1f3a60}body.gm:not([data-theme=light]) .daybar.tmr{background:#2e2548}}
.gm-pill{border:1px solid var(--g-line);background:var(--g-bg);color:var(--g-blue);border-radius:18px;padding:7px 14px;font:500 13px Roboto,system-ui,sans-serif;cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.gm-pill:hover{background:#f6fafe}
.gm-pill.fill{background:var(--g-blue);color:#fff;border-color:var(--g-blue)}
.gm-empty{display:flex;flex-direction:column;gap:6px;padding:28px 8px;color:var(--g-ink2);font-size:14px;text-align:center}
.gm-empty b{color:var(--g-ink);font-size:16px;font-weight:500}

body.gm .summary{grid-template-columns:repeat(3,1fr);gap:0;margin:8px -16px 4px;border-bottom:1px solid var(--g-line);padding:0 8px 10px}
body.gm .stat{border:0;background:transparent;padding:6px 8px;border-radius:0}
body.gm .stat b{font-size:18px;font-weight:500}
body.gm .stat span{font-size:12px;text-transform:none;letter-spacing:0;color:var(--g-ink2)}
body.gm .card{border:0;box-shadow:none;border-radius:12px;background:var(--g-hover);padding:12px 14px}
body.gm .card.plan{background:var(--g-green-bg);border-left:0}
body.gm .card h2{font-size:15px;font-weight:500}
body.gm .plan .num{background:var(--g-green)}
body.gm .listhead{margin:14px 0 4px}
body.gm .listhead b{font-weight:500}
body.gm .seg{border-color:var(--g-line);border-radius:16px}
body.gm .seg button{padding:5px 12px;font:500 12px Roboto,system-ui,sans-serif;background:var(--g-bg)}
body.gm .seg button.on{background:#e8f0fe;color:var(--g-blue-d)}
body.gm .st{border:0;border-bottom:1px solid var(--g-line);border-radius:0;margin:0 -16px;padding:12px 16px;background:var(--g-bg);grid-template-columns:1fr auto}
body.gm .st:hover{background:var(--g-hover)}
body.gm .st.sel{outline:0;background:#e8f0fe}
body.gm .st.best{background:linear-gradient(90deg,var(--g-green-bg),var(--g-bg) 70%)}
body.gm .st .nm{font-size:16px;font-weight:500}
body.gm .st .ad{font-size:14px;color:var(--g-ink2)}
body.gm .st .pr{font-size:18px;font-weight:500;color:var(--g-ink)}
body.gm .st.best .pr{color:var(--g-green)}
body.gm .st .pr small{font-weight:400;color:var(--g-ink2)}
body.gm .st .meta{gap:6px}
body.gm .st .meta .btn.small{border-radius:18px;border:1px solid var(--g-line);color:var(--g-blue);font:500 13px Roboto,system-ui,sans-serif;padding:6px 14px;background:var(--g-bg)}
body.gm .st .meta .btn.small::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.7 11.3 12.7 2.3c-.4-.4-1-.4-1.4 0l-9 9c-.4.4-.4 1 0 1.4l9 9c.4.4 1 .4 1.4 0l9-9c.4-.4.4-1 0-1.4zM14 14.5V12h-4v3H8v-4c0-.6.4-1 1-1h5V7.5l3.5 3.5-3.5 3.5z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.7 11.3 12.7 2.3c-.4-.4-1-.4-1.4 0l-9 9c-.4.4-.4 1 0 1.4l9 9c.4.4 1 .4 1.4 0l9-9c.4-.4.4-1 0-1.4zM14 14.5V12h-4v3H8v-4c0-.6.4-1 1-1h5V7.5l3.5 3.5-3.5 3.5z'/%3E%3C/svg%3E") center/contain no-repeat}
body.gm .tag{border-radius:4px;font-weight:500;font-size:12px;background:var(--g-hover);color:var(--g-ink2)}
body.gm .tag.good{background:var(--g-green-bg);color:var(--g-green)}
body.gm .tag.bad{background:var(--g-red-bg);color:var(--g-red)}
body.gm .tag.warn{background:var(--g-amber-bg);color:var(--g-amber)}
body.gm .tag[class*=v-]{background:transparent;color:var(--g-ink2);padding-left:0}
body.gm .notice{border-radius:12px}
body.gm .ac-list{border-radius:8px;border:0;box-shadow:var(--g-shadow);z-index:1500}
body.gm .ac-list div{border-bottom:0;padding:10px 14px}

/* ---------- map furniture ---------- */
.gm-fabs{position:fixed;right:12px;bottom:28px;z-index:450;display:flex;flex-direction:column;gap:10px}
.gm-fab{width:44px;height:44px;border-radius:50%;border:0;background:var(--g-bg);color:var(--g-ink2);box-shadow:var(--g-shadow);display:grid;place-items:center;cursor:pointer}
.gm-fab:hover{color:var(--g-blue)}
body.gm .leaflet-control-zoom{border:0!important;box-shadow:var(--g-shadow)!important;border-radius:8px;overflow:hidden}
body.gm .leaflet-control-zoom a{width:40px;height:40px;line-height:40px;color:var(--g-ink2);font-weight:400}
body.gm .leaflet-top.leaflet-left{top:auto;bottom:90px;left:auto;right:12px}
body.gm .leaflet-top.leaflet-left .leaflet-control{margin:0;float:none}
body.gm .leaflet-popup-content-wrapper{border-radius:10px;box-shadow:var(--g-shadow);font-family:Roboto,system-ui,sans-serif}

/* price pins (Google-style labels) */
body.gm .pricepin{position:relative;display:inline-flex;align-items:center;gap:4px;background:#fff;color:#202124;border:0;border-radius:14px;padding:3px 8px 3px 3px;font:500 12px Roboto,system-ui,sans-serif;box-shadow:0 1px 3px rgba(60,64,67,.45);transform:translate(-50%,-130%)}
body.gm .pricepin::before{content:"";width:18px;height:18px;border-radius:50%;background:#5f6368 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M19.8 7.2 16.6 4l-1.1 1.1 2.1 2.1c-.9.4-1.6 1.3-1.6 2.3 0 1.4 1.1 2.5 2.5 2.5.4 0 .7-.1 1-.2V19c0 .6-.4 1-1 1s-1-.4-1-1v-4.5c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7h1.5v4.5c0 1.4 1.1 2.5 2.5 2.5s2.5-1.1 2.5-2.5V9c0-.7-.3-1.3-.7-1.8zM12 10H6V5h6v5z'/%3E%3C/svg%3E") center/12px no-repeat}
body.gm .pricepin::after{content:"";position:absolute;left:50%;bottom:-5px;margin-left:-5px;border:5px solid transparent;border-bottom:0;border-top-color:#fff}
body.gm .pricepin.best{background:var(--g-green);color:#fff}
body.gm .pricepin.best::before{background-color:#fff;filter:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23188038'%3E%3Cpath d='M19.8 7.2 16.6 4l-1.1 1.1 2.1 2.1c-.9.4-1.6 1.3-1.6 2.3 0 1.4 1.1 2.5 2.5 2.5.4 0 .7-.1 1-.2V19c0 .6-.4 1-1 1s-1-.4-1-1v-4.5c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7h1.5v4.5c0 1.4 1.1 2.5 2.5 2.5s2.5-1.1 2.5-2.5V9c0-.7-.3-1.3-.7-1.8zM12 10H6V5h6v5z'/%3E%3C/svg%3E")}
body.gm .pricepin.best::after{border-top-color:var(--g-green)}
body.gm .pricepin.plan::before{background-color:var(--g-blue)}
body.gm .pricepin.closed{opacity:.75}
body.gm .pricepin.closed::before{background-color:var(--g-red)}
.gm-dest{width:27px;height:43px;transform:translate(-50%,-100%)}
.gm-origin{width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid #202124;box-sizing:border-box;transform:translate(-50%,-50%)}

/* ---------- phone layout: top card + bottom sheet ---------- */
@media (max-width:860px){
  body.gm{--panel-w:100%}
  body.gm .gm-search{left:8px;right:8px;top:8px;width:auto;border-radius:16px;box-shadow:var(--g-shadow);padding:10px 12px 12px;max-height:calc(100vh - 140px);overflow:auto}
  body.gm .gm-search.compact{padding:6px}
  body.gm .gm-search.compact > :not(#editSearch){display:none}
  body.gm .gm-search.compact #editSearch{display:flex!important;box-shadow:none;border:0}
  body.gm .gm-brand{font-size:16px;margin-bottom:6px}
  body.gm .gm-sheet{top:auto;left:0;right:0;width:auto;height:var(--sheet-h,34vh);border-radius:16px 16px 0 0;transition:height .25s ease}
  body.gm .gm-sheet.dragging{transition:none}
  body.gm .gm-handle{display:block;padding:8px 0 6px;cursor:grab;touch-action:none}
  body.gm .gm-handle i{display:block;width:36px;height:4px;border-radius:2px;background:var(--g-line);margin:0 auto}
  body.gm .gm-sheet-body{padding:0 16px 30px}
  body.gm .leaflet-left .leaflet-control{margin-left:12px}
  body.gm .leaflet-top.leaflet-left{display:none}
  .gm-fabs{bottom:calc(var(--sheet-h,34vh) + 12px);transition:bottom .25s ease}
}

/* chips wrap on desktop, scroll sideways on phones */
@media (min-width:861px){ .gm-chips{flex-wrap:wrap;overflow:visible} }
/* Google-style clusters for the all-stations overview */
body.gm .marker-cluster{background:rgba(234,67,53,.25)!important}
body.gm .marker-cluster div{background:#ea4335!important;color:#fff;font:500 12px Roboto,system-ui,sans-serif;box-shadow:0 1px 3px rgba(60,64,67,.4)}
