:root{--bg:#1c2d28;--bg-soft:#293d36;--accent:#d2b56b;--text:#f2f0e9;--ok:#78ad8b;--err:#c8786d;--warning:#cfb779;--muted:rgba(242,240,233,0.7);--border:rgba(242,240,233,0.14)}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Avenir Next,Avenir,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}#__next,body,body>div,html{height:100%}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button,input,select{font:inherit}a,button{touch-action:manipulation}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.map-page{display:flex;flex-direction:column;min-height:100%;height:100dvh}.map-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));background:var(--bg);border-bottom:1px solid var(--border)}.map-logo{margin:0;font-size:18px;font-weight:750}.map-topbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.map-home-link{display:inline-flex;align-items:center;justify-content:center;padding:6px 11px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text);font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}.map-home-link:hover{border-color:rgba(242,240,233,.32);background:rgba(242,240,233,.06)}.map-status-pill{padding:6px 11px;border-radius:999px;font-size:14px;font-weight:700}.map-status-pill.live{background:rgba(120,173,139,.18);color:#a9cbb5}.map-status-pill.connecting,.map-status-pill.stale{background:rgba(207,183,121,.16);color:var(--warning)}.map-status-pill.off{background:rgba(200,120,109,.18);color:#dda69e}.map-context{margin:0;padding:9px max(16px,env(safe-area-inset-right)) 9px max(16px,env(safe-area-inset-left));background:var(--bg-soft);color:var(--muted);font-size:14px;line-height:1.4}.map-content{position:relative;flex:1 1;min-height:0}.map-loading,.page-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:240px;color:var(--muted)}.map-bottombar{padding:8px max(16px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--bg);color:var(--muted);font-size:12px;text-align:center}.train-map-canvas,.train-map-shell{width:100%;height:100%}.train-map-shell{position:relative}.map-recenter{position:absolute;z-index:500;right:max(12px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:999px;background:rgba(11,61,46,.94);color:var(--text);font-weight:750;cursor:pointer}@media (max-width:480px){.map-topbar,.map-topbar-actions{align-items:stretch;flex-direction:column}.map-home-link,.map-status-pill{border-radius:10px;font-size:16px;text-align:center}.map-bottombar{display:none}}.train-marker{display:inline-block;width:24px;height:24px;font-size:22px;line-height:24px;text-align:center;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6));transform:rotate(var(--train-heading,0deg));transform-origin:center;transition:none;will-change:transform}.train-marker.parked{opacity:.55;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4)) grayscale(.3)}.bus-stop-marker{display:flex;align-items:center;justify-content:center;width:36px;height:36px;font-size:19px;line-height:1;background:rgba(28,45,40,.94);border:2px solid var(--accent);border-radius:999px;box-shadow:0 1px 4px rgba(0,0,0,.45)}.bus-stop-marker--next{border-color:#91b69e;box-shadow:0 0 0 3px rgba(120,173,139,.25),0 1px 4px rgba(0,0,0,.45)}.bus-stop-tooltip{background:rgba(28,45,40,.96);border:1px solid rgba(210,181,107,.45);color:var(--text);font-weight:600;font-size:12px;border-radius:6px;padding:4px 8px}.bus-stop-tooltip--next{border-color:rgba(120,173,139,.65);color:#b9d2c1}.bus-stop-tooltip:before{border-top-color:rgba(28,45,40,.96)}.stop-eta-list{flex-shrink:0;max-height:36vh;overflow-y:auto;border-top:1px solid var(--border);background:var(--bg-soft);padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left))}.stop-eta-list__summary{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:0;padding:10px 12px;border:1px solid rgba(112,229,161,.45);border-radius:10px;background:rgba(46,204,113,.12);color:inherit;text-align:left;cursor:pointer}.stop-eta-list__summary:hover{background:rgba(46,204,113,.18)}.stop-eta-list__summary-main{display:flex;flex-direction:column;gap:2px;min-width:0}.stop-eta-list__summary-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.stop-eta-list__summary-name{font-size:16px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stop-eta-list__summary-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.stop-eta-list__chevron{font-size:14px;color:var(--muted);line-height:1}.stop-eta-list__hint{margin:6px 2px 0;font-size:12px;color:var(--muted)}.stop-eta-list__items{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.stop-eta-list__item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:8px;background:rgba(11,61,46,.45);border:1px solid transparent}.stop-eta-list__item--next{border-color:rgba(112,229,161,.45);background:rgba(46,204,113,.12)}.stop-eta-list__name{font-size:14px;font-weight:650;min-width:0}.stop-eta-list__eta{flex-shrink:0;font-size:13px;font-weight:750;color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stop-eta-list__item--next .stop-eta-list__eta,.stop-eta-list__summary .stop-eta-list__eta{color:#a9cbb5;font-size:15px}.stop-eta-list__empty{margin:0;font-size:13px;color:var(--muted)}@media (max-width:480px){.stop-eta-list{max-height:32vh}}.map-logo-sub{display:block;font-size:12px;font-weight:600;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid transparent;border-radius:8px;background:var(--accent);color:#14281f;font-weight:700;text-decoration:none;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.btn:hover{background:#dfc47d;transform:translateY(-1px)}.btn.ghost{border-color:rgba(255,255,255,.24);background:transparent;color:var(--text)}.btn.ghost:hover{border-color:rgba(255,255,255,.45);background:rgba(255,255,255,.06)}.btn-small{min-height:40px;padding:0 15px;font-size:14px}.sales{width:min(100%,1240px);min-height:100%;margin:0 auto;padding:0 32px 40px}.admin-vehicle,.form-page,.simple-page{max-width:1100px;margin:0 auto;padding:24px max(16px,env(safe-area-inset-right)) 40px max(16px,env(safe-area-inset-left))}.sales-top{min-height:82px;align-items:center;gap:24px;border-bottom:1px solid rgba(255,255,255,.12)}.page-head,.sales-top{display:flex;justify-content:space-between}.page-head{gap:16px;align-items:flex-start;flex-wrap:wrap}.sales-brand{gap:11px;color:var(--text);font-size:18px;font-weight:750;letter-spacing:-.02em;text-decoration:none}.sales-brand,.sales-brand-mark{display:inline-flex;align-items:center}.sales-brand-mark{width:34px;height:34px;justify-content:center;border:1px solid rgba(242,240,233,.18);border-radius:7px;background:rgba(242,240,233,.08);color:#d8c284}.sales-brand-mark svg{width:23px;height:23px}.sales-nav{align-items:center;gap:26px}.sales-nav-link{color:rgba(245,247,245,.8);font-size:14px;font-weight:650;text-decoration:none}.sales-nav-link:hover{color:var(--text)}.sales-kicker{margin:0 0 10px;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.form-page h1,.simple-page h1{margin:0 0 12px}.sales-actions,.sales-nav{display:flex;flex-wrap:wrap;gap:12px}.sales-hero{padding:76px 0 70px}.sales-copy h1{max-width:690px;margin:0;font-size:clamp(40px,5.2vw,64px);font-weight:720;letter-spacing:-.045em;line-height:1.04}.form-page p,.sales-copy>p:not(.sales-kicker),.simple-page p{color:var(--muted);line-height:1.5}.sales-copy>p:not(.sales-kicker){max-width:650px;margin:24px 0 28px;font-size:18px;line-height:1.65}.sales-benefits{display:flex;flex-wrap:wrap;gap:18px 28px;margin:28px 0 0;padding:0;color:rgba(245,247,245,.72);font-size:14px;list-style:none}.sales-benefits li:before{content:"";display:inline-block;width:5px;height:5px;margin:0 9px 2px 0;border-radius:50%;background:var(--accent)}.train-directory{padding:50px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(8,22,18,.22);scroll-margin-top:20px}.directory-head{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:24px}.directory-head h2,.sales-cta h2{margin:0;font-size:clamp(29px,3.2vw,40px);letter-spacing:-.035em}.directory-head p:not(.sales-kicker){max-width:600px;margin:10px 0 0;color:var(--muted);line-height:1.55}.location-actions{display:flex;flex-shrink:0;align-items:center;gap:14px}.text-button{min-height:40px;padding:0;border:0;background:transparent;color:var(--accent);font-weight:700;cursor:pointer}.sales-map-wrap{position:relative;height:min(54vh,500px);overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#dce5df}.directory-map,.picker-map{height:100%;overflow:hidden}.picker-map{height:min(52vh,460px);border:1px solid var(--border);border-radius:16px}.map-legend{position:absolute;z-index:500;right:12px;bottom:12px;display:flex;gap:14px;padding:8px 11px;border-radius:7px;background:rgba(25,43,37,.92);box-shadow:0 3px 14px rgba(0,0,0,.18);color:#fff;font-size:12px}.map-legend span{display:flex;align-items:center;gap:6px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%}.legend-dot.live{background:#78ad8b}.legend-dot.parked{background:var(--accent)}.sales-list{margin-top:30px}.list-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}.list-head h3{margin:0;font-size:18px}.list-head>span{color:var(--muted);font-size:13px}.picker-results,.plain-list,.sales-list ul,.tenant-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.empty-card,.sales-list a,.tenant-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid rgba(255,255,255,.11);border-radius:9px;background:rgba(255,255,255,.045);color:inherit;text-decoration:none}.sales-list a{display:grid;grid-template-columns:32px minmax(0,1fr) auto 24px}.sales-list a:hover{border-color:rgba(255,210,63,.38);background:rgba(255,255,255,.07)}.sales-list em,.tenant-list span{display:block;color:var(--muted);font-style:normal;font-size:13px}.train-status-icon{font-size:15px}.train-status-icon.live{color:#78ad8b}.train-status-icon.off{color:var(--accent)}.train-name{min-width:0}.train-name strong{display:block}.sales-list .meta{text-align:right}.sales-list .meta em,.sales-list .meta strong{display:block}.sales-list .meta strong{font-size:13px}.train-arrow{color:var(--accent);font-size:18px}.sales-cta{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-top:70px;padding:42px 46px;border-radius:14px;background:var(--accent);color:#25332e}.sales-cta .sales-kicker{color:rgba(37,51,46,.66)}.sales-cta p:not(.sales-kicker){max-width:650px;margin:11px 0 0;color:rgba(37,51,46,.78);line-height:1.55}.sales-cta .btn{flex-shrink:0;border-color:#25332e;background:#25332e;color:#fff}.sales-cta .btn:hover{background:#17231f}.sales-footer{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:52px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12)}.footer-brand{font-size:15px}.footer-brand .sales-brand-mark{width:28px;height:28px;font-size:14px}.sales-footer nav{display:flex;flex-wrap:wrap;gap:24px}.sales-footer nav a{color:var(--muted);font-size:13px;text-decoration:none}.form-error,.sales-note{margin:12px 0;color:#ffd2cc;font-size:14px}.form-ok{color:#70e5a1}.stack-form{display:flex;flex-direction:column;gap:12px;max-width:460px}.stack-form label,.tenant-list label{display:flex;flex-direction:column;gap:6px;font-weight:650}.picker-search input,.stack-form input,.tenant-list input{min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:rgba(255,255,255,.06);color:var(--text)}.form-page.wide{max-width:860px}.back-link{display:inline-block;margin-bottom:12px}.picker-search{display:flex;gap:8px;margin-bottom:10px}.picker-search input{flex:1 1}.picker-results button{width:100%;text-align:left;min-height:40px;border:none;background:transparent;color:var(--text);cursor:pointer}.qr-card{max-width:360px;padding:24px;border-radius:16px;background:#fff;color:#122;text-align:center}.qr-card img{width:220px;height:220px}.qr-panel{margin:24px 0 40px}.admin-vehicle .editor{min-height:70dvh;margin:12px 0 32px;border:1px solid var(--border);border-radius:12px;overflow:hidden}@media (max-width:800px){.sales{padding:0 20px 28px}.sales-top{min-height:70px}.sales-nav-link{display:none}.sales-hero{padding:52px 0}.sales-copy h1{font-size:clamp(40px,10vw,54px)}.train-directory{padding:30px 22px}.directory-head{align-items:flex-start;flex-direction:column;gap:20px}.sales-map-wrap{height:430px}.sales-cta{align-items:flex-start;flex-direction:column;padding:34px 28px}}@media (max-width:560px){.sales-brand{font-size:16px}.sales-brand-mark{width:30px;height:30px}.sales-top .btn{min-height:38px;padding:0 12px}.sales-hero{padding:42px 0}.sales-copy h1{font-size:40px}.sales-copy>p:not(.sales-kicker){font-size:16px}.sales-actions .btn{flex:1 1}.sales-benefits{gap:10px 16px}.train-directory{margin-right:-8px;margin-left:-8px;padding:26px 14px;border-radius:12px}.location-actions{width:100%;align-items:flex-start;flex-direction:column}.location-actions .btn{width:100%}.sales-map-wrap{height:360px}.map-legend{right:8px;bottom:8px}.sales-list a{grid-template-columns:24px minmax(0,1fr) 18px}.sales-list .meta{display:none}.empty-card{align-items:flex-start;flex-direction:column}.sales-cta{margin-top:44px;padding:28px 22px}.sales-cta .btn{width:100%}.sales-footer{align-items:flex-start;flex-direction:column;margin-top:38px}.sales-footer nav{gap:18px}}@media print{body *{visibility:hidden}#qr-print,#qr-print *{visibility:visible}#qr-print{position:absolute;inset:24px}}