:root{--ink:#173d35;--muted:#7a8781;--green:#1c7357;--mint:#d5f36a;--purple:#8061c7;--line:#e8ece7}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:#f9faf7}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #8061c7;outline-offset:3px}button{transition:background .2s,transform .2s}button:active{transform:scale(.97)}header{height:88px;background:#fff;display:flex;align-items:center;padding:0 34px;border-bottom:1px solid var(--line);gap:72px}.brand{font-size:43px;letter-spacing:-3px;font-weight:900;text-decoration:none;color:var(--ink)}.brand span{color:#79a94a;font-size:35px;margin-left:2px}.location{font-size:14px}.location small{display:block;color:var(--muted);margin-left:20px;font-size:11px;margin-top:5px}nav{margin-left:auto;display:flex;align-items:center;gap:18px}.demo-label{font-size:10px;letter-spacing:1.3px;color:var(--muted);margin-right:18px}.demo-label i,.live-pill i{display:inline-block;width:6px;height:6px;background:#7aab63;border-radius:50%;margin-right:8px}.points{border:1px solid var(--line);background:white;border-radius:30px;padding:11px 17px;font-size:14px}.points b{margin:0 4px}.points span{font-size:12px}.avatar{border-radius:50%;width:37px;height:37px;background:#e9eddf;font-size:13px;font-weight:bold}main{display:flex;height:calc(100dvh - 88px);min-height:620px}aside{width:390px;flex-shrink:0;padding:35px 28px 20px;background:#fff;z-index:4;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:700;color:var(--muted);text-transform:uppercase}.eyebrow .dot{margin-right:6px}h1{font-size:36px;letter-spacing:-1.5px;line-height:1.12;margin:15px 0}h1 em{font-style:normal;color:#769445}p{font-size:13px;line-height:1.65;color:#77837a;margin:10px 0 23px}h2{font-size:23px;letter-spacing:-.6px;margin:12px 0}h3{font-size:15px;margin:0}.actions{display:grid;gap:10px;margin:4px 0 26px}.primary,.secondary{width:100%;border-radius:13px;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700}.primary{background:var(--ink);color:white}.primary:hover{background:#245b4d}.secondary{background:var(--mint);color:var(--ink)}.action-icon{font-size:21px;margin-right:10px}.action-copy{display:flex;align-items:center}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:7px 0 12px;font-size:12px;font-weight:bold}.section-heading small{font-size:10px;font-weight:400;color:var(--muted)}.opportunity{padding:14px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;width:100%;background:transparent;text-align:left;align-items:center}.pin-mini{width:35px;height:38px;background:#e9f3e9;color:#2f7758;display:grid;place-items:center;border-radius:11px;flex-shrink:0;font-size:17px}.pin-mini.soon{background:#fff3e4;color:#ad7b27}.opportunity b{font-size:12px;display:block}.opportunity small{font-size:10px;display:block;color:var(--muted);margin-top:5px}.opportunity .time{font-size:10px;white-space:nowrap;margin-left:auto;color:#48865f}.prediction-promo{background:#f4f1fa;border:1px solid #eeE8f6;border-radius:13px;padding:16px;margin-top:23px;text-align:left;width:100%}.prediction-promo strong{font-size:12px;color:#7355ac}.prediction-promo p{font-size:11px;line-height:1.5;margin:7px 0 0;color:#877b9c}.panel-footer{margin-top:auto;padding-top:25px;font-size:10px;color:#8f9891;line-height:1.6}.panel-footer b{color:#536c5c;font-weight:500;display:block;margin-bottom:5px}.back{background:none;text-align:left;padding:0;margin:0 0 20px;color:#758278;font-size:12px}.badge{display:inline-block;font-size:10px;border-radius:20px;padding:7px 10px;background:#edf4e7;color:#4d7953}.badge.purple{background:#eee8f8;color:#795bad}.detail-card{background:#f7f9f5;padding:20px;border-radius:15px;margin:15px 0}.detail-card p{margin:8px 0 0}.stats{display:flex;gap:25px;margin:22px 0}.stats strong{display:block;font-size:23px}.stats small{font-size:10px;color:var(--muted)}.notice{font-size:11px;line-height:1.6;color:var(--muted);background:#f6f8f2;padding:13px;border-radius:10px;margin:18px 0}.time-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:20px 0}.time-options button{padding:17px 6px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:600;font-size:13px}.time-options button.selected{background:#eef5df;border:1.5px solid #779b4b}.success-icon{width:65px;height:65px;background:var(--mint);border-radius:50%;display:grid;place-items:center;font-size:32px;margin:10px 0 22px}.text-button{background:none;font-size:12px;color:#698559;text-decoration:underline;padding:15px}.map-shell{position:relative;flex:1;overflow:hidden;background:#eef0e7}#map{position:absolute;inset:0;transform-origin:50% 50%;transition:transform .45s;touch-action:pan-y}#mapSvg{width:100%;height:100%;object-fit:cover}#markers{position:absolute;inset:0;pointer-events:none}.marker{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;border-radius:13px 13px 13px 3px;padding:10px 13px;background:#267455;color:white;box-shadow:0 4px 9px #1b4a3225;border:3px solid #fff;font-size:12px;font-weight:bold;white-space:nowrap;animation:pop .35s ease-out}.marker:hover,.marker.active{box-shadow:0 0 0 5px #acc87d66;z-index:3}.marker.soon{background:#e9ac57;color:#553e1b}.marker.mine{background:#173d35}.marker.pred{background:white;color:#8061c7;border-color:#eee8f7;transform:translate(-50%,-50%);font-size:10px;padding:7px 10px;border-radius:20px}.marker.user{width:20px;height:20px;border:4px solid white;background:#608fa3;border-radius:50%;padding:0;box-shadow:0 0 0 14px #8dafc329;pointer-events:none;transform:translate(-50%,-50%)}@keyframes pop{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}.map-top{position:absolute;top:25px;left:26px;right:25px;display:flex;justify-content:space-between;gap:10px;pointer-events:none}.map-top>*{pointer-events:auto}.live-pill{background:#fff;border-radius:30px;box-shadow:0 3px 14px #31432a0b;padding:12px 17px;font-size:11px;display:flex;align-items:center;gap:4px}.live-pill b{border-left:1px solid var(--line);padding-left:12px;margin-left:10px;color:#789067;font-size:10px}.map-btn{background:#fff;border-radius:24px;padding:12px 17px;font-size:11px;box-shadow:0 3px 10px #31432a0b}.filters{position:absolute;left:27px;top:84px;display:flex;gap:6px}.filters button{padding:9px 13px;border-radius:22px;background:#ffffff80;font-size:10px;border:1px solid #ffffff}.filters button.on{background:white;box-shadow:0 2px 6px #23432108}.filters button:not(.on){opacity:.5;text-decoration:line-through}.dot{width:7px;height:7px;display:inline-block;border-radius:50%;margin-right:5px}.green{background:#2d805d}.orange{background:#e7ad57}.blue{background:#668fa4}.purple-text{color:var(--purple)}.map-controls{position:absolute;right:24px;bottom:65px;display:grid;gap:5px}.map-controls button{width:39px;height:39px;border-radius:12px;background:#fff;font-size:21px;box-shadow:0 3px 10px #31432a10}.map-caption{position:absolute;bottom:13px;right:18px;font-size:8px;color:#89927f}.map-key{position:absolute;bottom:28px;left:27px;font-size:9px;display:flex;gap:7px;align-items:center;background:#ffffffc9;padding:10px;border-radius:8px}.map-label{position:absolute;top:57%;left:49%;font-size:10px;color:#64797e;background:#ffffffdb;border-radius:6px;padding:5px;pointer-events:none}.map-label .dot{display:none}.overlay{position:fixed;inset:0;background:#16372c55;backdrop-filter:blur(4px);z-index:20;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:420px;max-height:85dvh;overflow:auto;background:white;border-radius:24px;padding:28px;box-shadow:0 15px 80px #0f302d30}.modal-top{display:flex;justify-content:space-between;align-items:center}.close{background:#f2f5ef;border-radius:50%;width:32px;height:32px;font-size:20px}.demo-actions{display:grid;gap:9px;margin-top:20px}.demo-actions button{background:#f3f6ed;border:1px solid #e4eadd;padding:14px;text-align:left;border-radius:10px;font-size:12px}.clock{display:flex;justify-content:space-between;background:#f2f5ec;border-radius:12px;padding:16px;margin:15px 0;font-size:13px}.history-row{padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;display:flex;justify-content:space-between;gap:10px}.history-row small{display:block;color:var(--muted);margin-top:5px;font-size:10px}.history-row b{color:#578248;white-space:nowrap}.big-points{font-size:55px;font-weight:700;letter-spacing:-3px;margin-top:20px}.progress{height:6px;background:#edf1e5;border-radius:8px;margin:14px 0;overflow:hidden}.progress div{background:#9abc58;height:100%}.route-text{background:#ecf3e7;padding:14px;border-radius:10px;font-size:12px;margin:15px 0}.empty{padding:22px 0;color:var(--muted);font-size:12px}.tiny{font-size:10px;color:var(--muted);line-height:1.7}
@media(min-width:1450px){aside{width:420px;padding:42px 36px}h1{font-size:42px}}@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){header{height:68px;padding:0 18px;gap:23px}.brand{font-size:34px}.brand span{font-size:28px}.location{font-size:11px}.location small{font-size:9px;margin-top:3px}nav{gap:9px}.points{padding:9px 11px;font-size:12px}.points span,.demo-label{display:none}.avatar{width:31px;height:31px}main{height:calc(100dvh - 68px);min-height:0;display:block;position:relative}aside{position:absolute;bottom:0;left:0;right:0;width:100%;padding:19px 22px max(15px,env(safe-area-inset-bottom));border-radius:24px 24px 0 0;max-height:58%;box-shadow:0 -5px 25px #203e2910;display:block}aside::before{content:'';display:block;width:32px;height:4px;background:#e4e9de;border-radius:5px;position:absolute;top:8px;left:calc(50% - 16px)}.map-shell{height:100%;width:100%}.map-top{top:15px;left:14px;right:14px}.live-pill{font-size:10px;padding:11px 12px}.live-pill b{font-size:9px;padding-left:8px;margin-left:5px}.map-btn{padding:10px 12px}.filters{top:67px;left:14px;gap:5px}.filters button{font-size:9px;padding:9px 10px}.map-controls{right:14px;bottom:47%}.map-caption{bottom:auto;top:106px;right:15px;font-size:7px}.map-key{bottom:45%;left:15px;font-size:8px}.map-label{top:31%;left:47%}#map{height:70%;top:-7%}.eyebrow{font-size:9px}h1{font-size:25px;letter-spacing:-.8px;margin:9px 0}h1 br{display:none}h1 em{margin-left:3px}p{font-size:11px;margin:6px 0 14px}.actions{display:flex;gap:8px;margin:13px 0 14px}.actions button{padding:15px 12px;font-size:11px}.action-icon{font-size:17px;margin-right:6px}.section-heading{margin:7px 0 0;font-size:11px}.opportunity{padding:10px 0}.opportunity:nth-of-type(n+3){display:none}.prediction-promo{display:none}.panel-footer{padding-top:10px;font-size:8px}.panel-footer b{display:none}.pin-mini{width:30px;height:32px}.back{margin-bottom:10px}.detail-card{padding:13px;margin:10px 0}.stats{margin:12px 0}.stats strong{font-size:19px}.notice{margin:10px 0;padding:10px;font-size:10px}h2{font-size:22px}.time-options{margin:12px 0;display:flex}.time-options button{font-size:11px;padding:13px 9px;flex:1}.success-icon{width:45px;height:45px;font-size:25px;margin:0 0 9px}.modal{padding:24px;border-radius:22px}.route-text{font-size:11px;margin:10px 0}.detail-card p{font-size:11px}.marker{font-size:10px;padding:8px 10px}.marker.pred{font-size:9px;padding:6px 8px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Geographic map adapter */
.map-shell{isolation:isolate}#map{height:100%;inset:0;transform:none!important;touch-action:auto;transition:none;z-index:0}.map-top,.filters,.map-controls,.map-key,.map-caption{z-index:500}.map-caption{bottom:30px}.map-key{bottom:48px}.leaflet-control-attribution{font-size:10px!important}.leaflet-bottom{z-index:490!important}.geo-icon{background:none;border:0}.geo-marker{background:#267455;color:#fff;border:2px solid white;border-radius:12px 12px 12px 2px;padding:10px 12px;white-space:nowrap;box-shadow:0 3px 9px #173d3533;font-size:11px;font-weight:700;min-height:38px}.geo-marker.soon{background:#e9ac57;color:#553e1b}.geo-marker.mine{background:#173d35}.geo-marker.pred{background:#fff;color:#8061c7;border-color:#e8def6;border-radius:20px;min-height:30px;font-size:10px;padding:7px 10px}.geo-marker.active{outline:4px solid #b9d67d}.location-banner{display:flex;align-items:center;gap:10px;margin-bottom:15px}.location-banner button{background:#edf3e8;border-radius:20px;padding:10px;font-size:11px}.location-banner small{font-size:10px;color:var(--muted)}#map-status{position:absolute;top:125px;left:15px;right:15px;z-index:501;background:white;padding:12px;border-radius:10px;font-size:11px}#map-status[hidden]{display:none}.panel-footer .text-button{padding:8px 0;font-size:10px}.filters button{min-height:38px}.back{min-height:32px}.map-controls button{width:44px;height:44px}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.map-shell{position:absolute;top:0;left:0;height:48%;}.map-controls{bottom:35px;right:10px}.map-top{top:10px}.filters{top:59px}.map-key{display:none}.map-caption{top:auto;bottom:22px;right:6px;font-size:8px}.leaflet-control-attribution{font-size:9px!important}aside{height:52%;max-height:52%;z-index:600;padding-top:20px}.location-banner{margin:8px 0}.location-banner button{padding:9px;font-size:10px}.location-banner small{font-size:9px}.map-top .live-pill{padding:10px;font-size:9px}.map-btn{font-size:10px}.panel-footer{font-size:9px}.time-options button{min-height:44px}.actions button{min-height:46px}#map-status{top:102px}.opportunity{min-height:48px}}

/* SALGO friendly navigation language */
:root{--ink:#25384a;--muted:#687b8c;--green:#167b67;--mint:#baf2db;--purple:#8060bf;--line:#e7eef2}body{font-family:ui-rounded,'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif;background:#f5fafc;color:var(--ink)}header{height:78px;padding:0 28px;gap:44px;background:#fff;border:0;box-shadow:0 2px 18px #25384a08;position:relative;z-index:700}.brand{color:#25384a;font-size:42px;letter-spacing:-2.5px;display:flex;align-items:center;gap:9px}.brand-smile{width:36px;height:32px;background:#8edcf3;border:2.5px solid #25384a;border-radius:15px 15px 15px 5px;position:relative;display:inline-block;transform:rotate(-8deg)}.brand-smile i{position:absolute;top:9px;left:9px;width:3px;height:4px;border-radius:50%;background:#25384a}.brand-smile i+i{left:21px}.brand-smile b{position:absolute;top:15px;left:11px;width:12px;height:7px;border:2px solid #25384a;border-top:0;border-radius:0 0 12px 12px}.location{background:#f2f8fb;padding:9px 15px;border-radius:18px}.location small{margin-left:0;font-size:10px}.points{background:#fff8da;border:0;padding:11px 16px;font-weight:700}.points-star{color:#9b7419}.avatar{background:#d9f3ff;width:42px;height:42px;display:grid;place-items:center}.ui-icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}.avatar .ui-icon{width:29px;height:29px}.demo-label{letter-spacing:.7px;font-size:9px}.demo-label i,.live-pill i{background:#28aa86}main{height:calc(100dvh - 78px);min-height:620px}aside{width:390px;padding:30px 26px;background:#fff}.eyebrow{letter-spacing:1.2px;color:#6d8596}h1{font-size:37px;letter-spacing:-1.6px;line-height:1.12;margin:15px 0}h1 em{color:#238dac}p{color:var(--muted);font-size:13px}.actions{gap:12px;margin:6px 0 18px}.primary,.secondary{border-radius:20px;padding:18px;font-size:15px;min-height:62px;border:2px solid transparent;box-shadow:0 4px 0 #25384a0b}.primary{background:#90dff5;color:#25384a}.primary:hover{background:#77d6f1}.secondary{background:#c5f2de;color:#25384a}.secondary:hover{background:#b0ebd1}.action-icon{display:grid;place-items:center;background:#ffffff70;border-radius:12px;width:35px;height:35px;margin-right:11px}.action-icon .ui-icon{width:23px;height:23px}.location-banner{margin:3px 0 24px}.location-banner button{background:#eef7fc;border-radius:16px;font-weight:bold;display:flex;align-items:center;gap:5px;font-size:11px;min-height:42px}.location-banner .ui-icon{width:17px;height:17px}.location-banner small{line-height:1.5}.section-heading{font-size:13px;margin-bottom:9px}.section-heading small{font-size:9px;background:#f1f5f8;padding:5px 7px;border-radius:8px}.opportunity{padding:12px 3px;border-radius:14px;transition:background .2s}.opportunity:hover{background:#f1faff}.opportunity b{font-size:12px}.opportunity small{line-height:1.4}.pin-mini{width:46px;height:46px;background:#e2f8ef;border-radius:16px;color:#baf2db}.pin-mini.soon{background:#fff3d5;color:#ffcf78}.car-face{width:49px;height:45px;display:block;flex-shrink:0}.pin-mini .car-face{width:40px;height:36px}.time{font-weight:700}.prediction-promo{background:#f2edfc;border:0;border-radius:20px;padding:17px}.prediction-promo strong{display:flex;align-items:center;gap:7px}.prediction-promo strong span{margin-left:auto}.prediction-promo p{color:#7a7095}.panel-footer{color:#7c8e9d;font-size:10px;padding-top:20px}.panel-footer b{color:#59788e}.text-button{color:#347e9b;text-underline-offset:3px}.detail-card{background:#f1f8fc;border-radius:20px}.detail-card h3{display:flex;align-items:center;gap:7px}.badge{background:#e0f6ed;color:#32765c;font-weight:bold}.badge.purple{background:#eee7fc}.notice{background:#f5f8fb;border-radius:16px;color:#62788c}.time-options{gap:8px}.time-options button{border:2px solid #e6eef3;border-radius:16px;min-height:52px}.time-options button.selected{background:#dcf5fd;border:2px solid #52b9d8;color:#245a71}.success-icon{background:#c5f2de;color:#286b5c}.back{color:#50778d;font-weight:bold}.map-shell{background:#eaf4f6}.live-pill,.map-btn{box-shadow:0 4px 14px #25384a14;border:2px solid white}.live-pill{font-size:11px}.live-pill b{color:#4b8293}.map-btn{display:flex;align-items:center;gap:5px;font-weight:bold}.map-btn .ui-icon{width:16px;height:16px}.filters button{font-weight:bold;border:2px solid #fff;min-height:42px;font-size:11px;box-shadow:0 3px 12px #25384a12}.filters button.on{background:#fff}.filters button:not(.on){opacity:.75;background:#e3eaf0;text-decoration:none}.green{background:#24a982}.orange{background:#e7a442}.map-controls{gap:8px}.map-controls button{border-radius:16px;box-shadow:0 4px 15px #25384a18;color:#35586d;font-weight:bold}.geo-marker{display:flex;align-items:center;gap:4px;background:#c2f1dc;border:2px solid white;border-radius:22px 22px 22px 6px;padding:4px 8px 4px 2px;color:#25384a;box-shadow:0 4px 0 #25384a1a,0 6px 15px #25384a1a;min-height:58px}.geo-marker span{font-size:12px;font-weight:800}.geo-marker small{display:block;font-size:8px;font-weight:500;margin-top:2px;color:#486d67}.geo-marker .car-face{color:#f9fffc;width:46px}.geo-marker.soon{background:#ffe1a0;color:#25384a}.geo-marker.soon .car-face{color:#fff5d6}.geo-marker.mine{background:#8edcf3;color:#25384a}.geo-marker.active{outline:4px solid #5cc5e9;outline-offset:3px}.geo-marker.pred{color:#7855b1;background:#f6f0ff;border:2px solid white;min-height:32px;padding:7px 10px;gap:4px}.geo-marker.pred span{font-size:10px}.geo-marker.pred .ui-icon{width:16px;height:16px}.map-key{background:#fffffff2;border-radius:14px;color:#60798b}.map-caption{color:#3e6179;background:#ffffffd9;padding:4px 7px;border-radius:6px}.modal{border-radius:28px;color:#25384a}.close{background:#eef6fa;min-width:36px;min-height:36px}.demo-actions button{background:#f0f8fc;border:0;border-radius:16px;min-height:48px}.clock{background:#e3f6fc;border-radius:16px}.big-points{color:#277d9d}.progress div{background:#7dd4ee}.route-text{background:#e1f8ef}
@media(min-width:1450px){aside{width:420px;padding:36px 32px}h1{font-size:41px}}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){header{height:68px;padding:0 16px;gap:15px}.brand{font-size:32px;gap:7px}.brand-smile{width:30px;height:27px}.brand-smile i{top:7px;left:7px}.brand-smile i+i{left:18px}.brand-smile b{top:13px;left:9px;width:10px;height:6px}.location{padding:7px 9px;background:transparent;font-size:10px}.location small{font-size:9px}.points{padding:9px 11px;font-size:12px}.avatar{width:35px;height:35px}.avatar .ui-icon{width:25px;height:25px}main{height:calc(100dvh - 68px);min-height:0}aside{height:52%;max-height:52%;border-radius:28px 28px 0 0;padding:22px 19px max(15px,env(safe-area-inset-bottom));box-shadow:0 -6px 25px #25384a14}.map-shell{height:calc(48% + 22px)}h1{font-size:27px;margin:7px 0;letter-spacing:-1px}h1 br{display:none}h1 em{margin-left:3px}p{font-size:11px;margin:7px 0 13px}.eyebrow{font-size:8px}.actions{gap:9px;margin:12px 0}.actions button{font-size:12px;padding:11px 10px;border-radius:18px;min-height:57px}.action-icon{width:29px;height:29px;border-radius:10px;margin-right:7px}.action-icon .ui-icon{width:21px;height:21px}.actions>.primary>.ui-icon,.actions>.secondary>.ui-icon{width:16px;height:16px}.location-banner{margin:8px 0 12px}.location-banner button{font-size:10px;min-height:38px;padding:8px}.section-heading{font-size:12px}.section-heading small{font-size:8px}.opportunity{padding:9px 2px;gap:10px}.pin-mini{width:37px;height:37px;border-radius:13px}.pin-mini .car-face{width:34px;height:31px}.opportunity b{font-size:11px}.opportunity small{font-size:9px}.opportunity .time{font-size:10px}.panel-footer{font-size:8px;padding-top:11px}.panel-footer .text-button{font-size:9px}.live-pill{border:0}.map-top .live-pill{font-size:9px;padding:10px 11px}.map-btn{padding:9px 11px;font-size:10px;border:0}.filters{top:59px;gap:6px}.filters button{padding:8px 10px;font-size:9px;min-height:38px}.map-controls{bottom:52px;gap:6px}.map-controls button{width:40px;height:40px;border-radius:14px}.map-caption{bottom:34px;font-size:7px}.leaflet-bottom{bottom:22px!important}.detail-card{padding:14px}.time-options button{min-height:48px;font-size:11px}.modal{padding:24px;border-radius:26px}.geo-marker{min-height:58px}.notice{font-size:10px}.map-btn span{white-space:nowrap}}
@media(max-width:370px){header{gap:7px;padding:0 10px}.location{padding:5px;font-size:9px}.brand{font-size:29px}.brand-smile{display:none}.actions button{font-size:11px}.actions>.primary>.ui-icon,.actions>.secondary>.ui-icon{display:none}h1{font-size:24px}}

/* Compact map-first panel: two predictable positions. */
.sheet-handle{display:none}#panel-content{display:flex;flex-direction:column;min-height:100%;flex-shrink:0}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 body{overflow:hidden}main{--sheet-height:142px}
 main>.map-shell{height:100%;inset:0}
 #panel{height:var(--sheet-height);max-height:none;padding:0;overflow:hidden;display:flex;flex-direction:column;transition:height .24s ease;border-radius:24px 24px 0 0;box-shadow:0 -4px 20px #25384a16}
 #panel::before{display:none}
 .sheet-handle{display:flex;position:relative;flex:none;align-items:center;justify-content:center;gap:8px;width:100%;height:28px;min-height:28px;background:#fff;padding:0;touch-action:none;cursor:ns-resize;border-radius:24px 24px 0 0;user-select:none}
 .sheet-handle:active{transform:none}.sheet-grip{position:absolute;top:7px;width:34px;height:4px;background:#cbdce5;border-radius:4px}

 #panel-content{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:0 16px max(12px,env(safe-area-inset-bottom));scrollbar-width:thin;scroll-padding:12px}
 #panel.dragging{transition:none}
 #panel-content>h1,#panel-content>.eyebrow,#panel-content>h1+p{display:none}
 #panel-content>.actions{flex-shrink:0;gap:10px;margin:4px 0 10px;position:sticky;bottom:0;background:white;padding:5px 0 9px;z-index:2}
 #panel-content>.actions button{min-width:0;flex:1;min-height:52px;font-size:13px;padding:10px;border-radius:16px}
 #panel-content>.actions .action-icon{display:none}
 #panel-content .opportunity:nth-of-type(n+3){display:flex}
 #panel-content .opportunity b{font-size:12px}#panel-content .opportunity{min-height:62px}
 #panel-content .prediction-promo{display:block;margin:12px 0}
 #panel-content .location-banner{margin:0 0 12px}
 #panel-content>.primary,#panel-content>.secondary{min-height:50px;flex-shrink:0;position:sticky;bottom:0;z-index:2}
 #panel-content .panel-footer{margin-top:8px;padding-top:8px}
 #panel-content>.back{min-height:36px;margin:0 0 4px}
 #panel-content>h2{font-size:22px;margin:8px 0;flex-shrink:0}
 #panel-content>.badge{align-self:flex-start}
 #panel-content>.detail-card{padding:12px;margin:8px 0}
 #panel-content>.notice{margin:8px 0;font-size:11px}
 #panel:not([data-mode=home]):not([data-mode=search]) .panel-footer{display:none}
 .map-controls{bottom:calc(var(--sheet-height) + 12px);transition:bottom .24s;gap:5px}.map-controls button{width:38px;height:38px}
 main:has(#panel.dragging) .map-controls{transition:none}
 .map-caption,.map-key{display:none}.leaflet-bottom{bottom:var(--sheet-height)!important}
 #panel[data-position=peek] #panel-content{overflow:hidden}
 #panel[data-position=peek] #panel-content>*{display:none}
 #panel[data-position=peek] #panel-content>.actions{display:flex;position:static;margin:0;padding:5px 0}
 #panel[data-position=peek] #panel-content>h2{display:block;font-size:18px;margin:8px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #panel[data-position=peek] #panel-content:has(>h2)>.actions{display:none}
 #panel[data-position=peek][data-mode=home] .location-banner,#panel[data-position=peek][data-mode=search] .location-banner{display:none}
 #panel[data-position=peek] .location-banner small{display:none}
 #panel[data-position=peek] .location-banner button{background:transparent;padding:2px;min-height:30px;font-size:11px}
}

/* Dialogs own the viewport above the map, sheet, header and toast. */
#modal-root{position:relative;z-index:1000}
body.modal-open{overflow:hidden;overscroll-behavior:none}
.overlay{z-index:1000;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));overflow:hidden;overscroll-behavior:contain}
.modal{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;isolation:isolate;padding-top:0;scroll-padding-top:76px}
.modal-top{position:sticky;top:0;z-index:1;background:white;padding:18px 0 14px;margin-bottom:8px}
.modal-top .close{width:44px;height:44px;flex-shrink:0}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.modal{width:100%;max-width:420px;border-radius:24px;padding:0 22px 22px}.modal-top{padding-top:14px}.overlay{align-items:center}}

@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel,#panel-content{touch-action:pan-x;user-select:none;-webkit-user-select:none}
 #panel-content{scroll-behavior:auto}
 #panel.dragging button{pointer-events:none}
 .sheet-grip{top:10px}
}

/* Availability changes stay on the map, with reduced-motion support. */
.geo-marker.fresh{animation:point-arrive .45s ease-out,point-glow 1.4s ease-out}
.geo-marker.leaving{animation:point-leave 3s ease-out forwards;pointer-events:none}
@keyframes point-arrive{from{opacity:0;transform:translateY(12px) scale(.8)}to{opacity:1;transform:none}}
@keyframes point-glow{0%{box-shadow:0 0 0 12px #8060bf33}100%{box-shadow:0 0 0 0 #8060bf00}}
@keyframes point-leave{0%{opacity:1}75%{opacity:.35;transform:scale(.95)}100%{opacity:0;transform:scale(.85)}}
@media(prefers-reduced-motion:reduce){.geo-marker.fresh{animation:none}.geo-marker.leaving{animation:none;opacity:.35}}
.geo-marker.suggested,.geo-marker.suggested.soon{background:#f2eafb;color:#654b91;border-style:dashed}
.geo-marker.observed{background:#b8efd6;color:#155d48;border-color:#fff}
.geo-marker.mine{background:#9bdff4;color:#254f64}
.geo-marker small{max-width:120px;white-space:normal;font-size:9px;line-height:1.2}
.community-tools{display:flex;gap:8px;margin:0 0 12px}
.community-tools button{flex:1;min-height:44px;border-radius:14px;background:#eff8f4;font-size:12px;font-weight:bold;padding:10px}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel[data-position=peek] #panel-content>.community-tools{display:flex;gap:6px;margin:5px 0 0}
 #panel[data-position=peek] .community-tools button{min-height:36px;padding:6px;font-size:11px;background:#f4f9fb}
 #panel[data-position=peek] #panel-content>.actions{padding:2px 0}
}

.pin-mini.suggested{background:#f2eafb;color:#dac9ef}.pin-mini.observed{background:#d0f4e2;color:#b8efd6}.pin-mini.departure{background:#dcf3fc;color:#9bdff4}

/* Navigation typography, matched to the supplied Android Waze references.
   Roboto is bundled locally under OFL; no remote font request is required. */
@font-face{font-family:Roboto;src:url("fonts/Roboto-Latin.ttf") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}
:root{--font-ui:Roboto,Arial,sans-serif;--text-caption:12px;--text-body:15px;--text-action:16px;--text-title:26px}
body{font-family:var(--font-ui);font-size:var(--text-body);font-weight:400;line-height:1.45;-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,input,select,textarea,.leaflet-container{font-family:var(--font-ui)}
button{line-height:1.25;letter-spacing:0}
b,strong{font-weight:700}small{font-weight:400}
h1,h2,h3{font-weight:700;line-height:1.18;letter-spacing:-.35px;text-wrap:pretty}
h1{font-size:36px;letter-spacing:-.7px}h2,.modal h2{font-size:var(--text-title)}h3{font-size:18px}
p{font-size:var(--text-body);line-height:1.5;font-weight:400}
.brand{font-weight:800;letter-spacing:-1.7px}.location{font-size:14px}.location small{font-size:12px;margin-top:2px}
.points{font-size:14px;font-weight:500}.points b{font-weight:700}.points span{font-size:12px}
.eyebrow,.demo-label{font-size:11px;font-weight:500;letter-spacing:.5px}
.primary,.secondary,.actions button{font-size:var(--text-action);font-weight:700}
.section-heading{font-size:16px;font-weight:700}.section-heading small{font-size:10px;font-weight:500;letter-spacing:.2px}
.opportunity b,#panel-content .opportunity b{font-size:16px;font-weight:700;line-height:1.25}
.opportunity small{font-size:13px;line-height:1.4}.opportunity .time{font-size:12px;font-weight:500}
.prediction-promo strong{font-size:15px;font-weight:700}.prediction-promo p{font-size:14px;line-height:1.45}
.location-banner button,.community-tools button{font-size:14px;font-weight:700}.location-banner small{font-size:12px}
.panel-footer,.panel-footer .text-button{font-size:12px;line-height:1.45}
.badge,.notice,#panel-content>.notice{font-size:13px;line-height:1.4}.badge{font-weight:500}
.back,.text-button{font-size:14px;font-weight:500}.time-options button{font-size:15px;font-weight:700}
.stats strong{font-size:26px;font-weight:700;letter-spacing:-.3px}.stats small{font-size:12px}.history-row{font-size:15px}.history-row small{font-size:12px}
.map-top .live-pill,.live-pill{font-size:12px;font-weight:500}.live-pill b{font-weight:700}.map-btn,.filters button{font-size:13px;font-weight:700}
.geo-marker span{font-size:14px;font-weight:700;line-height:1.2}.geo-marker small{font-size:11px;font-weight:400;line-height:1.2}.geo-marker.pred span{font-size:12px}
.map-key,.map-caption{font-size:11px}.activity-tag{font-size:10px;letter-spacing:.3px;font-weight:500}#activity-text{font-size:14px;font-weight:700;line-height:1.3}#activity-hint{font-size:12px;line-height:1.35}
.demo-actions button{font-size:15px;font-weight:700}.modal-top{font-size:13px;font-weight:500;letter-spacing:.3px}.big-points{font-weight:700;letter-spacing:-1px}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 h1{font-size:30px}#panel-content>h2,#panel[data-position=peek] #panel-content>h2{font-size:24px;line-height:1.2;letter-spacing:-.3px}
 .brand{font-size:32px}.location{font-size:12px}.location small{font-size:11px}.points{font-size:13px}.points span{font-size:11px}
 #panel-content>.actions button{font-size:16px;min-height:52px;padding:10px 8px;line-height:1.2}
 #panel-content .opportunity{min-height:70px}.opportunity{gap:9px}.opportunity .time{max-width:76px;white-space:normal;text-align:right;line-height:1.3}
 #panel[data-position=peek] .community-tools button{font-size:13px;min-height:36px;padding:6px 4px}
 .community-tools{gap:6px}.community-tools button{font-size:14px}
 .section-heading{gap:6px;align-items:flex-start}.section-heading small{max-width:100px;text-align:right;line-height:1.25}
 .filters{gap:5px;left:12px;right:12px}.filters button{font-size:12px;padding:8px 9px;min-height:40px}
 .map-top .live-pill{font-size:11px;padding:9px}.map-top{gap:6px}.map-btn{font-size:12px;padding:9px}
 .activity-dock{max-width:330px}#activity-story{padding:10px 11px}.activity-tag{font-size:9px}#activity-text{font-size:13px}#activity-hint{font-size:12px}
 .modal h2{font-size:26px}.modal p{font-size:15px}.modal h3{font-size:18px}
}
@media(max-width:370px){
 header{gap:7px}.location{font-size:11px}.location small{font-size:10px}.points{padding:9px 8px}
 #panel-content>.actions button{font-size:15px}.filters button{font-size:11px;padding:8px}.map-top .live-pill{font-size:10px}.map-btn{font-size:11px}
 #panel[data-position=peek] .community-tools button{font-size:12px}
}

/* Compact place summary with room for a two-line street name. */
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel[data-position=peek]:not([data-mode=home]):not([data-mode=search]) .sheet-handle{height:24px;min-height:24px}
 #panel[data-position=peek] #panel-content>h2{font-size:20px;line-height:1.2;margin:2px 0 0;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
 #panel[data-position=half] #panel-content>h2{font-size:23px;margin:4px 0 8px}
 #panel-content>.back{min-height:32px;margin-bottom:2px}
 #panel-content>.detail-card{margin:6px 0;padding:12px}
 #panel-content>.detail-card p{margin:6px 0 0}
 #panel-content>.stats{margin:12px 0;gap:22px}
 #panel-content>.notice{margin:8px 0;padding:10px 12px}
}

/* Short map labels; provenance and full status live in the place detail. */
.geo-marker:not(.pred){box-sizing:border-box;min-height:38px;height:38px;max-width:104px;padding:3px 7px 3px 3px;gap:3px;border-radius:15px 15px 15px 4px;white-space:nowrap;border-width:2px;box-shadow:0 2px 8px #25384a25}
.geo-marker:not(.pred) .car-face{width:27px;height:27px;flex:0 0 27px}
.geo-marker:not(.pred) span{font-size:11px;font-weight:700;line-height:1;white-space:nowrap}
.geo-marker:not(.pred) sup{font-size:9px;margin-left:2px;vertical-align:super}
.geo-marker:not(.pred).active{outline-width:2px;outline-offset:2px}
.geo-icon{touch-action:manipulation}

/* Installation entry keeps the map unobstructed. */
.install-app{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 12px;border-radius:24px;background:#dff5fc;color:#25384a;font-size:13px;font-weight:700;flex-shrink:0}
.install-app .ui-icon{width:18px;height:18px}.install-app[hidden],.profile-install[hidden]{display:none!important}
.install-logo{display:block;width:64px;height:64px;border-radius:18px;margin:10px 0 16px}.install-steps{padding-left:24px;margin:20px 0}.install-steps li{font-size:16px;line-height:1.5;padding:0 0 12px 4px}.profile-install{margin:6px 0 18px;width:100%}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){header nav{gap:6px}.install-app{padding:8px;min-width:40px;min-height:40px}.install-app span{display:none}header .points{display:none}.install-steps li{font-size:15px}}

/* Quiet geographic background: street names stay readable, reports keep their color. */
#map{background:#f1f3f2}
#map .salgo-basemap{filter:grayscale(1) contrast(.68) brightness(1.22)}

/* Walking sightings stay compact, with provenance in the detail panel. */
.geo-marker.walker{background:#d4eee5;color:#245b4d;border-color:white;border-style:solid}
.geo-marker.walker .ui-icon{width:25px;height:25px;flex:0 0 25px}
.pin-mini.walker{background:#d4eee5;color:#245b4d}
.pin-mini.walker .ui-icon{width:24px;height:24px}

/* Small, noninteractive neighborhood scenes, below place markers. */
.motion-icon{background:none;border:0;pointer-events:none!important;transition:transform 1s linear}
.map-actor{display:grid;place-items:center;width:28px;height:28px;border:2px solid white;border-radius:50%;background:#d4eee5;color:#416a60;box-shadow:0 2px 5px #25384a18;transition:opacity 1s linear;pointer-events:none}
.map-actor .ui-icon{width:19px;height:19px}.map-actor.car{background:#dff5fc;color:#b9eafa}.map-actor .car-face{width:25px;height:23px}
.geo-marker:not(.active):not(.fresh):not(.leaving){opacity:var(--notice-opacity,1);transition:opacity 2s linear}
@media(prefers-reduced-motion:reduce){.motion-icon{display:none}.geo-marker{transition:none!important}}

/* Coverage is geographic and stays below interactive place markers. */
.coverage-label{border:0;background:none;pointer-events:none!important;text-align:center}
.coverage-label span{display:inline-block;white-space:nowrap;padding:6px 10px;border:1px solid #95c5b9;border-radius:20px;background:#eff8f4;color:#376b5e;font:600 11px/14px Roboto,Arial,sans-serif;box-shadow:0 1px 4px #25384a0d}

/* A place has one clear title and a quieter neighborhood line. */
.place-heading{flex-shrink:0;min-width:0;margin:8px 0 12px}
.place-heading h2{margin:0;font-size:25px;font-weight:700;line-height:1.2;letter-spacing:-.35px;overflow-wrap:anywhere}
.place-heading .place-zone{margin:5px 0 0;color:var(--muted);font-size:14px;font-weight:400;line-height:1.35}
#panel-content>.place-description{margin:0 0 12px;line-height:1.45}
.stats>div{flex:1;min-width:0}.stats small{display:block;line-height:1.4;margin-top:4px}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel-content>.place-heading{margin:6px 0 12px}
 .place-heading h2{font-size:24px;line-height:1.2}
 #panel[data-position=peek][data-mode=detail] #panel-content>.place-heading{display:block;margin:0;padding:2px 0 6px}
 #panel[data-position=peek][data-mode=detail] .place-heading h2{font-size:21px;line-height:1.2}
 #panel[data-position=peek][data-mode=detail] .place-heading .place-zone{font-size:13px;line-height:1.3;margin:4px 0 0}
 #panel[data-position=peek][data-mode=detail] #panel-content>.actions{display:none}
}

/* Consistent map symbols: location pins now, clocks for upcoming spaces. */
.geo-marker:not(.pred){display:flex;align-items:center;height:34px;min-height:34px;max-width:104px;padding:5px 9px 5px 6px;gap:5px;border:2px solid #fff;border-radius:18px 18px 18px 5px;background:#ede7f6;color:#71548e;box-shadow:0 2px 7px #25384a24}
.geo-marker:not(.pred)>.ui-icon{width:20px;height:20px;flex:0 0 20px;stroke-width:2.2}
.geo-marker:not(.pred) span{font-size:11px;line-height:1.1;font-weight:600}
.geo-marker:not(.pred).soon{background:#fff0d3;color:#916522}
.geo-marker:not(.pred).walker{background:#d4eee5;color:#286958}
.geo-marker:not(.pred).observed{background:#b8efd6;color:#155d48}
.geo-marker:not(.pred).mine{background:#c9edf9;color:#25617a}
.geo-marker:not(.pred).active{outline:3px solid #25384a;outline-offset:2px;box-shadow:0 3px 12px #25384a30}
.car-face{color:var(--ink)}

/* Dark surfaces preserve the map's colored signals and readable labels. */
#theme-toggle{display:grid;place-items:center}#theme-toggle .ui-icon{width:22px;height:22px}
:root[data-theme=dark]{color-scheme:dark;--ink:#ecf3f7;--muted:#a1b2bf;--line:#34434f;--green:#69d5b2;--purple:#c2a5ed;--surface:#18232d;--raised:#24333f;--mint:#a8e9d1}
[data-theme=dark] body,[data-theme=dark] header,[data-theme=dark] #panel,[data-theme=dark] .modal,[data-theme=dark] .modal-top,[data-theme=dark] #panel-content>.actions{background:var(--surface);color:var(--ink)}
[data-theme=dark] header{box-shadow:0 1px 0 var(--line)}
[data-theme=dark] .brand{color:#eef6fa}
[data-theme=dark] p,[data-theme=dark] small,[data-theme=dark] .back,[data-theme=dark] .tiny,[data-theme=dark] .eyebrow,[data-theme=dark] .panel-footer{color:var(--muted)}
[data-theme=dark] .location{background:transparent}
[data-theme=dark] .live-pill,[data-theme=dark] .map-btn,[data-theme=dark] .map-controls button,[data-theme=dark] .filters button,[data-theme=dark] #map-status,[data-theme=dark] .points,[data-theme=dark] .map-key{background:var(--raised);color:var(--ink);border-color:var(--line);box-shadow:0 3px 12px #0003}
[data-theme=dark] .filters button.on{background:#304553;border-color:#536d7c}
[data-theme=dark] .live-pill b{color:#9bd8cd}
[data-theme=dark] .detail-card,[data-theme=dark] #panel-content>.detail-card,[data-theme=dark] .notice,[data-theme=dark] #panel-content>.notice,[data-theme=dark] .clock,[data-theme=dark] .demo-actions button,[data-theme=dark] .time-options button,[data-theme=dark] .route-text,[data-theme=dark] .close{background:var(--raised);color:var(--ink);border-color:var(--line)}
[data-theme=dark] .primary{background:#a9e4f6;color:#122c39}
[data-theme=dark] .primary:hover{background:#c2effd}
[data-theme=dark] .secondary{background:#a8e9d1;color:#163d32}
[data-theme=dark] .install-app,[data-theme=dark] .avatar{background:#2b4453;color:#c4edfb}
[data-theme=dark] .community-tools button,[data-theme=dark] #panel[data-position=peek] .community-tools button,[data-theme=dark] .location-banner button{background:var(--raised);color:#d6e8f1}
[data-theme=dark] .badge,[data-theme=dark] .badge.purple,[data-theme=dark] .prediction-promo{background:#353045;color:#d9c5f7;border-color:#51475f}
[data-theme=dark] .prediction-promo p{color:#beafce}
[data-theme=dark] .text-button,[data-theme=dark] .opportunity .time,[data-theme=dark] .history-row b{color:#8edcc0}
[data-theme=dark] .pin-mini{background:#2e4940;color:#b7e8d4}
[data-theme=dark] .pin-mini.suggested{background:#3c334e;color:#d5bdef}
[data-theme=dark] .time-options button.selected{background:#304e43;border-color:#83d8b7}
[data-theme=dark] .sheet-grip,[data-theme=dark] #panel::before{background:#526574}
[data-theme=dark] #map,[data-theme=dark] .map-shell{background:#151f27}
[data-theme=dark] #map .salgo-basemap{filter:grayscale(1) invert(1) brightness(.78) contrast(.84)}
[data-theme=dark] .leaflet-control-attribution{background:#18232deb;color:#a9bbc5}
[data-theme=dark] .leaflet-control-attribution a{color:#9ad9ea}
[data-theme=dark] .coverage-label span{background:#203d38;color:#a7d8cb;border-color:#487f71}
[data-theme=dark] .geo-marker:not(.pred){background:#463953;color:#eee0ff;border-color:#726280;box-shadow:0 2px 9px #0005}
[data-theme=dark] .geo-marker:not(.pred).soon{background:#554329;color:#ffe0a8;border-color:#9a7b49}
[data-theme=dark] .geo-marker:not(.pred).walker,[data-theme=dark] .geo-marker:not(.pred).observed{background:#245145;color:#bcf4dc;border-color:#5caa8e}
[data-theme=dark] .geo-marker:not(.pred).mine{background:#245064;color:#d0f2ff;border-color:#6baac4}
[data-theme=dark] .geo-marker:not(.pred).active{outline-color:#e5f5ff}
[data-theme=dark] .map-actor{background:#29473e;border-color:#688e7f;color:#b2dec9}
[data-theme=dark] .map-actor.car{background:#294756;border-color:#668c9d}
[data-theme=dark] .car-face{color:inherit}
[data-theme=dark] .overlay{background:#060d16a6}

#install-ready[hidden]{display:none!important}
#install-ready{width:100%;margin:12px 0}

/* The drag handle belongs to the sheet surface in both themes. */
#panel>.sheet-handle{background:transparent;color:inherit}
[data-theme=dark] #panel{box-shadow:0 -6px 24px #0005;border-top:1px solid #34434f}
[data-theme=dark] #panel-content .section-heading small{background:var(--raised);color:var(--muted)}

/* Small top-down vehicles leave the parking pins easy to tap. */
.traffic-icon{pointer-events:none!important;background:none;border:0}
.traffic-car{display:block;width:22px;height:38px;color:var(--car-color);filter:drop-shadow(0 2px 2px #10263375);transform-origin:center;transition:opacity .35s}
.traffic-car svg{display:block;width:100%;height:100%}
.traffic-car.braking .brake-lights,.traffic-car.parking .brake-lights{stroke:#ff3939;filter:drop-shadow(0 0 2px #ff3434)}
.traffic-car.parking{filter:drop-shadow(0 0 4px #f4c66b70)}
@media(prefers-reduced-motion:reduce){.traffic-icon{display:none}}
/* Integrated illustrative journey, sharing the existing mobile sheet. */
.journey-summary{display:flex;align-items:flex-start;gap:12px}.journey-summary>div{flex:1;min-width:0}.journey-summary h2{margin:7px 0;font-size:24px;line-height:1.15}.journey-destination{font-size:14px;line-height:1.5}.journey-close{min-width:44px;min-height:44px;border-radius:50%;background:#e7edf4;color:#233c52;font-size:18px}.journey-progress{height:5px;background:#dbe4ed;border-radius:9px;margin:15px 0;overflow:hidden}.journey-progress i{display:block;height:100%;background:#518aff;transition:width .5s}.journey-metrics{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}.journey-metrics strong{font-size:28px}.journey-metrics span{font-size:20px}.journey-metrics small{font-size:11px;font-weight:400;display:block;color:var(--muted)}.journey-note{font-size:12px;line-height:1.5;margin:12px 0}.journey-car{display:grid;place-items:center;width:44px;height:44px;background:#518aff;border:3px solid white;border-radius:50%;color:white;box-shadow:0 3px 15px #172b4c55}.journey-car .ui-icon{width:26px;height:26px}.is-navigating .filters,.is-navigating .map-key,.is-navigating .map-top{display:none}[data-theme="dark"] .journey-close{background:#304252;color:#f4f7fc}[data-theme="dark"] .journey-progress{background:#304252}[data-theme="dark"] .journey-destination{color:#cedae7}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){#panel[data-mode="navigation"][data-position="peek"] #panel-content{overflow-y:auto}#panel[data-mode="navigation"] .journey-summary h2{font-size:21px}#panel[data-mode="navigation"][data-position="peek"] .journey-summary .eyebrow{font-size:9px}#panel[data-mode="navigation"][data-position="peek"] .journey-summary h2{margin:3px 0}#panel[data-mode="navigation"][data-position="peek"] .journey-destination{font-size:12px}#panel[data-mode="navigation"][data-position="peek"] .journey-progress{margin:8px 0}#panel[data-mode="navigation"][data-position="peek"] .journey-close{min-width:36px;min-height:36px}}

.routing-label{display:block;margin:20px 0 8px;font-weight:700}.routing-input{box-sizing:border-box;width:100%;padding:14px;border:1px solid #95acc0;border-radius:14px;background:var(--raised,#fff);color:var(--ink,#25384a);font:inherit}.routing-loading{padding:12px;border-radius:12px;background:#518aff15}.journey-instruction{font-size:20px;font-weight:700;line-height:1.35}#routing-error{color:#d85858}
/* Center action labels consistently across mobile and desktop. */
.primary,.secondary{justify-content:center;text-align:center;gap:8px}
.primary .action-copy,.secondary .action-copy{justify-content:center}

.detail-walker{float:right;display:grid;place-items:center;width:66px;height:66px;margin:0 0 8px 12px;border-radius:22px;background:#ddf2e7;flex-shrink:0}.detail-walker svg{width:58px;height:58px}.place-heading:after{content:"";display:block;clear:both}[data-theme=dark] .detail-walker{background:#b5d7c8}@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.detail-walker{width:58px;height:58px;border-radius:19px}.detail-walker svg{width:52px;height:52px}}

/* Manual refresh stays alongside map controls in both themes. */
.map-controls button[data-action="refresh-map"]{min-width:44px;min-height:44px;display:grid;place-items:center}
.map-controls button:focus-visible{outline:3px solid #52b9d8;outline-offset:3px}
.map-controls .refreshing .ui-icon{animation:map-refresh-spin .85s linear infinite}
.map-controls button:disabled{cursor:wait;opacity:.7}
@keyframes map-refresh-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.map-controls .refreshing .ui-icon{animation:none}}

/* Navigation content must not inherit the horizontal compact action bar. */
#panel-content>.journey-body{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;flex:none;min-width:0;width:100%;margin:4px 0 12px;position:static}
.journey-body>*{min-width:0;max-width:100%}
.journey-body .journey-metrics{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start;margin:0}
.journey-metrics strong,.journey-metrics span{white-space:nowrap;line-height:1.2}
.journey-metrics small{white-space:normal;margin-top:4px;line-height:1.35}
.journey-body .journey-instruction{margin:0;font-size:20px;line-height:1.35;overflow-wrap:anywhere}
.journey-body>button{width:100%;min-width:0;min-height:48px;flex:none;white-space:normal;line-height:1.3;justify-content:center;text-align:center;padding:12px 16px}
.journey-body>p{margin:0;overflow-wrap:anywhere}
.journey-body>.journey-fallback{justify-self:center;display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:8px 10px;background:transparent;border:0;box-shadow:none;border-radius:6px;color:var(--muted);font-size:11px;font-weight:400;line-height:1.4;text-align:center;text-decoration:underline;text-underline-offset:3px}
.journey-fallback:hover{color:var(--ink)}
[data-theme="dark"] .journey-fallback{color:#a6b4bf}
[data-theme="dark"] .journey-fallback:hover{color:#edf3f7}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel[data-mode=navigation] #panel-content{flex-shrink:1;min-width:0}
 #panel[data-mode=navigation] .journey-summary{flex-shrink:0;min-width:0}
 #panel[data-mode=navigation] .journey-destination{overflow-wrap:anywhere}
 #panel[data-mode=navigation][data-position=peek] #panel-content>.journey-summary{display:flex}
 #panel[data-mode=navigation][data-position=peek] #panel-content>.journey-body{display:grid}
 #panel[data-mode=navigation][data-position=peek] #panel-content>.routing-loading{display:block}
 #panel[data-mode=navigation][data-position=peek] .journey-body{gap:10px;margin:10px 0 0}
 #panel[data-mode=navigation][data-position=peek] .journey-metrics strong{font-size:24px}
 #panel[data-mode=navigation][data-position=peek] .journey-metrics span{font-size:21px}
 #panel[data-mode=navigation][data-position=peek] .journey-instruction{font-size:18px}
 #panel[data-mode=navigation][data-position=peek] .journey-destination{font-size:12px}
}

/* Compact, consistent pedestrian pictogram for place details. */
.detail-walker{width:52px;height:52px;border-radius:18px;background:#ddf2e7;color:#24594d;margin:2px 0 8px 12px}.detail-walker svg{width:34px;height:34px}[data-theme=dark] .detail-walker{background:#25493f;color:#b4efda}@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.detail-walker{width:48px;height:48px;border-radius:16px}.detail-walker svg{width:32px;height:32px}}

/* Community context lives in details; map badges stay small. */
.geo-marker{position:relative}.geo-marker>.community-symbol{position:absolute;right:-5px;top:-9px;width:23px;height:23px;display:grid;place-items:center;font-size:15px;background:#fff;border:2px solid #d0e9e0;border-radius:50%;line-height:1;pointer-events:none}
.community-symbol{font-style:normal;line-height:1}.pin-mini .community-symbol{font-size:23px}.community-detail-icon .community-symbol{font-size:29px}
.community-reporter{display:flex;align-items:center;gap:12px;margin:14px 0 10px}.reporter-avatar{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:16px;background:#e1f3e9;font-size:27px}.community-reporter>div{display:flex;flex-direction:column;gap:3px;min-width:0}.community-reporter strong{font-size:16px}.community-reporter span{font-size:13px;line-height:1.4}.community-reporter small{font-size:11px;color:#457a67}.community-confirm{display:block;width:100%;min-height:46px;border:1px solid #81bca8;border-radius:16px;background:#e4f5ec;color:#24594d;font-family:inherit;font-size:14px;font-weight:600;padding:12px;margin:0 0 12px;cursor:pointer}.community-confirmed{display:block;color:#38745c;margin-bottom:8px}.map-actor .community-symbol{font-size:22px}
[data-theme=dark] .reporter-avatar,[data-theme=dark] .community-confirm{background:#25493f;color:#b4efda}[data-theme=dark] .community-reporter small,[data-theme=dark] .community-confirmed{color:#a1d3bf}[data-theme=dark] .geo-marker>.community-symbol{background:#253b34;border-color:#537b69}

/* Keep the way back outside scrolling place details and visible when collapsed. */
.map-return-bar{flex-shrink:0;padding:0 0 12px;background:inherit}
.map-return-bar[hidden]{display:none}
.map-return-bar button{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;padding:10px 16px;border:1px solid #b4d6c8;border-radius:16px;background:#e3f3eb;color:#173d35;font-size:15px;font-weight:700}
[data-theme=dark] .map-return-bar button{background:#29493f;border-color:#638878;color:#e1f9ed}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.map-return-bar{padding:0 16px 8px}.map-return-bar button{min-height:44px}#panel[data-mode=detail] #panel-content,#panel[data-mode=prediction] #panel-content{padding-top:0}}

/* A car departure is distinct from a passerby's report. */
.geo-marker.driver{background:#e0efff;border-color:#6b99c3;color:#234f78}.geo-marker.driver>.community-symbol{background:#e0efff;border-color:#6b99c3;color:#234f78}.community-symbol .ui-icon{width:16px;height:16px}.pin-mini.driver{background:#e0efff;color:#234f78}.pin-mini.driver .ui-icon{width:24px;height:24px}.reporter-avatar .car-face{width:35px;height:35px}
[data-theme=dark] .geo-marker.driver,[data-theme=dark] .geo-marker.driver>.community-symbol,[data-theme=dark] .pin-mini.driver{background:#233f59;border-color:#789fc0;color:#d0eaff}

.community-people{display:grid;gap:10px;margin:12px 0 18px}.community-person{display:flex;align-items:center;gap:10px;min-width:0}.community-person-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:12px;background:#e1f3e9;font-size:22px}.community-person>span:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}.community-person strong{font-size:14px}.community-person small,.history-row .community-role{font-size:13px;line-height:1.4;color:#457a67}.history-row .community-role{margin-top:5px;white-space:normal}[data-theme=dark] .community-person-icon{background:#25493f}[data-theme=dark] .community-person small,[data-theme=dark] .history-row .community-role{color:#a1d3bf}

/* Place details keep their natural height inside the scrollable sheet. */
#panel[data-mode=detail] #panel-content>*,
#panel[data-mode=prediction] #panel-content>*{flex-shrink:0}

.pin-address{display:flex;flex-direction:column;gap:5px;margin:12px 0 16px;min-width:0;overflow-wrap:anywhere}.pin-address strong{font-size:18px;line-height:1.35}.pin-address small,.pin-coordinates{font-size:12px;line-height:1.5;opacity:.76}.pin-coordinates{font-variant-numeric:tabular-nums}.pin-address .text-button{align-self:flex-start;margin:4px 0;padding:6px 0}

/* Neighborhood entry point: compact pin and a clear tap target. */
.location.neighborhood-trigger{display:flex;align-items:center;gap:9px;text-align:left;min-height:44px;padding:7px 11px;background:#eff7fa;border:1px solid #dfedf1;border-radius:16px;flex-shrink:0}.neighborhood-icon{display:grid;place-items:center;width:30px;height:34px;color:#197c73;background:#d9f2eb;border-radius:11px}.neighborhood-icon svg{width:22px;height:22px}.neighborhood-copy{display:block}.neighborhood-copy b{display:block;font-size:13px;line-height:1.25}.location .neighborhood-copy small{margin:3px 0 0;font-size:10px;line-height:1.2;color:#607d88}.neighborhood-hero{width:58px;height:58px;display:grid;place-items:center;border-radius:19px;background:#d9f2eb;color:#197c73;margin:16px 0}.neighborhood-hero .ui-icon{width:32px;height:32px}.neighborhood-steps{display:grid;gap:18px;margin:24px 0}.neighborhood-steps>div{display:flex;gap:13px}.neighborhood-steps>div>span{width:29px;height:29px;flex:0 0 29px;display:grid;place-items:center;border-radius:50%;background:#d9f2eb;color:#197c73;font-size:13px;font-weight:700}.neighborhood-steps section{min-width:0}.neighborhood-steps h3{font-size:15px;margin:3px 0 5px}.neighborhood-steps p{margin:0;font-size:13px;line-height:1.55}[data-theme=dark] .location.neighborhood-trigger{background:#20333e;border-color:#344b56}[data-theme=dark] .neighborhood-icon,[data-theme=dark] .neighborhood-hero,[data-theme=dark] .neighborhood-steps>div>span{background:#234f49;color:#a3edd7}[data-theme=dark] .location .neighborhood-copy small{color:#a5bac4}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.location.neighborhood-trigger{gap:6px;padding:5px 7px;border-radius:13px}.neighborhood-icon{width:24px;height:29px;border-radius:9px}.neighborhood-icon svg{width:18px;height:18px}.neighborhood-copy b{font-size:11px}.location .neighborhood-copy small{font-size:9px}header{gap:9px}header nav{gap:6px}}@media(max-width:390px){.neighborhood-icon{display:none}.location.neighborhood-trigger{padding:6px}.neighborhood-copy b{font-size:10px}.location .neighborhood-copy small{font-size:8px}header .brand{gap:4px}header .brand-smile{display:none}}

/* Primary tasks: two equal actions, then one full-width street report. */
#panel-content>.actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;position:static;background:transparent;margin:8px 0 10px;padding:0}
#panel-content>.actions button{min-width:0;min-height:58px;padding:12px 8px;border-radius:18px;justify-content:center;font-size:15px;line-height:1.25;box-shadow:none}
#panel-content>.actions .action-copy{width:100%;gap:8px;justify-content:center;white-space:nowrap}
#panel-content>.actions .action-icon{width:28px;height:28px;flex:0 0 28px;margin:0;background:transparent}
#panel-content>.actions .action-icon .ui-icon{width:24px;height:24px}
#panel-content>.community-tools{display:flex;flex-shrink:0;width:100%;margin:0 0 16px;gap:0}
#panel-content>.community-tools .sighting-action{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:10px 16px;border:1px solid #c8e0da;border-radius:17px;background:#eef8f4;color:#285f52;font-size:15px;font-weight:700;line-height:1.25}
.sighting-action .action-copy{justify-content:center;gap:9px}.sighting-action .action-icon{width:24px;height:24px;flex:0 0 24px;margin:0;background:transparent}.sighting-action .ui-icon{width:23px;height:23px}
#panel-content>.community-tools .sighting-action:hover{background:#ddf1e9}
[data-theme=dark] #panel-content>.community-tools .sighting-action{background:#233e39;color:#c0f0dc;border-color:#42665a}
[data-theme=dark] #panel-content>.community-tools .sighting-action:hover{background:#2d4d45}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel[data-position=peek] #panel-content>.actions{margin:0 0 8px;padding:0;gap:8px}
 #panel[data-position=peek] #panel-content>.community-tools{display:flex;margin:0;gap:0}
 #panel[data-position=peek] .community-tools .sighting-action{min-height:48px;padding:10px 12px;font-size:15px}
}
@media(max-width:360px){#panel-content>.actions button{font-size:14px}#panel-content>.actions .action-copy{gap:5px}#panel-content>.actions .action-icon{width:23px;flex-basis:23px}}

/* SALGO mascot on wheels, shared with installed app identity. */
.brand .brand-mascot{display:block;width:44px;height:38px;object-fit:contain;flex-shrink:0;transform:translateY(2px)}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.brand .brand-mascot{width:32px;height:29px}.brand{gap:4px}}
@media(max-width:390px){header .brand .brand-mascot{width:27px;height:25px}header .brand{gap:2px}}

/* Main actions: stronger hierarchy and coordinated colors on dark surfaces. */
[data-theme=dark] #panel-content>.actions [data-action=search]{background:#187b9a;color:#fff;border-color:#3195b1}
[data-theme=dark] #panel-content>.actions [data-action=search]:hover{background:#1b718b}
[data-theme=dark] #panel-content>.actions [data-action=release]{background:#245c50;color:#f2fff9;border-color:#397b6b}
[data-theme=dark] #panel-content>.actions [data-action=release]:hover{background:#2b695b}
[data-theme=dark] #panel-content>.community-tools .sighting-action{background:#222f3a;color:#e6f0f5;border-color:#435463}
[data-theme=dark] #panel-content>.community-tools .sighting-action:hover{background:#2b3b48}
[data-theme=dark] #panel-content>.actions button:focus-visible,
[data-theme=dark] #panel-content>.community-tools .sighting-action:focus-visible{outline:3px solid #8bd8ed;outline-offset:3px}

/* A short place card keeps directions visible without a scrolling introduction. */
#panel[data-mode=detail] .compact-place{display:flex;flex-direction:column;gap:12px;flex:none;min-width:0;width:100%}
#panel[data-mode=detail] .compact-place .place-heading{margin:0}
#panel[data-mode=detail] .compact-place h2{font-size:22px;line-height:1.25;margin:0;overflow-wrap:anywhere}
#panel[data-mode=detail] .compact-place .place-zone{font-size:13px;margin:5px 0 0;line-height:1.3}
#panel[data-mode=detail] .compact-place .badge{align-self:flex-start;font-size:12px;line-height:1.3;padding:5px 9px;margin:0;max-width:100%;white-space:normal}
#panel[data-mode=detail] .compact-caution{font-size:12px;line-height:1.35;color:var(--muted);margin:0}
#panel[data-mode=detail] .compact-place .actions{display:grid;grid-template-columns:1.2fr 1fr;gap:9px;margin:0;position:static;padding:0;background:transparent}
#panel[data-mode=detail] .compact-place .actions button{min-width:0;min-height:48px;padding:10px 8px;font-size:15px;line-height:1.2;border-radius:16px}
#panel[data-mode=detail] .place-more{display:block;min-height:40px;margin:2px auto 0;padding:8px 12px;font-size:13px}
#panel[data-mode=detail] .map-return-bar{padding-bottom:7px}
#panel[data-mode=detail] .map-return-bar button{width:auto;min-height:32px;padding:5px 8px;border:0;background:transparent;color:var(--muted);font-size:13px}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel[data-mode=detail] .sheet-handle{height:20px;min-height:20px}
 #panel[data-mode=detail] #panel-content{padding:0 16px max(12px,env(safe-area-inset-bottom));overflow-y:auto}
 #panel[data-mode=detail] .map-return-bar{padding:0 12px 5px}
 #panel[data-mode=detail] .detail-walker{width:40px;height:40px;border-radius:14px;margin:0 0 0 8px}
 #panel[data-mode=detail] .detail-walker svg{width:27px;height:27px}
 #panel[data-mode=detail][data-position=peek] .compact-place .badge,
 #panel[data-mode=detail][data-position=peek] .compact-caution,
 #panel[data-mode=detail][data-position=peek] .compact-place .actions,
 #panel[data-mode=detail][data-position=peek] .place-more{display:none}
}

/* Keep the reporting instruction useful when the sheet is folded. */
.sighting-help strong{font-weight:500;color:var(--ink)}
.sighting-expand{display:none}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel[data-mode=sighting] #panel-content>*{flex-shrink:0}
 #panel[data-mode=sighting][data-position=peek] #panel-content{overflow-y:auto;padding-top:0}
 #panel[data-mode=sighting][data-position=peek] #panel-content>.sighting-help{display:block;font-size:14px;line-height:1.4;margin:7px 0 10px}
 #panel[data-mode=sighting][data-position=peek] #panel-content>.sighting-expand{display:block;width:100%;min-height:44px;padding:10px 16px;border:1px solid #397b6b;border-radius:14px;background:#245c50;color:#f2fff9;font-size:15px;font-weight:700}
 [data-theme=light] #panel[data-mode=sighting][data-position=peek] #panel-content>.sighting-expand{background:#d9efe7;color:#164b3d;border-color:#a3cdbd}
}

/* SALGO car identity: enough height for the wheels and availability pin. */
.brand .brand-mascot{height:44px;width:44px;transform:none}@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.brand .brand-mascot{width:34px;height:35px}}@media(max-width:390px){header .brand .brand-mascot{width:29px;height:30px}}

/* Location precision: one viewport, fixed confirmation and safe areas. */
#modal-root .location-precision-modal{width:min(100%,600px);max-width:600px;height:min(94dvh,960px);max-height:100dvh;padding:0;display:flex;flex-direction:column;overflow:hidden;background:#18232d;color:#f1f5f7;border-radius:24px}
.location-precision-modal .modal-top{padding:14px 20px 0;flex-shrink:0}
.location-precision-modal .precision-heading{padding:0 20px 12px;flex-shrink:0}
.location-precision-modal h2{font-size:26px;margin:2px 0 4px}
.location-precision-modal .precision-heading p{font-size:14px;line-height:1.35;margin:0;color:#bdcbd5}
.precision-map-wrap{position:relative;flex:1;min-height:100px;isolation:isolate}
#precision-map{position:absolute;inset:0;background:#25384a}
.precision-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);z-index:450;pointer-events:none;filter:drop-shadow(0 3px 5px #0009)}
.precision-pin .ui-icon{width:46px;height:56px;fill:#7de4c3;stroke:#132c2b;stroke-width:1.6}
.precision-tools{position:absolute;right:12px;top:12px;display:grid;gap:8px;z-index:460}
.precision-tools button{width:46px;height:46px;border-radius:15px;background:#18232d;color:white;border:1px solid #70808c;font-size:24px;display:grid;place-items:center}
.precision-map-status{position:absolute;bottom:25px;left:10px;right:65px;z-index:450;color:white;background:#18232dbb;font-size:12px;border-radius:8px}
.precision-footer{padding:14px 20px max(16px,env(safe-area-inset-bottom));display:grid;gap:10px;flex-shrink:0;background:#18232d}
#precision-address{display:grid;gap:3px;min-width:0}
#precision-address strong{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#precision-address span{font-size:13px;color:#bdcbd5}
#precision-address small,#precision-hint{font-size:11px;color:#a4b6c3;line-height:1.3}
.precision-curb{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.precision-curb button{min-height:44px;padding:8px 12px;border:1px solid #566878;background:#25384a;color:#d3fff0;border-radius:14px}
.precision-times{display:flex;gap:8px}
.precision-times button{flex:1;min-height:44px;background:#25384a;color:#dce6ed;border:1px solid #566878;border-radius:14px}
.precision-times button[aria-pressed=true]{border-color:#7de4c3;background:#21493f;color:#d3fff0}
.location-precision-modal .primary{min-height:52px;width:100%;background:#7de4c3;color:#102d28;border-radius:17px}
.location-precision-modal button:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:640px){#modal-root:has(.location-precision-modal) .overlay{padding:0;align-items:stretch}#modal-root .location-precision-modal{height:100dvh;border-radius:0;width:100%;padding-top:env(safe-area-inset-top)}}
@media(max-height:650px){.location-precision-modal .precision-heading p,#precision-hint{display:none}.precision-footer{padding-top:8px;gap:6px}.location-precision-modal .modal-top{padding-top:6px}}
#precision-map .salgo-basemap{filter:grayscale(1) invert(1) contrast(1.5) brightness(1.8)}

/* Smart Parking Spot · Paquete 36 */
.smart-spot-glyph{color:#72f4bd}.smart-spot-glyph.soon{color:#ffd166}
.precision-pin.smart-precision{width:58px;height:96px;transform:translate(-50%,-50%) rotate(var(--spot-angle,0deg));transition:transform .25s ease;filter:drop-shadow(0 0 9px #72f4bd66)}
.precision-pin.smart-precision .ui-icon{width:58px;height:96px;fill:none;stroke:currentColor;stroke-width:1.6}
.smart-precision.soon .smart-spot-glyph{color:#ffd166}
.spot-detail-identity{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:#2b7b60;margin:4px 0 12px}
.spot-detail-identity .ui-icon{width:24px;height:38px;filter:drop-shadow(0 0 4px #72f4bd44)}
[data-theme=dark] .spot-detail-identity{color:#a2efcf}
.pin-mini>.smart-spot-glyph{width:23px;height:32px}
[data-theme=light] .smart-spot-glyph{color:#218261}[data-theme=light] .smart-spot-glyph.soon{color:#a96a09}
@media(prefers-reduced-motion:reduce){.precision-pin.smart-precision{transition:none}}

/* Finished luminous parking artwork · reference revision */
.smart-spot-glyph{width:42px;height:32px;color:#35f67a;stroke:none;overflow:visible;filter:drop-shadow(0 0 5px #21f56a3b)}
.smart-spot-glyph.soon{color:#ffd45c;filter:drop-shadow(0 0 5px #ffd45c30)}
.pin-mini>.smart-spot-glyph{width:42px;height:34px}.spot-detail-identity .smart-spot-glyph{width:62px;height:46px}
.action-icon .smart-spot-glyph{width:34px;height:28px}
#modal-root .location-precision-modal{background:#091311;border:1px solid #365046;border-radius:28px;box-shadow:0 24px 100px #0009}
.location-precision-modal .modal-top{height:44px;padding:12px 18px 0}.location-precision-modal .modal-top>span{font-size:10px;letter-spacing:.16em;color:#a7bfb2}
.location-precision-modal .precision-heading{padding:0 24px 20px;text-align:center}.location-precision-modal h2{font-size:25px;font-weight:700;letter-spacing:-.6px}.location-precision-modal .precision-heading p{color:#b4c9bf;font-size:14px;margin-top:6px}
.location-precision-modal .precision-map-wrap{margin:0 10px;border-radius:22px;overflow:hidden;box-shadow:inset 0 0 40px #0008;border:1px solid #36504655}
#precision-map .salgo-basemap{filter:grayscale(.7) brightness(.58) saturate(.6);}
[data-theme=dark] #precision-map .salgo-basemap{filter:grayscale(.65) invert(.9) hue-rotate(155deg) brightness(.65) contrast(.85)}
.precision-map-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:430;box-shadow:inset 0 0 55px #020b0866;border-radius:22px}
.precision-pin.smart-precision{width:158px;height:118px;filter:drop-shadow(0 0 12px #17ef6a66);}
.precision-pin.smart-precision .smart-spot-glyph{width:158px;height:118px;stroke:none;fill:none;}
.precision-tools{right:14px;top:14px;gap:10px}.precision-tools button{background:#0b1615ec;border:1px solid #56756666;box-shadow:0 5px 16px #0006;border-radius:50%;width:46px;height:46px}
.precision-footer{background:linear-gradient(160deg,#0d1b16,#080f10);padding:18px 22px max(20px,env(safe-area-inset-bottom));gap:12px}#precision-address strong{font-size:20px;letter-spacing:-.4px}#precision-address span{color:#a4bbb0}#precision-address small{font-size:10px;color:#7c9889}
.precision-curb>span{background:#153523;color:#7df3a3;border:1px solid #2f8c5355;padding:6px 10px;border-radius:20px;font-size:12px}.precision-curb button{background:#111f1a;border-color:#3e6553;border-radius:24px;font-size:12px;padding:8px 16px;color:#ddf4e4}
.location-precision-modal .primary{background:linear-gradient(110deg,#35ed80,#36fc67);color:#06180c;border-radius:30px;box-shadow:0 5px 25px #28f16b22;font-size:17px;min-height:54px}
.location-precision-modal #precision-hint{font-size:10px;color:#849d8f}.precision-times button{background:#10221a;border-color:#2e483a;border-radius:22px}.precision-times button[aria-pressed=true]{background:#183d25;color:#8fffad;border-color:#3ff47e}
#modal-root .spot-success-modal{width:min(100%,480px);background:radial-gradient(ellipse at 50% 28%,#102a1b 0%,#081210 50%,#090f13 100%);border:1px solid #344a40;box-shadow:0 25px 100px #000a;border-radius:30px;color:#f4fff7;padding:20px 26px 26px;text-align:center;max-height:96dvh;overflow:auto}
.spot-success-modal .modal-top{color:#779687;font-size:10px;letter-spacing:.13em}.spot-success-art{height:205px;display:grid;place-items:center}.spot-success-art .smart-spot-glyph{width:248px;height:185px;transform:perspective(500px) rotateX(28deg) rotateZ(-18deg);filter:drop-shadow(0 8px 15px #19ed6844)}
.spot-success-kicker{font-size:10px;letter-spacing:.18em;color:#6daa85}.spot-success-copy h2{font-size:30px;letter-spacing:-1px;line-height:1.12;margin:12px 0}.spot-success-copy p{font-size:16px;color:#b3c5ba;max-width:240px;margin:0 auto 30px;line-height:1.5}
.spot-success-card{display:flex;gap:14px;align-items:center;border:1px solid #32463b;border-radius:20px;background:linear-gradient(140deg,#17251d,#0e1717);padding:14px;text-align:left}.spot-success-thumb{width:72px;height:72px;flex-shrink:0;display:grid;place-items:center;border-radius:13px;border:1px solid #315a3f;background:repeating-linear-gradient(-30deg,#122c1b 0 14px,#101d17 14px 30px)}.spot-success-thumb .smart-spot-glyph{width:86px;height:64px;transform:rotate(-22deg)}.spot-success-card strong{display:block;font-size:16px;line-height:1.3}.spot-success-card span{display:block;font-size:12px;color:#a0b7aa;margin:5px 0 9px}.spot-success-card b{display:inline-block;border:1px solid #348d5355;background:#143222;color:#71ed98;border-radius:20px;padding:5px 9px;font-size:11px}.spot-success-note{display:block;color:#819b8c;font-size:11px;margin:16px 0 22px}.spot-success-modal .primary{width:100%;background:#101d18;border:1px solid #3f5749;border-radius:30px;min-height:54px;color:#effff4;font-size:17px}
@media(max-width:640px){#modal-root .location-precision-modal{border:0;border-radius:0}.location-precision-modal .modal-top{padding-top:10px}.location-precision-modal .precision-heading{padding-bottom:14px}.precision-footer{padding:14px 18px max(16px,env(safe-area-inset-bottom));gap:9px}#modal-root:has(.spot-success-modal) .overlay{padding:0;align-items:stretch}#modal-root .spot-success-modal{width:100%;min-height:100dvh;max-height:100dvh;border-radius:0;border:0;display:flex;flex-direction:column;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom))}.spot-success-art{flex:1;min-height:150px;max-height:290px}.spot-success-copy h2{font-size:30px}.spot-success-copy p{margin-bottom:26px}}
@media(max-height:700px){.spot-success-art{height:130px;min-height:100px}.spot-success-art .smart-spot-glyph{width:190px;height:142px}.spot-success-copy h2{font-size:25px}.spot-success-copy p{margin-bottom:14px}}
.location-precision-modal .modal-top,.spot-success-modal .modal-top{background:transparent;box-shadow:none;border:0;min-height:28px}
.location-precision-modal .modal-top>span,.spot-success-modal .modal-top>span{visibility:hidden}
.spot-success-modal .modal-top{padding:0;height:30px}
.spot-success-modal .modal-top button,.location-precision-modal .modal-top button{background:#111f1a;border:1px solid #345343;color:#e4fbed}

/* Package 37: geographic shape is drawn by the map, crosshair is only a selection reference. */
.precision-crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:450;pointer-events:none;color:#fff9;font:20px system-ui;text-shadow:0 1px 3px #000}


/* Availability leads the visual hierarchy, decorative activity stays quieter. */
.traffic-car svg{transform:scale(.74);opacity:.65;transform-origin:center}
.map-actor{transform:scale(.76);transform-origin:center}
.motion-icon{opacity:.62}

.spot-precision-detail .precision-occupied{min-height:44px;background:transparent;color:inherit;border:1px solid #52736766;border-radius:16px;font-size:13px}
.spot-precision-detail .precision-curb{justify-content:flex-start}

/* Keep the three home actions in normal flow, with room above and below. */
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) #panel-content{padding-top:4px;padding-bottom:max(20px,env(safe-area-inset-bottom))}
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) #panel-content>.actions{margin:0 0 12px;position:static}
}
/* SALGO Rewards: isolated from map controls and action sheets. */
.rewards-access{display:flex;align-items:center;gap:6px;background:transparent;color:inherit;border:1px solid #8296aa55;border-radius:20px;padding:8px 12px;font:inherit;font-size:12px;cursor:pointer}.rewards-access svg{width:18px;height:18px;color:#d7ad51}.rewards-modal{max-width:600px!important}.rewards-heading{display:flex;align-items:center;gap:14px;margin:6px 0 24px}.rewards-heading h2{margin:0 0 5px;font-size:27px}.rewards-heading p{margin:0;font-size:14px}.reward-emblem{background:#d9b55c25;border:1px solid #d9b55c66;color:#d5ad55;border-radius:22px;padding:14px;display:grid;place-items:center}.reward-emblem svg{width:32px;height:32px}.reward-balance{background:linear-gradient(125deg,#283d47,#1c3435);color:#f4f8f6;border:1px solid #7bb4a444;padding:22px;border-radius:24px}.reward-balance-top{display:flex;justify-content:space-between;gap:10px;font-size:13px}.reward-league{color:#e5c678}.reward-number{font-size:64px;font-weight:800;letter-spacing:-3px;line-height:1.2;margin:18px 0}.reward-number small{display:block;font-size:12px;letter-spacing:.5px;font-weight:400;color:#c0d7ce}.reward-balance progress{width:100%;height:7px;accent-color:#a1d9b6}.reward-balance p{font-size:12px;color:#c0d7ce;margin:8px 0 0}.reward-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0 28px;text-align:center}.reward-stats>div{padding:12px 6px;border-right:1px solid #8296aa44}.reward-stats>div:last-child{border:0}.reward-stats b{font-size:25px;display:block}.reward-stats small{display:block;font-size:11px;line-height:1.4;margin-top:5px;opacity:.75}.reward-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.reward-section-title h3{margin:0}.reward-section-title>span{font-size:11px;opacity:.7}.reward-tabs{display:flex;gap:5px;margin:15px 0;overflow-x:auto}.reward-tabs button{border:1px solid #8296aa44;border-radius:20px;background:transparent;color:inherit;padding:8px 13px;font:inherit;font-size:12px;cursor:pointer}.reward-tabs button[aria-pressed=true]{background:#749d8b33;border-color:#89bfa1}.reward-podium{display:flex;gap:8px;text-align:center;padding:16px 0}.reward-podium>div{flex:1;min-width:0;display:grid;gap:7px}.reward-podium span{font-size:30px}.reward-podium strong{font-size:12px;overflow-wrap:anywhere}.reward-podium b{font-size:11px;opacity:.7}.reward-rank{display:flex;gap:14px;align-items:center;border-bottom:1px solid #8296aa33;padding:13px 10px;border-radius:10px}.reward-rank>span{flex:1;min-width:0;overflow-wrap:anywhere}.reward-rank strong{font-size:14px}.reward-rank small{display:block;font-size:11px;opacity:.7;margin-top:4px}.reward-rank.is-me{background:#79a78d22;border:1px solid #79a78d55}.reward-empty{text-align:center;padding:22px 14px;border:1px dashed #8296aa55;border-radius:20px;margin:18px 0 25px}.reward-empty>svg{width:28px;height:28px;color:#83ac96}.reward-empty h3{font-size:17px}.reward-empty p{font-size:13px}.reward-leagues{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:16px 0}.reward-leagues>div{display:grid;text-align:center;gap:7px;border:1px solid #8296aa44;border-radius:15px;padding:12px 4px}.reward-leagues .current{border-color:#91bea1;background:#91bea11a}.reward-leagues span{font-size:23px}.reward-leagues strong{font-size:12px}.reward-leagues small{font-size:10px;opacity:.65}.reward-rules{padding:17px 0;border-bottom:1px solid #8296aa44}.reward-rules summary{cursor:pointer;font-size:14px;font-weight:600}.reward-rules p{font-size:12px}.reward-benefits{display:flex;gap:13px;padding:18px;background:#c9ab6615;border-radius:18px;margin:22px 0}.reward-benefits>span{font-size:25px}.reward-benefits h3{margin:0;font-size:14px}.reward-benefits p{font-size:12px;margin-bottom:0}.reward-join{background:#8baa9817;border:1px solid #8296aa44;border-radius:20px;padding:20px;margin-bottom:25px}.reward-join h3{margin-top:0}.reward-join p{font-size:14px}.reward-join small{display:block;font-size:11px;line-height:1.5;margin:12px 0}.reward-join input{box-sizing:border-box;width:100%;border:1px solid #8296aa77;border-radius:10px;background:transparent;color:inherit;padding:13px;font:inherit;margin-top:8px}.reward-join label{font-size:13px}.reward-signin{display:block;text-align:center;text-decoration:none}.reward-join button{width:100%}@media(max-width:640px){.rewards-access{padding:8px}.rewards-access span{display:none}.rewards-modal{padding:22px!important}.reward-section-title h3{font-size:17px}header nav{gap:7px}}
/* SALGO account: calm, compact, and consistent with the map. */
.account-modal{max-width:430px!important}.account-hero{text-align:center;margin:10px 0 24px}.account-symbol{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 15px;border-radius:20px;background:#94dcc316;color:#94dcc3}.account-symbol svg{width:28px;height:28px}.account-hero h2{font-size:27px!important;line-height:1.15}.account-hero p{max-width:290px;margin:10px auto 0!important}.account-google{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:15px;border:1px solid #dfe5e9;border-radius:16px;background:#fff;color:#263440;font:inherit;font-size:15px;font-weight:600;cursor:pointer}.account-google:disabled{opacity:.55;cursor:default}.account-pending{display:block;text-align:center;font-size:11px;line-height:1.5;opacity:.7;margin:7px 0}.account-divider{display:flex;align-items:center;gap:12px;margin:20px 0;font-size:12px;opacity:.6}.account-divider:before,.account-divider:after{content:'';height:1px;background:currentColor;opacity:.25;flex:1}.account-tabs{display:flex;gap:5px;background:#8fa5b512;border-radius:13px;padding:4px;margin-bottom:18px}.account-tabs button{width:50%;border:0;background:transparent;color:inherit;border-radius:10px;padding:10px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;opacity:.65}.account-tabs button[aria-pressed=true]{background:#a5d8ca22;opacity:1}.account-form{display:flex;flex-direction:column;gap:9px}.account-form label{font-size:13px;font-weight:600;margin-top:5px}.account-form input{box-sizing:border-box;width:100%;min-width:0;background:#829eae0c;color:inherit;border:1px solid #829eae55;border-radius:13px;padding:14px;font:inherit;font-size:16px}.account-form input:focus-visible{outline:2px solid #8ad5c0;outline-offset:2px}.account-form small{font-size:11px;opacity:.7}.account-password{position:relative}.account-password input{padding-right:75px}.account-password button{position:absolute;right:8px;top:6px;bottom:6px;padding:0 10px;background:transparent;border:0;color:inherit;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.account-form .primary{margin-top:12px}.account-status{font-size:13px!important;line-height:1.5;min-height:0;color:#75caae}.account-status:empty{display:none}.account-status.is-error{color:#df8f8f}.account-modal .text-button{display:block;margin:12px auto}.account-legacy{border-top:1px solid #829eae30;padding-top:16px;margin:20px 0 12px;font-size:12px;opacity:.8}.account-legacy summary{cursor:pointer}.account-summary{border:1px solid #829eae35;border-radius:15px;padding:16px;margin:18px 0;display:flex;flex-direction:column;gap:5px;overflow-wrap:anywhere}.account-summary span,.account-summary small{font-size:12px;opacity:.7}.account-modal button:focus-visible,.account-modal a:focus-visible{outline:2px solid #8ad5c0;outline-offset:3px}

/* SALGO Action · P42. A single primary action and two compact secondary actions. */
.salgo-action-group{display:flex;flex-direction:column;gap:12px;margin:8px 0 18px;flex-shrink:0}
.salgo-action-group .salgo-action{display:flex;align-items:center;gap:10px;width:100%;height:86px;padding:12px;border:1px solid #69e6aa88;border-radius:22px;background:linear-gradient(115deg,#103d32,#102c25);color:#fff;box-shadow:0 0 20px #47f58c16;text-align:left;transition:transform .18s,box-shadow .25s}
.salgo-action:hover{box-shadow:0 0 24px #47f58c2b}.salgo-action:active{transform:scale(.98);box-shadow:0 0 24px #47f58c44}
.salgo-action-art{display:grid;place-items:center;flex:0 0 62px}.salgo-action-art .smart-spot-glyph{width:70px;height:56px;color:#47f58c}
.salgo-action-copy{flex:1;min-width:0}.salgo-action-copy strong{display:block;font-size:29px;letter-spacing:1px;line-height:1.05}.salgo-action-copy small{display:block;font-size:12px;font-weight:500;color:#c9f2dd;margin-top:5px;white-space:nowrap}
.salgo-action-reward{display:grid;justify-items:end;gap:8px}.salgo-action-reward b{background:#47f58c18;border:1px solid #47f58c44;color:#a2fbc4;padding:5px 7px;border-radius:20px;font-size:11px;white-space:nowrap}.salgo-action-reward>span{font-size:19px;color:#c9f2dd}
.salgo-other-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px}.salgo-other-actions button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-width:0;height:52px;min-height:52px;margin:0;padding:10px 8px;border-radius:16px;font-size:13px;font-weight:700;line-height:1.2}.salgo-other-actions .ui-icon{width:23px;height:25px}.salgo-other-actions .smart-spot-glyph{width:32px;height:26px}.salgo-other-actions .sighting-action{background:#203d35;color:#d1f3e2;border:1px solid #42665a}.salgo-other-actions .primary{background:#293f50;color:#f2f7ff;border:1px solid #496279}
.salgo-time-choice>strong{display:block;font-size:14px;margin-bottom:8px;color:#f1fff6}.salgo-time-choice>small{display:block;font-size:11px;line-height:1.4;color:#c9f2dd;margin-top:7px}.salgo-time-choice .precision-times{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.salgo-time-choice .precision-times button{min-height:48px;padding:8px 4px;color:#d5eddf;font-size:13px}
.salgo-departure-due{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:48px;border:1px solid #f2c76688;border-radius:14px;padding:10px;background:#45371c;color:#fff0b9;font-size:12px;font-weight:700;margin-top:10px}
.salgo-reward-result{padding:14px;margin:14px 0;border:1px solid #47f58c44;border-radius:18px;background:#47f58c09}.salgo-reward-result>small{font-size:10px;color:#c9f2dd}.salgo-reward-result>strong{display:block;font-size:32px;color:#7cf8aa;margin:5px 0}.salgo-reward-result>p{font-size:12px;color:#c9f2dd;margin:0;line-height:1.5}.spot-success-art{height:125px}.spot-success-art .smart-spot-glyph{width:180px;height:130px}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) #panel-content>.salgo-action-group{display:flex!important;margin:0;position:static}
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) #panel-content{padding:4px 16px max(16px,env(safe-area-inset-bottom));overflow:hidden}
}
@media(max-width:350px){.salgo-action-group .salgo-action{gap:7px;padding:10px}.salgo-action-art{flex-basis:47px}.salgo-action-art .smart-spot-glyph{width:57px}.salgo-action-copy strong{font-size:26px}.salgo-action-copy small{font-size:11px}.salgo-action-reward b{font-size:10px;padding:5px}.salgo-other-actions button{font-size:12px;gap:5px}}
@media(max-height:700px){.location-precision-modal .precision-heading{padding-bottom:10px}.location-precision-modal .precision-footer{gap:7px;padding-top:10px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.precision-curb>span{font-size:10px}#precision-address strong{font-size:17px}.location-precision-modal .precision-heading p{display:none}}
@media(prefers-reduced-motion:reduce){.salgo-action-group button,.spot-success-art .smart-spot-glyph{transition:none;animation:none}}

/* Share the same mobile gutter between the map and action panel. */
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 .map-top,.filters{left:16px;right:16px}
 .map-controls{right:16px}
}

/* Align the precision dialog close control with its title and content edge. */
#modal-root .location-precision-modal{position:relative}
.location-precision-modal .modal-top{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);right:18px;width:44px;height:44px;min-height:44px;padding:0;margin:0;z-index:5;justify-content:flex-end}
.location-precision-modal .modal-top>span{display:none}
.location-precision-modal .modal-top .close{display:grid;place-items:center;padding:0;line-height:1;margin:0}
.location-precision-modal .precision-heading{padding-top:20px}
.location-precision-modal .precision-heading h2{margin:2px 44px 4px;min-height:32px;display:flex;align-items:center;justify-content:center}

/* Keep confirmation actions separate and clear of the device edge. */
.spot-success-actions{display:flex;flex-direction:column;gap:12px;flex-shrink:0;padding-bottom:8px}
.spot-success-actions>.primary,.spot-success-actions>.secondary{margin:0;min-height:54px;flex-shrink:0;justify-content:center}
#modal-root .spot-success-modal{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}

/* Unified profile menu. */
header nav .avatar{min-width:44px;min-height:44px;display:grid;place-items:center}
.profile-menu{display:grid;gap:12px;margin:18px 0}
.profile-menu .text-button{text-align:left;min-height:44px;margin:0}
.profile-menu h3{margin:0}
.profile-menu .secondary{gap:12px;text-align:left;min-height:52px}

/* Profile lives in the header. No space reserved for bottom navigation. */
:root{--salgo-nav-height:0px}
main{height:calc(100dvh - 88px - var(--salgo-nav-height));min-height:0}
.mobility-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mobility-choices button{display:flex;justify-content:center;align-items:center;gap:8px;border:1px solid #61776c;background:#203329;color:#e4f9ec;border-radius:14px;padding:14px 8px;min-height:50px}
.mobility-choices button[aria-pressed=true]{border-color:#7af2a2;color:#9bffc3;background:#1e4a32}
.pedestrian-radar{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#112a22;border:1px solid #43836266;border-radius:20px;padding:13px 12px;color:#a2fbc4}
.pedestrian-radar>span{display:flex;gap:8px;align-items:center}.pedestrian-radar strong{font-size:14px;display:block}.pedestrian-radar small{display:block;font-size:10px;color:#b7d1c2;margin-top:5px;font-weight:400}
.pedestrian-radar button{background:transparent;color:inherit;font-weight:700;font-size:18px;min-height:44px;padding:2px 10px;border-inline:1px solid #416553}
.pedestrian-actions .pedestrian-report{height:76px;border-color:#76f5a3;box-shadow:0 0 22px #47f58c12}.pedestrian-report .salgo-action-copy strong{font-size:20px;letter-spacing:0}.pedestrian-report .salgo-action-copy small{font-size:10px;white-space:normal;line-height:1.4}.pedestrian-report .salgo-action-art{flex-basis:44px}.pedestrian-report .smart-spot-glyph{width:54px}
.pedestrian-gps{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;background:transparent;color:#aed9c3;font-size:11px;border-radius:12px}
#mobility-suggestion{position:fixed;left:16px;right:16px;top:80px;max-width:450px;margin:auto;padding:12px;border:1px solid #5ddd99;border-radius:16px;background:#16382b;color:#eafff0;z-index:9;box-shadow:0 4px 24px #0006;display:flex;align-items:center;gap:8px;font-size:12px}
#mobility-suggestion[hidden]{display:none}#mobility-suggestion button{min-height:44px;padding:8px;background:#29593f;color:inherit;border-radius:10px}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){main{height:calc(100dvh - 68px - var(--salgo-nav-height))}#panel[data-position=peek]:is([data-mode=home],[data-mode=search]) #panel-content{padding-bottom:12px}body[data-mobility=pedestrian] .filters{display:none}body[data-mobility=pedestrian] .map-key{display:none}body[data-mobility=pedestrian] .pedestrian-actions{gap:8px}#mobility-suggestion{top:76px}}
@media(max-width:350px){.pedestrian-radar{padding:10px 8px}.pedestrian-radar strong{font-size:12px}.pedestrian-report .salgo-action-copy strong{font-size:17px}}

/* Collapsed sheet shows actions. Swipe or tap its grip for more options. */
.sheet-summary,.sheet-toggle-label{display:none}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 #panel:is([data-mode=home],[data-mode=search])>.sheet-handle{display:flex;height:24px;min-height:24px;padding:0}
 #panel:is([data-mode=home],[data-mode=search])>.sheet-handle .sheet-grip{display:block;top:9px;left:calc(50% - 17px)}
 #panel:is([data-mode=home],[data-mode=search]) #panel-content{display:flex;min-height:0}
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) #panel-content{padding:12px 16px;overflow:hidden}
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) #panel-content>:not(.salgo-action-group){display:none}
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) #panel-content>.salgo-action-group{display:flex;margin:0;gap:12px}
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) .pedestrian-radar,
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) .pedestrian-gps{display:none}
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) .salgo-departure-due{margin-top:0}
 #panel[data-position=half]:is([data-mode=home],[data-mode=search]) #panel-content{overflow-y:auto;padding:4px 16px 16px}
}
@media(prefers-reduced-motion:reduce){#panel,.map-controls{transition:none}}

/* Profile: compact navigation with distinct, spaced sections. */
.profile-modal{width:420px;padding:0 22px 22px}
.profile-modal .modal-top{margin:0;padding:14px 0 10px}
.profile-heading{padding:8px 0 22px}
.profile-modal .profile-heading h2{font-size:26px;line-height:1.2;margin:0 0 8px;overflow-wrap:anywhere}
.profile-modal .profile-heading p{font-size:13px;line-height:1.5;margin:0;color:var(--muted)}
.profile-links{border:1px solid var(--line);border-radius:16px;overflow:hidden}
.profile-modal .profile-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;width:100%;background:transparent;padding:15px 16px;text-align:left;font-size:14px;font-weight:500;color:inherit}
.profile-row+ .profile-row{border-top:1px solid var(--line)}
.profile-row>span:first-child{min-width:0;overflow-wrap:anywhere}
.profile-row>span:last-child{font-size:24px;line-height:1;color:var(--muted);flex-shrink:0}
.profile-row strong{display:block;font-weight:600}
.profile-row small{display:block;font-size:12px;font-weight:400;line-height:1.5;color:var(--muted);margin-top:5px}
.profile-row:hover{background:#829eae0d}
.profile-modal .profile-contributions{margin:16px 0 0;padding:0;border:1px solid var(--line);border-radius:14px;opacity:1;font-size:13px}
.profile-contributions summary{min-height:48px;padding:14px 16px;line-height:20px;color:var(--muted)}
.profile-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-left:6px;padding:0 6px;border-radius:7px;background:#829eae1a;color:var(--ink);font-size:12px}
.profile-contributions .history-row,.profile-contributions>p{margin:0 16px 14px}
.profile-preferences{margin:28px 0 24px}
.profile-modal .profile-preferences>h3{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
.profile-modal .mobility-preferences h3{font-size:15px;font-weight:500;margin:0 0 12px}
.profile-modal .mobility-choices{gap:10px}
.profile-modal .mobility-choices button{min-height:48px;padding:12px 8px;font-size:14px;border-radius:12px}
.profile-modal .mobility-preferences .tiny{font-size:12px;line-height:1.6;margin:12px 0 8px;color:var(--muted)}
.profile-modal .mobility-preferences .text-button{display:block;padding:10px 0;min-height:44px;text-align:left;font-size:12px;text-underline-offset:4px}
.profile-modal .profile-legal{display:flex;justify-content:center;gap:14px;font-size:11px;line-height:1.5;margin:22px 0 0;color:var(--muted)}
.profile-legal a{color:inherit;text-decoration:none;padding:6px 0}
@media(max-width:380px){.profile-modal{padding-right:18px;padding-left:18px}.profile-modal .profile-row{padding:14px}.profile-modal .mobility-choices button{font-size:13px;gap:6px}}

/* Compact mode switch, available directly on the map. */
.map-top{flex-direction:column;align-items:flex-start;gap:10px}
.home-mobility{max-width:100%;padding:3px;background:#192830ed;border:1px solid #829eae38;border-radius:24px;color:#cad6d0;box-shadow:0 2px 8px #0001}
.home-mobility-options{display:flex;gap:2px}
.home-mobility-options button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 13px;border-radius:20px;background:transparent;color:#a7b9af;font-size:12px;font-weight:500}
.home-mobility-options button[aria-pressed=true]{background:#8de8ab18;color:#adf0c2}
.home-mobility-options .ui-icon{width:17px;height:17px;flex-shrink:0}
.filters{top:134px}
[data-theme=light] .home-mobility{background:#fffffff2;border-color:#173d3526}
[data-theme=light] .home-mobility-options button{color:#718078}
[data-theme=light] .home-mobility-options button[aria-pressed=true]{background:#eaf3ec;color:#245b3b}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.filters{top:116px}#mobility-suggestion{top:188px}}

/* Header: one alignment axis and consistent icon proportions. */
body>header{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:12px;height:88px;padding:0 28px}
body>header .brand{display:flex;align-items:center;gap:7px;font-size:36px;line-height:1;letter-spacing:-1.6px;white-space:nowrap;min-height:44px}
body>header .brand .brand-mascot{width:38px;height:38px;object-fit:contain;transform:none}
body>header .location.neighborhood-trigger{justify-self:start;min-width:0;max-width:100%;height:44px;min-height:44px;padding:0;gap:5px;border-radius:8px;background:transparent;border-color:transparent;color:var(--muted)}
body>header .neighborhood-icon{width:15px;height:24px;flex:0 0 15px;border-radius:0;background:transparent;color:inherit;display:grid;place-items:center}
body>header .neighborhood-icon svg{width:14px;height:14px}
body>header .neighborhood-copy{min-width:0}
body>header .neighborhood-copy b{font-size:11px;line-height:15px;font-weight:500}
body>header .location .neighborhood-copy small{font-size:9px;line-height:12px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body>header nav{display:flex;align-items:center;justify-content:flex-end;margin:0;gap:16px;min-width:44px}
body>header .demo-label{margin:0;white-space:nowrap}
body>header nav .avatar{width:44px;height:44px;min-width:44px;min-height:44px;flex:0 0 44px;padding:0;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}
body>header nav .avatar .ui-icon{width:21px;height:21px;display:block}
@media (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 body>header{height:68px;padding:0 16px;gap:6px}
 body>header .brand{font-size:30px;gap:5px;letter-spacing:-1.3px}
 body>header .brand .brand-mascot{width:30px;height:32px}
 body>header .location.neighborhood-trigger{justify-self:start;width:max-content;max-width:100%;padding:0;gap:4px}
 body>header .neighborhood-copy b{font-size:11px;line-height:15px}
 body>header .location .neighborhood-copy small{font-size:9px;line-height:12px}
 body>header .neighborhood-icon{width:14px;flex-basis:14px;height:24px;background:transparent}
 body>header .neighborhood-icon svg{width:14px;height:14px}
 body>header nav{gap:0}
 body>header .demo-label{display:none}
}
@media(max-width:360px){
 body>header{padding:0 12px;gap:6px}
 body>header .brand{font-size:28px;gap:4px}
 body>header .brand .brand-mascot{width:27px;height:30px}
 body>header .neighborhood-icon{display:none}
 body>header .location.neighborhood-trigger{padding:0}
 body>header .location .neighborhood-copy small{font-size:9px}
}

/* Action feedback stays available to screen readers without covering the map. */
#action-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;pointer-events:none}

/* Keep report confirmation actions inside the visible browser viewport. */
#modal-root .spot-success-modal{display:flex;flex-direction:column;overflow:hidden;max-height:94dvh;padding:16px 24px max(16px,env(safe-area-inset-bottom,0px))}
.spot-success-modal .modal-top{flex-shrink:0}
.spot-success-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 2px;scrollbar-width:thin}
.spot-success-content .spot-success-art{height:clamp(64px,13dvh,110px);min-height:0;max-height:none;flex:none}
.spot-success-content .spot-success-art .smart-spot-glyph{width:140px;height:100px}
.spot-success-content .spot-success-copy h2{font-size:clamp(24px,4.5dvh,30px);margin:8px 0}
.spot-success-content .spot-success-copy p{font-size:14px;max-width:300px;line-height:1.4;margin:0 auto 14px}
.spot-success-content .spot-success-card{padding:10px;gap:12px;border-radius:16px}
.spot-success-content .spot-success-thumb{width:52px;height:52px}
.spot-success-content .spot-success-thumb .smart-spot-glyph{width:64px;height:48px}
.spot-success-content .spot-success-card>div:last-child{min-width:0}
.spot-success-content .spot-success-card strong{font-size:15px;overflow-wrap:anywhere}
.spot-success-content .spot-success-card span{margin:3px 0 6px}
.spot-success-content .salgo-reward-result{padding:10px;margin:10px 0}
.spot-success-content .salgo-reward-result>strong{font-size:27px;margin:3px 0}
.spot-success-content .spot-success-note{margin:10px 0;font-size:11px;line-height:1.4}
.spot-success-modal .spot-success-actions{flex:none;gap:8px;padding:12px 0 0;margin-top:auto;background:#091310;border-top:1px solid #34534355}
.spot-success-modal .spot-success-actions>button{min-height:48px;font-size:15px;padding:10px 16px}
@media(max-width:640px){#modal-root .spot-success-modal{height:100dvh;min-height:0;max-height:100dvh;padding: max(12px,env(safe-area-inset-top,0px)) 20px max(16px,env(safe-area-inset-bottom,0px))}}
@media(max-height:650px){.spot-success-content .spot-success-art{height:56px}.spot-success-content .spot-success-art .smart-spot-glyph{width:90px;height:64px}.spot-success-content .spot-success-copy p{margin-bottom:10px}.spot-success-content .spot-success-kicker{font-size:9px}}

/* Report feedback: one compact, centered card with nearby actions. */
#modal-root:has(.spot-success-modal) .overlay{padding:16px;align-items:center;justify-content:center}
#modal-root .spot-success-modal{width:min(100%,420px);height:auto;min-height:0;max-height:calc(100dvh - 32px);border:1px solid #344a40;border-radius:26px;padding:16px 20px 20px;gap:0}
.spot-success-modal .modal-top{height:32px;min-height:32px}
.spot-success-modal .modal-top .close{width:36px;height:36px;min-width:36px;min-height:36px;display:grid;place-items:center;padding:0;line-height:1}
.spot-success-modal .spot-success-content{flex:0 1 auto;padding:0;min-height:0}
.spot-success-modal .spot-success-actions{margin-top:0;padding-top:12px;background:transparent;border-top:0}
.spot-success-content .spot-success-art{height:76px}
.spot-success-content .spot-success-art .smart-spot-glyph{width:120px;height:86px}
.spot-success-content .spot-success-copy h2{font-size:clamp(24px,6.5vw,29px)}
.spot-success-content .spot-success-kicker{font-size:9px;letter-spacing:.13em}
.spot-success-content .spot-success-note{margin-bottom:0}
@media(max-height:650px){#modal-root:has(.spot-success-modal) .overlay{padding:10px}#modal-root .spot-success-modal{max-height:calc(100dvh - 20px);padding:12px 16px 16px}.spot-success-content .spot-success-art{height:48px}.spot-success-content .spot-success-art .smart-spot-glyph{width:86px;height:60px}}

/* P44: reuse the map sheet, including its grip, safe area and collapse behavior. */
.cerca{min-width:0}.cerca-heading{display:flex;align-items:center;gap:12px;justify-content:space-between}.cerca-heading h2{font-size:20px;margin:6px 0}.cerca-heading>div{min-width:0}.cerca-heading h2{overflow-wrap:anywhere}.cerca-live{font-size:12px;color:#72f4bd}.cerca-tabs,.cerca-quick,.cerca-tools{display:flex;flex-wrap:wrap;gap:8px}.cerca-tabs button,.cerca-quick button{font:inherit;font-size:13px;min-height:44px;padding:10px 13px;border:1px solid #51606c;border-radius:16px;background:var(--surface,#253442);color:inherit}.cerca-tabs [aria-pressed=true]{border-color:#72f4bd}.cerca-messages{max-height:26dvh;min-height:60px;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:8px;margin:12px 0}.cerca-message{align-self:flex-start;max-width:88%;padding:10px 13px;background:var(--surface,#253442);border-radius:14px;overflow-wrap:anywhere}.cerca-message.mine{align-self:flex-end;border:1px solid #51606c}.cerca-message p{margin:4px 0;font-size:15px}.cerca-message small{font-size:11px;opacity:.7}.cerca-error{font-size:13px}.cerca-tools{margin-top:12px}.cerca button:disabled{opacity:.5}#panel[data-mode=cerca] #panel-content{padding-bottom:max(16px,env(safe-area-inset-bottom));scroll-padding-bottom:20px}#panel[data-mode=cerca][data-position=peek] .cerca-heading{padding-bottom:8px}

/* Tablet map workspace: a bounded sheet, clear touch controls and device insets. */
@media (min-width:600px) and (max-width:760px), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse){
 body>header{height:72px;padding-inline:24px}
 body>header .brand{font-size:32px;gap:7px}
 body>header .brand .brand-mascot{width:34px;height:34px}
 main{height:calc(100dvh - 72px);--tablet-sheet-gap:24px}
 .map-top,.filters{left:24px;right:24px}
 .map-top{top:16px;gap:12px}
 .map-top .live-pill{max-width:100%;font-size:11px;padding:10px 12px}
 .home-mobility-options button{min-height:44px;padding-inline:16px;font-size:13px}
 .filters{top:136px;flex-wrap:wrap}
 .filters button{min-height:44px;font-size:12px;padding:10px 14px}
 #panel{left:50%;right:auto;bottom:calc(var(--tablet-sheet-gap) + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:min(440px,calc(100% - 144px));height:var(--sheet-height);max-height:calc(100% - 48px - env(safe-area-inset-bottom,0px));border:1px solid var(--line);border-radius:24px;box-shadow:0 8px 32px #0004}
 #panel>.sheet-handle{border-radius:24px 24px 0 0}
 #panel-content{min-height:0;min-width:0;flex-shrink:1;padding:4px 16px 16px}
 #panel[data-position=peek]:is([data-mode=home],[data-mode=search]) #panel-content{padding:12px 16px;overflow-y:auto}
 .salgo-action-group .salgo-action{flex-shrink:0}
 .salgo-action-copy small{white-space:normal;line-height:1.35}
 .salgo-other-actions button{font-size:14px}
 .map-controls{right:24px;bottom:calc(44px + env(safe-area-inset-bottom,0px));gap:8px}
 .map-controls button{width:44px;height:44px;border-radius:14px}
 .leaflet-bottom{bottom:8px!important}
 .leaflet-control-attribution{font-size:10px!important}
 #mobility-suggestion{top:168px}
 body[data-mobility=pedestrian] .filters{display:none}
}
@media (min-width:600px) and (max-width:760px) and (orientation:landscape), (min-width:761px) and (max-width:1366px) and (any-pointer:coarse) and (orientation:landscape){
 #panel{left:24px;transform:none;width:min(400px,calc(100% - 144px))}
}

/* Real parking reward: non-blocking, readable, dismissible. */
body>.parking-thanks{position:fixed;inset:auto;top:calc(env(safe-area-inset-top,0px) + 80px);left:50%;transform:translateX(-50%);z-index:10050;display:grid;grid-template-columns:28px minmax(0,1fr) 44px;grid-template-rows:auto;align-items:start;gap:12px;width:min(440px,calc(100vw - 32px));max-width:calc(100vw - 32px);height:fit-content;min-height:0;max-height:calc(100dvh - 112px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow:auto;box-sizing:border-box;padding:20px 16px;border:1px solid #70efaa80;border-radius:22px;background:#122c25;color:#f3fff7;box-shadow:0 12px 40px #0007;font-family:inherit;text-align:left}
body>.parking-thanks::before,body>.parking-thanks::after{content:none;display:none}
body>.parking-thanks>.parking-thanks-heart{grid-column:1;grid-row:1;font-size:26px;line-height:1.4}
body>.parking-thanks>div{grid-column:2;grid-row:1;min-width:0;align-self:start}
body>.parking-thanks strong{display:block;font-size:16px;line-height:1.4;overflow-wrap:anywhere}
body>.parking-thanks p{margin:5px 0 10px;font-size:13px;line-height:1.5;color:#d0e6d9}
body>.parking-thanks b{display:block;color:#91ffb8;font-size:19px;line-height:1.4}
body>.parking-thanks small{display:block;margin-top:5px;color:#bed8ca;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
body>.parking-thanks>button{grid-column:3;grid-row:1;align-self:start;justify-self:end;display:grid;place-items:center;padding:0;margin:0;width:44px;height:44px;min-width:44px;min-height:44px;line-height:1;border:0;border-radius:50%;background:#ffffff12;color:inherit;font-size:25px;cursor:pointer}
body>.parking-thanks>button:focus-visible{outline:2px solid #91ffb8;outline-offset:2px}
@media(min-width:600px){body>.parking-thanks{top:calc(env(safe-area-inset-top,0px) + 88px);padding:22px 18px;gap:14px}body>.parking-thanks strong{font-size:17px}}


.reward-confirm-status{font-size:14px;line-height:1.5;margin:10px 0 16px;color:inherit;overflow-wrap:anywhere}button[aria-busy="true"]{opacity:.7;cursor:progress}

/* Place details: consistent spacing between every action and a quiet link row. */
#panel[data-mode=detail] .compact-place>.spot-detail-identity{margin:0;gap:10px;font-size:13px}
#panel[data-mode=detail] .spot-detail-identity .smart-spot-glyph{width:48px;height:36px}
#panel[data-mode=detail] .compact-place>.secondary{flex-shrink:0;min-height:50px;justify-content:center;padding:13px 16px;font-size:15px;line-height:1.3;border-radius:16px}
#panel[data-mode=detail] .compact-place .actions button{justify-content:center;text-align:center;min-height:50px}
#panel[data-mode=detail] .compact-place .detail-walker{width:36px;height:36px;border-radius:12px;margin:0 0 0 10px}
#panel[data-mode=detail] .community-detail-icon .community-symbol{font-size:23px}
#panel[data-mode=detail] .place-links{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding-top:2px;border-top:1px solid var(--line)}
#panel[data-mode=detail] .place-links>.text-button{width:auto;min-height:44px;margin:0;padding:10px 0;font-size:12px;line-height:1.4;text-align:left}
@media(max-width:360px){#panel[data-mode=detail] .compact-place h2{font-size:20px}#panel[data-mode=detail] .compact-place .actions button{font-size:13px}}
/* Contextual inbox: a compact card on the map, independent of the bottom sheet. */
#cerca-inbox{position:fixed;z-index:1250;top:calc(92px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));width:min(360px,calc(100vw - 32px));pointer-events:none}
#cerca-inbox>*{pointer-events:auto}.cerca-incoming{padding:16px;border:1px solid #5ac9ad66;border-radius:22px;background:#1b2c36;color:#f1f5f7;box-shadow:0 14px 44px #0006;text-align:left}.cerca-incoming-top{display:flex;gap:8px;align-items:center;justify-content:space-between}.cerca-incoming-top strong{font-size:14px}.cerca-incoming-top span{color:#9ed9ca;font-weight:400}.cerca-incoming-top button{min-height:36px;min-width:36px;padding:4px;border:0;border-radius:50%;background:#304651;color:#fff;font-size:24px}.cerca-incoming>small{display:block;color:#b3c3cb;margin-top:4px}.cerca-incoming>p{margin:14px 0;font-size:20px;line-height:1.35}.cerca-incoming-actions{display:flex;flex-wrap:wrap;gap:8px}.cerca-incoming-actions button{flex:1 1 130px;min-height:44px;border-radius:14px;padding:10px 12px;background:#304a55;border:1px solid #54717b;color:#eef9f6;font-size:14px}.cerca-incoming-actions button:first-child{background:#9ed9ca;color:#142c29;border-color:#9ed9ca}.cerca-bubble{position:relative;display:flex;gap:8px;align-items:center;margin-left:auto;min-height:48px;border-radius:24px;padding:10px 15px;background:#24443f;color:#d9fff1;border:1px solid #72c5b0;box-shadow:0 5px 20px #0004}.cerca-bubble b{display:grid;place-items:center;position:absolute;right:-4px;top:-7px;min-width:22px;height:22px;border-radius:12px;background:#b4f57c;color:#163025;font-size:12px}.cerca-bubble span{font-size:13px}.cerca-push-optin{width:100%;padding:14px;border-radius:16px;background:#28413e;box-sizing:border-box}.cerca-push-optin p{margin:0 0 10px;font-size:14px;line-height:1.5}.cerca-push-optin small{display:block;margin-top:6px}.spot-success-actions:has(.cerca-push-optin){flex-wrap:wrap}html[data-theme=light] .cerca-incoming{background:#f4fffb;color:#18392e}html[data-theme=light] .cerca-incoming>small{color:#486259}@media(min-width:768px){#cerca-inbox{top:112px;right:24px}}@media(max-height:500px){#cerca-inbox{top:16px}}
/* Keep the entire place action group in normal flow on touch tablets. */
#panel[data-mode=detail] .compact-place{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;gap:12px;align-content:start;height:auto;min-height:min-content}
#panel[data-mode=detail] .compact-place>.place-actions{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-auto-rows:max-content;align-items:stretch;gap:12px;flex:none;height:auto;min-height:min-content;margin:0;padding:0;position:static;overflow:visible}
#panel[data-mode=detail] .place-actions>button{position:static;inset:auto;align-self:stretch;width:100%;height:auto;min-height:52px;margin:0;padding:13px 12px;line-height:1.35;white-space:normal;overflow-wrap:break-word;transform:none}
#panel[data-mode=detail] .place-actions>.place-parked{grid-column:1 / -1;min-height:54px}
#panel[data-mode=detail] .place-actions>.secondary:not(.place-parked){background:transparent;color:var(--ink);border:1px solid var(--line)}
#panel[data-mode=detail] .compact-place>.place-links{position:static;flex:none;height:auto;min-height:44px;margin:0;padding-top:8px;gap:8px 16px}
@media(max-width:360px){#panel[data-mode=detail] .compact-place>.place-actions{grid-template-columns:minmax(0,1fr)}#panel[data-mode=detail] .place-actions>button{font-size:14px}}
#panel[data-mode=detail] .compact-place>.badge{justify-self:start}

/* SALGO Cerca: a prominent messaging entry in the opportunity card. */
#panel[data-mode=detail] .place-links>.place-chat{display:flex;align-items:center;gap:12px;flex:1 0 100%;width:100%;min-width:0;min-height:76px;box-sizing:border-box;margin:0;padding:14px;background:#24443f;color:#d9fff1;border:1px solid #72c5b0;border-radius:18px;text-align:left;text-decoration:none;box-shadow:0 4px 14px #0002;cursor:pointer}
#panel[data-mode=detail] .place-chat-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:15px;background:#a9e7d5;color:#173d32}
#panel[data-mode=detail] .place-chat-icon svg{width:25px;height:25px}
#panel[data-mode=detail] .place-chat-copy{display:grid;gap:4px;flex:1;min-width:0}
#panel[data-mode=detail] .place-chat-copy strong{font-size:16px;line-height:1.3;font-weight:700;overflow-wrap:anywhere}
#panel[data-mode=detail] .place-chat-copy small{font-size:12px;line-height:1.4;color:#b1d9ce;overflow-wrap:anywhere}
#panel[data-mode=detail] .place-chat-arrow{flex:0 0 18px;width:18px;height:18px;color:#a9e7d5}
#panel[data-mode=detail] .place-chat:hover{background:#2c514a}
#panel[data-mode=detail] .place-chat:active{background:#325c54}
#panel[data-mode=detail] .place-chat:focus-visible{outline:3px solid #b4f57c;outline-offset:3px}
#panel[data-mode=detail] .place-links>.place-more{margin-inline:auto;text-align:center}
html[data-theme=light] #panel[data-mode=detail] .place-chat{background:#e2f7ed;color:#163d30;border-color:#63ab91;box-shadow:0 4px 14px #163d300c}
html[data-theme=light] #panel[data-mode=detail] .place-chat-copy small{color:#3d695a}
html[data-theme=light] #panel[data-mode=detail] .place-chat-arrow{color:#28664e}
html[data-theme=light] #panel[data-mode=detail] .place-chat:hover{background:#cfeedf}

/* Messaging is available inside the enlarged parking detail. */
.spot-precision-detail .precision-footer>.place-chat{display:flex;align-items:center;gap:12px;flex:1 0 100%;width:100%;min-width:0;min-height:76px;box-sizing:border-box;margin:0;padding:14px;background:#24443f;color:#d9fff1;border:1px solid #72c5b0;border-radius:18px;text-align:left;text-decoration:none;box-shadow:0 4px 14px #0002;cursor:pointer}
.spot-precision-detail .place-chat-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:15px;background:#a9e7d5;color:#173d32}
.spot-precision-detail .place-chat-icon svg{width:25px;height:25px}
.spot-precision-detail .place-chat-copy{display:grid;gap:4px;flex:1;min-width:0}
.spot-precision-detail .place-chat-copy strong{font-size:16px;line-height:1.3;font-weight:700;overflow-wrap:anywhere}
.spot-precision-detail .place-chat-copy small{font-size:12px;line-height:1.4;color:#b1d9ce;overflow-wrap:anywhere}
.spot-precision-detail .place-chat-arrow{flex:0 0 18px;width:18px;height:18px;color:#a9e7d5}
.spot-precision-detail .place-chat:hover{background:#2c514a}
.spot-precision-detail .place-chat:active{background:#325c54}
.spot-precision-detail .place-chat:focus-visible{outline:3px solid #b4f57c;outline-offset:3px}
.spot-precision-detail .place-links>.place-more{margin-inline:auto;text-align:center}

.spot-precision-detail .precision-footer{flex-shrink:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.spot-precision-detail .precision-map-wrap{flex:1 0 120px}.spot-precision-detail .precision-footer>.place-chat{min-height:68px;padding:10px 12px}

#precision-error{margin:0;padding:10px 12px;border-radius:12px;background:#582d24;color:#ffe4d9;font-size:13px;line-height:1.4}#precision-error[hidden]{display:none}

/* Chat owns its native scroll. The grip alone moves the sheet. */
#panel[data-mode=cerca]{overflow:hidden;min-height:0}
#panel[data-mode=cerca] #panel-content{min-height:0;min-width:0;flex:1 1 0;overflow:hidden;padding:0 16px max(12px,env(safe-area-inset-bottom))}
#panel[data-mode=cerca] .cerca{display:flex;flex-direction:column;flex:1 1 0;min-height:0;height:100%;gap:8px;overflow:hidden}
.cerca>*{flex-shrink:0}
.cerca .cerca-heading{gap:12px}.cerca .cerca-heading h2{font-size:18px;line-height:1.25;margin:4px 0}
.cerca .cerca-heading>button{flex-shrink:0;min-height:44px}
.cerca>p{margin:0;font-size:12px;line-height:1.4}
.cerca .cerca-live{margin:0;font-size:12px}
.cerca .cerca-messages{flex:1 1 0;min-height:64px;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#6e9c9066 transparent;scroll-padding:12px;margin:0;padding:10px 4px 12px;gap:10px;overflow-anchor:auto}
.cerca .cerca-message{flex:0 0 auto;max-width:88%}
.cerca .cerca-message p{line-height:1.45}
.cerca .cerca-error:empty{display:none}
.cerca .cerca-options{font-size:12px;max-height:24dvh;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}
.cerca-options summary{padding:8px 0;cursor:pointer;color:var(--muted)}
.cerca-options .cerca-tools{margin:4px 0;gap:8px 16px}.cerca-options p{margin:8px 0;font-size:11px;line-height:1.4}
.cerca .cerca-quick{gap:6px}.cerca .cerca-quick button{padding:8px 10px;font-size:12px}

/* Keep messaging beneath map filters and away from the right-hand controls. */
#cerca-inbox{top:var(--cerca-top,270px);left:var(--cerca-left,16px);right:auto;width:var(--cerca-width,calc(100vw - 88px))}
#cerca-inbox .cerca-bubble{margin-left:0;min-height:44px;padding:9px 13px;font-size:14px;max-width:100%}
#cerca-inbox .cerca-bubble span{font-size:12px}

/* Give the transcript the actual remaining height, including tablet sheet padding. */
#panel[data-mode=cerca] #panel-content{display:flex;flex-direction:column}
#panel[data-mode=cerca] .cerca{height:auto;width:100%}
.cerca .cerca-messages{overflow-anchor:none;scroll-behavior:auto}
.cerca .cerca-quick{max-height:22dvh;overflow-y:auto;overscroll-behavior:contain}
@media(max-height:500px){.cerca .cerca-heading h2{font-size:15px}.cerca .cerca-options{max-height:48px}.cerca .cerca-messages{min-height:48px}.cerca .cerca-quick{max-height:60px}}
@media(max-height:500px){
 #panel[data-mode=cerca]{padding-top:8px;padding-bottom:8px}
 .cerca{gap:4px!important}
 .cerca>.tiny,.cerca>.eyebrow{display:none}
 .cerca .cerca-messages{min-height:104px}
 .cerca .cerca-quick{max-height:44px}
 .cerca .cerca-options{max-height:32px}
}

/* Keep the destination conversation within reach during navigation. */
#panel[data-mode=navigation] .journey-body>.place-chat{display:flex;align-items:center;gap:12px;flex:1 0 100%;width:100%;min-width:0;min-height:76px;box-sizing:border-box;margin:0;padding:14px;background:#24443f;color:#d9fff1;border:1px solid #72c5b0;border-radius:18px;text-align:left;text-decoration:none;box-shadow:0 4px 14px #0002;cursor:pointer}
#panel[data-mode=navigation] .place-chat-icon{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:15px;background:#a9e7d5;color:#173d32}
#panel[data-mode=navigation] .place-chat-icon svg{width:25px;height:25px}
#panel[data-mode=navigation] .place-chat-copy{display:grid;gap:4px;flex:1;min-width:0}
#panel[data-mode=navigation] .place-chat-copy strong{font-size:16px;line-height:1.3;font-weight:700;overflow-wrap:anywhere}
#panel[data-mode=navigation] .place-chat-copy small{font-size:12px;line-height:1.4;color:#b1d9ce;overflow-wrap:anywhere}
#panel[data-mode=navigation] .place-chat-arrow{flex:0 0 18px;width:18px;height:18px;color:#a9e7d5}
#panel[data-mode=navigation] .place-chat:hover{background:#2c514a}
#panel[data-mode=navigation] .place-chat:active{background:#325c54}
#panel[data-mode=navigation] .place-chat:focus-visible{outline:3px solid #b4f57c;outline-offset:3px}
#panel[data-mode=navigation] .place-links>.place-more{margin-inline:auto;text-align:center}
html[data-theme=light] #panel[data-mode=navigation] .place-chat{background:#e2f7ed;color:#163d30;border-color:#63ab91;box-shadow:0 4px 14px #163d300c}
html[data-theme=light] #panel[data-mode=navigation] .place-chat-copy small{color:#3d695a}
html[data-theme=light] #panel[data-mode=navigation] .place-chat-arrow{color:#28664e}
html[data-theme=light] #panel[data-mode=navigation] .place-chat:hover{background:#cfeedf}


#panel[data-mode=navigation] .journey-body>.place-chat{flex:none;min-height:64px;margin-bottom:14px}

/* SALGO Cerca notifications live beside the profile in the header. */
body>header nav{gap:10px}
body>header .cerca-header{position:relative;display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:#e0f2fb;color:var(--ink);cursor:pointer}
.cerca-header svg{width:22px;height:22px}
.cerca-header-count{position:absolute;top:-4px;right:-5px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 4px;box-sizing:border-box;border-radius:12px;background:#b4f57c;color:#163025;font-size:11px;line-height:1;border:2px solid var(--bg,#18232d)}
.cerca-header-count[hidden]{display:none}
.cerca-header:focus-visible{outline:3px solid #b4f57c;outline-offset:3px}
#cerca-inbox{top:var(--cerca-top,80px);left:auto;right:max(16px,env(safe-area-inset-right,0px));width:min(360px,calc(100vw - 32px))}

html[data-theme=dark] body>header .cerca-header{background:#2b4453;color:#c4edfb}

/* Keep the chat exit visible and comfortable to tap on every viewport. */
.cerca .cerca-close{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;min-width:88px;min-height:44px;padding:8px 12px;border:1px solid var(--line,#51606c);border-radius:14px;background:var(--surface,#253442);color:inherit;font:inherit;font-size:14px;cursor:pointer;touch-action:manipulation}
.cerca-close span{font-size:24px;line-height:1}
.cerca-close:focus-visible{outline:3px solid #b4f57c;outline-offset:2px}

/* Route action stays outside the scrolling transcript. */
.cerca-route{flex:0 0 auto;width:100%}.cerca-route .primary{width:100%;min-height:44px;margin:0}

/* The existing search button expands into an inline destination editor. */
.destination-search{position:relative;width:100%;min-width:0;color:#fff}.destination-search[hidden]{display:none}
.destination-search form{display:flex;align-items:center;gap:10px;background:#252d29;border:1px solid #52604e;border-radius:16px;padding:0 12px;box-shadow:0 5px 22px #0003;min-height:48px}
.destination-search input{min-width:0;flex:1;border:0;outline:none;background:transparent;color:inherit;font:inherit;font-size:16px;height:48px;width:100%}
.destination-search input::placeholder{color:#bdc7be}.destination-search form:focus-within{outline:2px solid #b9ff43;outline-offset:2px}
.destination-clear{background:transparent;color:inherit;width:44px;height:44px;flex:0 0 44px}
#destination-suggestions{max-height:min(320px,42dvh);overflow-y:auto;overscroll-behavior:contain;background:#252d29;border:1px solid #52604e;border-radius:14px;margin-top:6px;padding:5px;box-shadow:0 10px 30px #0005}
#destination-suggestions[hidden]{display:none}#destination-suggestions button{display:block;width:100%;text-align:left;padding:12px;min-height:56px;background:transparent;color:#fff;border-radius:10px}#destination-suggestions button:hover,#destination-suggestions button[aria-selected=true]{background:#3d4c37}#destination-suggestions strong{font-size:13px;line-height:1.4;display:block}#destination-suggestions small{display:block;color:#b6c7ba;margin-top:5px;font-size:11px}.destination-attribution{padding:4px 12px}
.destination-search-status{font-size:10px;background:#252d29dd;width:fit-content;border-radius:6px;margin:4px 9px;padding:2px 6px}.destination-search-status:empty{display:none}

.destination-marker{background:transparent!important;border:0!important}.destination-marker span{display:grid;place-items:center;width:34px;height:38px;border-radius:16px 16px 16px 2px;background:#b9ff43;color:#101413;box-shadow:0 3px 12px #0005;font-size:25px;border:2px solid #101413}
.destination-results{padding-top:10px}.destination-results h2{font-size:20px;line-height:1.25;margin:10px 0 12px;overflow-wrap:anywhere}.destination-meta{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin-bottom:16px}.destination-card{padding:15px;border:1px solid var(--line);border-radius:16px;margin-bottom:12px}.destination-best{border-color:#819b43;background:#b9ff4308}.destination-card h3{margin:9px 0;font-size:17px}.destination-card>strong{display:block;font-size:13px;margin-bottom:8px}.destination-card>small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-bottom:14px}.destination-card .primary,.destination-card .secondary{min-height:48px;padding:12px;justify-content:center}.destination-card button:disabled{opacity:.5;cursor:wait}.destination-chat{display:block;background:transparent;padding:12px 4px;min-height:44px;font-size:12px;text-align:center;width:100%;text-decoration:underline;text-underline-offset:4px}.destination-empty{padding:16px 0}.destination-empty h3{line-height:1.4}.destination-footnote,.destination-warning{font-size:11px!important;line-height:1.5!important;margin:12px 0!important}.destination-warning{color:#c78f40}.destination-best .eyebrow{color:#82a52e}
@media(max-width:760px),(min-width:761px) and (max-width:1366px) and (any-pointer:coarse){.has-destination #panel-content{touch-action:pan-y;user-select:text;-webkit-user-select:text}.has-destination #panel[data-position=peek] #panel-content>.destination-results{display:block}.destination-results{padding-bottom:max(16px,env(safe-area-inset-bottom))}}

.destination-search label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.has-destination .map-key{display:none}

.destination-control{min-width:0;width:100%;align-self:stretch}.destination-control>button{width:100%;height:100%}.destination-control>button[hidden]{display:none!important}
.salgo-other-actions.is-destination-editing{grid-template-columns:minmax(0,1fr)}.salgo-other-actions.is-destination-editing>.sighting-action{display:none}.destination-control.is-editing{grid-column:1/-1}
.destination-control.is-editing .destination-search{animation:destination-morph 240ms cubic-bezier(.2,.8,.2,1);transform-origin:left top}
.destination-search form{min-height:54px;box-shadow:none;border-color:#64888e;background:#253b45}.destination-search input{height:54px}.destination-search-status{background:transparent;color:var(--muted);margin:8px 0 0;padding:0;font-size:11px}
#destination-suggestions{max-height:min(260px,35dvh);box-shadow:none}.destination-result-tools{display:flex;gap:8px;align-items:stretch;margin-bottom:18px}.destination-result-tools>.destination-control{flex:1}.destination-result-tools .secondary{min-height:48px;padding:12px 15px;justify-content:center}.destination-reset{flex:0 0 44px;background:transparent;border:1px solid var(--line);border-radius:13px}.destination-result-tools:has(.is-editing)>.destination-reset{display:none}
.destination-editing #panel-content{touch-action:pan-y;scroll-padding-block:12px}.destination-editing #panel[data-position=peek] #panel-content>.salgo-action-group{display:block}
@keyframes destination-morph{from{opacity:.3;transform:scaleX(.72) translateY(3px)}to{opacity:1;transform:scaleX(1) translateY(0)}}
@media(prefers-reduced-motion:reduce){.destination-control.is-editing .destination-search{animation:none}}
.destination-search .destination-clear{width:44px;height:44px;min-height:44px;padding:0;flex:0 0 44px;background:transparent;border:0;border-radius:10px}
#destination-suggestions button{height:auto;justify-content:flex-start;line-height:1.4;font-weight:400}
