/* Parkopolis 0.4 — map first, restrained ParkingAround identity. */
:root{--ink:#202332;--muted:#626775;--paper:#fcfcfe;--line:#e6e7ed;--green:#302dd7;--lime:#26fa26;--coral:#8f5e45;--shadow:0 8px 32px #14182b19;color:var(--ink);background:#e7eaf1}
[hidden]{display:none!important}button{min-height:44px;border-radius:11px}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #302dd7;outline-offset:3px}a{color:#302dd7}.primary,button.primary{background:#302dd7;color:#fff}.primary:hover{background:#2421ae}.secondary{background:#eff0f5;color:#292b3b}.badge{background:#eef0f4;color:#454958;border-radius:6px}.badge.amber{background:#fff0d9;color:#785519}.section-label{font-size:11px;color:#626775;letter-spacing:.055em}.hint,.form-note,.muted,.fine{color:#646977}.live-dot{background:#1b963e}
.hud{top:calc(env(safe-area-inset-top,0px) + 13px);left:16px;right:16px;align-items:flex-start;background:none;color:#202332;gap:10px;z-index:5;filter:drop-shadow(0 1px 2px #fff8)}.brand{display:block;flex:0 0 auto;text-shadow:0 1px 3px #fff,0 0 12px #fff}.brand strong{font-size:23px;letter-spacing:-1.05px;font-weight:850;line-height:1}.brand>span{display:flex;align-items:center;gap:5px;font-size:9px;margin-top:3px;letter-spacing:0}.brand img{object-fit:contain;filter:brightness(0) saturate(100%);width:105px;height:21px}.metrics{background:none;box-shadow:none;border:0;padding:0;gap:14px;color:#202332;border-radius:0;text-align:right;backdrop-filter:none;text-shadow:0 1px 3px #fff,0 0 9px #fff}.metrics strong{font-size:15px;font-weight:800;color:#202332;font-variant-numeric:tabular-nums}.metrics small{color:#3f4450;font-size:10px;font-weight:600}.context-bar{top:calc(env(safe-area-inset-top,0px) + 74px);left:16px;display:flex;gap:7px;z-index:6}.role-label{background:#ffffffdb;border:1px solid #ffffffa0;box-shadow:0 2px 8px #14182b0a;padding:0 6px;backdrop-filter:blur(8px);border-radius:10px}.role-label select{min-height:44px;font-size:12px;color:#202332;background:transparent;max-width:180px;padding:8px}.language-label select{min-height:44px;background:#ffffffdb;color:#202332;border:0;border-radius:10px;padding:8px;font-size:12px}.world-label{top:calc(env(safe-area-inset-top,0px) + 125px);left:19px;font-size:10px;text-shadow:0 1px 3px white;color:#333947}.view-tools{position:fixed;top:calc(env(safe-area-inset-top,0px) + 74px);right:12px;left:auto;bottom:auto;display:flex;flex-direction:column;display:grid;grid-template-columns:repeat(2,44px);gap:6px;z-index:8}.view-tools button{width:44px;height:44px;min-height:44px;border-radius:13px;background:#ffffffdf;color:#242636;box-shadow:0 2px 12px #14182b13;padding:10px;border:1px solid #ffffff9c;backdrop-filter:blur(8px)}.view-tools button:hover{background:#fff}.view-tools button[aria-pressed=true]{background:#302dd7;color:white}.view-tools svg{width:22px;height:22px}.map-caption,.mode-switch{display:none}
.bottom-ui{padding:0 8px;left:0;right:0;bottom:0;width:auto;max-width:none;z-index:10}.sheet{background:#fcfcfe;border-radius:22px 22px 0 0;box-shadow:0 -4px 30px #17192d12;max-height:44dvh;border:1px solid #ffffff8c;border-bottom:0}.sheet-handle{height:19px;min-height:19px;background:transparent}.sheet-handle>span:first-child{background:#d3d5df;width:32px;height:3px}.sheet-heading{padding:0 16px 12px;display:flex;align-items:center;gap:10px}.sheet-heading>div{flex:1}.sheet-heading small{display:none}.sheet-heading h1{font-size:20px;letter-spacing:-.5px}.sheet-heading .badge{font-size:10px;font-weight:500;background:transparent;color:#747887;padding:0}#panel-close{font-size:23px;font-weight:400;background:#f0f1f6;width:44px;padding:0;line-height:1}.panel-content{padding:0 16px 20px;overscroll-behavior:contain;overflow:auto}.sheet.collapsed .sheet-heading{padding-bottom:8px}.sheet.collapsed #panel-close{display:none}.dock{background:#fcfcfe;color:#6d7280;border-top:1px solid #e8e9ef;box-shadow:none;padding:5px 6px calc(5px + var(--safe-bottom));gap:3px}.dock button{background:none;color:#737887;border-radius:12px;min-height:54px;font-size:10px;padding:5px 2px;gap:2px}.dock button[aria-current=page]{background:#efeffd;color:#302dd7}.dock .nav-icon svg{width:21px;height:21px}.nav-count{background:#e4e4fa;color:#302dd7;font-size:8px;min-width:20px;right:8px}.lot-row{border-radius:11px;background:#f6f7fa;border:1px solid #ececf1}.lot-row.selected{border-color:#b5b3f0;background:#f0effc}.lot-symbol{background:#e5e4fc;color:#302dd7}.lot-stats{background:#f3f4f8;border-radius:10px;color:#3e4352}.lot-stats b{color:#232638}.spot-grid{gap:6px}.spot{border:1px dashed #cfd2dd;background:#f7f8fa;border-radius:9px;min-height:66px}.spot.defined{border:1px solid #d5d8e2;background:#fff}.spot.selected{outline:2px solid #302dd7;outline-offset:1px}.spot.occupied{background:#353b4b;color:white}.sensor-dot{background:#26bb50}.spot-detail{background:#f5f5fc;border:1px solid #e3e3f2;border-radius:12px;padding:14px}.spot-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.spot-actions button{flex:1;min-width:110px;font-size:12px}.equipment-list{display:grid;gap:7px;margin:10px 0}.equipment-row{display:flex;align-items:center;gap:12px;padding:12px;background:#f6f7fa;border:1px solid #e6e7ee;border-radius:10px}.equipment-row>span{flex:1}.equipment-row small{display:block;color:#717584;margin-top:3px}.equipment-row .installed{color:#287545;font-size:11px}.form-grid input,.form-grid select,.field>select,.field>input{border:1px solid #dbdde6;background:#fff;border-radius:9px;color:#252838;font-size:16px;min-height:44px}.tool-grid{grid-template-columns:repeat(3,1fr)}.tool-grid button.active,.segmented button.active{background:#302dd7;color:white}.sensor-reference{background:#f3f4f7}.event-list p{font-size:12px}
/* Phone: a compact parking service, not nested dashboard banners. */
.sheet[data-panel=phone]{background:#fff}.sheet[data-panel=phone] .sheet-heading{padding-bottom:9px}.phone-shell{padding:0;border:0;border-radius:0;box-shadow:none;background:#fff}.phone-brand{display:flex;align-items:center;justify-content:space-between;padding:0 0 16px;border-bottom:1px solid #ebecf1;margin:0 0 18px;background:transparent;color:#7c8090}.phone-brand img{width:132px;height:25px;filter:brightness(0) saturate(100%);opacity:.85}.phone-brand span{font-size:10px;letter-spacing:.02em}.phone-shell .app-banner{display:flex;background:none;color:#252838;padding:0;margin:0 0 18px;box-shadow:none;min-height:0;border-radius:0;gap:10px}.phone-shell .app-monogram{display:none}.phone-shell .app-banner strong{font-size:19px;letter-spacing:-.5px;font-weight:750}.phone-shell .app-banner small{font-size:11px;color:#787c8b;margin-top:5px}.phone-shell .app-banner>.badge{margin-left:auto;background:#eff8f1;color:#257442;letter-spacing:0;font-size:9px}.phone-shell .section-label{margin-top:19px;font-size:11px;letter-spacing:.02em;color:#454a59}.phone-shell .ticket{background:#fafaff;color:#202332;border:1px solid #dfdfef;border-top:3px solid #302dd7;border-radius:12px;padding:16px;box-shadow:none;margin-bottom:18px}.phone-shell .ticket-top{font-size:9px;letter-spacing:.06em;color:#696e7e}.phone-shell .ticket h2{font-size:20px;margin-top:16px;letter-spacing:-.5px}.phone-shell .plate{display:inline-flex;background:#fff;color:#242637;border:1px solid #bbbfd0;border-left:7px solid #302dd7;border-radius:5px;font:700 21px ui-monospace,monospace;padding:8px 11px;letter-spacing:.1em;margin:16px 0}.phone-shell .ticket-times{background:none;border-top:1px dashed #d8d9e7;padding-top:14px;gap:20px}.phone-shell .ticket-times span{font-size:11px;color:#797e8c}.phone-shell .ticket-times b{display:block;color:#2c3041;font-size:18px;margin-top:4px}.phone-shell .data-strip{background:#f7f8fb;color:#2a2e3e;border-radius:10px;padding:15px 8px;margin:15px 0;border:0}.phone-shell .data-strip b{font-size:22px;color:#2c3042}.phone-shell .data-strip small{color:#7a7e8e;font-size:10px}.phone-shell .network-card,.phone-shell .reservation-note{background:none;border-top:1px solid #ebecf1;border-radius:0;padding:18px 0;margin:18px 0}.phone-shell .network-card strong{font-size:13px}.phone-shell .network-card p{font-size:11px;color:#797e8b;margin-top:5px}.phone-shell .network-card button{font-size:11px;white-space:nowrap}.phone-shell .telemetry{background:none;border:0;border-radius:0}.phone-shell .telemetry>div{padding:11px 0;border-bottom:1px solid #f0f1f5}.phone-shell .telemetry time{font-size:10px;color:#8a8e9d}.phone-shell .resident-card{background:#fafaff;color:#252838;border:1px solid #e5e5ef;border-radius:12px;padding:17px;box-shadow:none}.phone-shell .resident-card h2{font-size:21px;margin:12px 0 5px}.phone-shell .resident-card p{font-size:12px;color:#757b88}.phone-shell form{margin-top:16px}.phone-shell .text-button{color:#302dd7;font-size:12px}.phone-shell .button-row{margin-top:14px}.phone-shell .hint{font-size:11px;line-height:1.6}.phone-shell .lot-stats{margin-bottom:20px}
/* Driving: clear center; controls occupy bottom edge only. */
#cockpit{position:fixed;inset:0;z-index:7;pointer-events:none;background:none;border:0;padding:0;width:auto;backdrop-filter:none}.drive-readout{position:absolute;left:16px;right:70px;top:calc(env(safe-area-inset-top,0px) + 74px);text-shadow:0 1px 3px #fff,0 0 12px #fff;color:#202332;max-width:340px}.drive-readout strong{font-size:15px;font-weight:800}.drive-readout p{font-size:11px;line-height:1.4;max-width:280px;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.drive-controls{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:16px;right:16px;pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:9px}.drive-destination{max-width:290px;width:100%}.drive-destination select{width:100%;min-height:44px;border:1px solid #fff8;border-radius:13px;background:#fffffff0;color:#202332;padding:10px 14px;font-size:13px;box-shadow:0 2px 12px #14182b12}.drive-buttons{display:flex;align-items:center;justify-content:center;gap:9px;background:#ffffffc9;border:1px solid #fff9;backdrop-filter:blur(10px);padding:7px;border-radius:20px;box-shadow:0 4px 24px #14182b1c}.drive-buttons button{width:48px;height:48px;min-height:48px;padding:12px;border-radius:13px;background:#f1f2f9;color:#292d3f;display:flex;align-items:center;justify-content:center}.drive-buttons button svg{width:24px;height:24px}.drive-buttons #drive-go,.drive-buttons #drive-enter{background:#302dd7;color:#fff}.drive-buttons #drive-stop{background:#292d3f;color:white}.first-person .view-tools{display:flex;flex-direction:column}.first-person .context-bar,.first-person .world-label,.first-person .city-only,.first-person .dock,.first-person .sheet.collapsed{display:none}.first-person .bottom-ui{pointer-events:none;bottom:0}.first-person .sheet:not(.collapsed){pointer-events:auto;max-height:66dvh;margin-bottom:0;border-radius:22px 22px 0 0}.first-person.panel-open .drive-controls{display:none}.first-person.panel-open #cockpit{z-index:4}.first-person #toasts{top:calc(env(safe-area-inset-top,0px) + 148px);left:16px;right:70px;max-width:290px}.toast{background:#252939;color:white;border-radius:12px;border-left:3px solid #26fa26;font-size:12px;box-shadow:0 4px 22px #13162820}.toast.error{border-left-color:#f6b087;background:#35313a}.warning{background:#fff5e7;color:#826127}#toasts{top:calc(env(safe-area-inset-top,0px) + 175px);max-width:320px;z-index:30}dialog{color:#242837;border:0;border-radius:20px;background:white;box-shadow:0 16px 70px #17192d33}dialog::backdrop{background:#1a1b304d}#confirm-dialog p{margin:15px 0}#welcome p{font-size:13px;margin-top:14px}.welcome-steps li b{color:#302dd7;background:#ededfc}.welcome-steps strong{font-size:13px}.welcome-steps span{font-size:12px}
@media(min-width:760px){.hud{left:24px;right:24px;top:calc(env(safe-area-inset-top,0px) + 20px)}.brand strong{font-size:27px}.brand img{width:124px;height:24px}.metrics strong{font-size:19px}.context-bar{left:24px;top:91px}.view-tools{right:24px;top:91px}.world-label{left:27px;top:144px}.bottom-ui{left:auto;right:20px;width:365px;max-width:365px;bottom:20px;padding:0}.sheet{max-height:56dvh}.dock{border-radius:0 0 18px 18px}.first-person .bottom-ui{right:20px;bottom:20px}.first-person .sheet:not(.collapsed){border-radius:20px;max-height:70dvh}.drive-readout{left:24px;top:95px}.drive-controls{left:24px;right:auto;bottom:24px;align-items:flex-start}.first-person #toasts{top:170px;left:24px}}
@media(max-width:390px){.role-label select{max-width:120px}.hud{left:12px;right:12px}.brand strong{font-size:20px}.brand img{width:96px}.metrics{gap:10px}.metrics strong{font-size:13px}.metrics .reputation{display:none}.context-bar{left:12px}.view-tools{right:10px;gap:5px}.view-tools button{width:44px;height:44px}.drive-controls{left:8px;right:8px}.drive-buttons{gap:6px}.drive-buttons button{width:44px;height:44px;min-height:44px;padding:10px}}
@media(orientation:landscape) and (max-height:600px){.hud{left:calc(env(safe-area-inset-left,0px) + 15px);right:calc(env(safe-area-inset-right,0px) + 15px);top:10px}.brand strong{font-size:20px}.metrics strong{font-size:14px}.context-bar{top:67px;left:calc(env(safe-area-inset-left,0px) + 15px)}.world-label{top:117px}.view-tools{right:calc(env(safe-area-inset-right,0px) + 12px);left:auto;top:67px;bottom:auto;display:grid;grid-template-columns:repeat(2,44px);gap:5px}.first-person .view-tools{display:flex;flex-direction:column}.bottom-ui{width:330px;max-width:43vw;left:auto;right:calc(env(safe-area-inset-right,0px) + 120px);bottom:0;padding:0}.sheet{max-height:55dvh}.first-person .bottom-ui{right:calc(env(safe-area-inset-right,0px) + 70px);width:330px;max-width:48vw;bottom:8px}.first-person .sheet:not(.collapsed){max-height:80dvh;border-radius:18px}.drive-readout{top:65px;left:calc(env(safe-area-inset-left,0px) + 15px);max-width:300px}.drive-readout p{font-size:10px}.drive-controls{left:calc(env(safe-area-inset-left,0px) + 15px);right:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 10px);align-items:flex-start}.drive-buttons{padding:5px;gap:6px}.drive-buttons button{width:44px;height:44px;min-height:44px}.first-person #toasts{top:120px;left:20px;max-width:280px}.first-person .drive-destination{max-width:260px}.sheet-heading h1{font-size:18px}.sheet-heading{padding-bottom:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Fixed optical centers, paired map tools; gestures stay on the scene. */
.view-tools button{display:grid;place-items:center;padding:0;flex:0 0 44px;line-height:1;touch-action:manipulation}
.view-tools button svg{display:block;width:23px;height:23px;margin:0;pointer-events:none;flex:none}
.view-tools [data-view=zoom-in]{order:1}.view-tools [data-view=zoom-out]{order:2}.view-tools [data-view=rotate]{order:3}.view-tools [data-view=roof]{order:4}
.view-tools #lighting-toggle{order:5}.view-tools #sound-toggle{order:6}.view-tools #mode-person,.view-tools #mode-city{order:7}.view-tools #follow-car{order:8}.view-tools #help{order:9}
.view-tools{max-height:calc(100dvh - 190px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.product-image{display:block;width:80px;height:60px;object-fit:contain;flex:none;background:#fff;border-radius:8px;padding:4px}
.equipment-row.product-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 0}
.product-card .product-image{width:72px;height:60px}.product-copy{display:block;min-width:0;text-align:left;overflow-wrap:anywhere}.product-copy strong{display:block;font-size:12px;line-height:1.4}.product-copy small{display:block;font-size:10px;line-height:1.45;margin-top:4px;opacity:.85}.product-card .product-caption{font-size:9px;color:var(--muted)}
.spot-actions .product-action{display:flex;align-items:center;gap:12px;width:100%;padding:10px;text-align:left;white-space:normal}.product-action .product-copy{flex:1}.product-action small{color:inherit}.product-card>b,.product-card>.installed{font-size:11px;white-space:nowrap}
#toasts .toast{border-radius:12px;background:#fcfcfe;color:#202332;border:1px solid #e6e7ed;border-left:4px solid #302dd7;box-shadow:var(--shadow);font-size:12px;line-height:1.45;padding:12px 14px}#toasts .toast.error{border-left-color:#b84338;background:#fff8f6;color:#76352f}
@media(max-width:360px){.equipment-row.product-card{grid-template-columns:60px minmax(0,1fr);gap:8px}.product-card .product-image{width:60px;height:54px}.product-card>b,.product-card>.installed{grid-column:2}.product-image{width:64px;height:54px}}
/* Explicit viewport geometry prevents stale fixed-bottom Safari bounds. */
html,body{height:var(--viewport-height,100dvh);min-height:0;overscroll-behavior:none}
#scene{inset:auto;left:0;right:0;top:var(--viewport-top,0px);height:var(--viewport-height,100dvh)}
#scene canvas{width:100%;height:100%}
body #cockpit{top:var(--ui-top,0px);bottom:auto;height:var(--ui-height,100dvh)}
body .bottom-ui,body.first-person .bottom-ui{bottom:auto;top:calc(var(--ui-top,0px) + var(--ui-height,100dvh) - var(--bottom-ui-height) - var(--float-bottom));margin:0}
/* Floating map furniture. The transparent safe-area gap belongs to the map. */
:root{background:#acc7ac;--viewport-height:100dvh;--viewport-top:0px;--ui-height:100dvh;--ui-top:0px;--float-gap:10px;--float-bottom:max(8px,env(safe-area-inset-bottom,0px));--bottom-ui-height:52dvh}
.bottom-ui,.first-person .bottom-ui{left:max(10px,env(safe-area-inset-left,0px));right:max(10px,env(safe-area-inset-right,0px));bottom:var(--float-bottom);width:auto;max-width:none;padding:0;display:grid;gap:var(--float-gap);background:transparent}
.sheet,.first-person .sheet:not(.collapsed){min-width:0;max-height:min(48dvh,calc(100dvh - 240px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));border:1px solid #ffffffbd;border-radius:22px;box-shadow:0 12px 36px #14182b26;margin:0}
.sheet.collapsed{display:none}.sheet-heading>div,.panel-content{min-width:0;min-height:0}.sheet-handle{height:44px;min-height:44px}.sheet-heading{flex-shrink:0}.panel-content{padding:4px 14px 18px;scroll-padding:12px}.sheet-heading h1{overflow-wrap:anywhere}
.dock{border:1px solid #ffffffb8;border-radius:22px;background:#fcfcfef0;backdrop-filter:blur(16px);box-shadow:0 8px 30px #14182b26;padding:6px;gap:4px;grid-template-columns:repeat(4,minmax(0,1fr))}
.dock button{min-width:0;min-height:54px;padding:5px 3px;font-size:11px;white-space:normal;overflow-wrap:anywhere;position:relative;border-radius:16px;transition:background .18s,color .18s,transform .18s}
.dock button[aria-current=page]{background:#302dd7;color:white}.dock button[aria-current=page] .nav-count{background:#26fa26;color:#202332}.dock .nav-icon{display:grid;place-items:center}.nav-count{right:2px;top:2px}.dock button:active{transform:scale(.96)}
.view-tools{max-height:max(44px,calc(100dvh - var(--bottom-ui-height) - 104px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)))}
#toasts,.first-person #toasts{top:auto;bottom:calc(var(--float-bottom) + var(--bottom-ui-height) + 10px);left:max(12px,env(safe-area-inset-left,0px));right:120px;margin:0;max-width:340px;max-height:max(44px,calc(100dvh - var(--bottom-ui-height) - 165px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));overflow:auto;align-items:stretch}
#toasts .toast{flex-shrink:0;overflow-wrap:anywhere}.first-person:not(.panel-open) #toasts{bottom:calc(env(safe-area-inset-bottom,0px) + 155px);max-height:calc(100dvh - 310px)}
/* Every catalog entry has the same media / copy / price / action geometry.
   Full-width cards never compete for the remnants of a flex row. */
.spot-actions,.equipment-list{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0}
.spot-actions button{min-width:0;max-width:100%}
.product-card,.equipment-row.product-card,.spot-actions .product-action{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);grid-template-areas:'media copy' 'price action';gap:12px;align-items:start;min-width:0;width:100%;padding:14px;border:1px solid #dedfed;border-radius:16px;background:#fff;color:var(--ink);text-align:left;white-space:normal;box-shadow:0 2px 5px #14182b05}
.product-card>*{min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:normal}
.product-card .product-media{grid-area:media;display:grid;place-items:center;align-self:start;border-radius:10px;background:#f4f5fa;padding:6px;aspect-ratio:4/3}
.product-card .product-image{width:100%;height:auto;max-height:100%;aspect-ratio:4/3;object-fit:contain;background:#fff;padding:3px;border-radius:6px}
.product-card .product-copy{grid-area:copy;align-self:center}.product-card .product-title{font-size:14px;line-height:1.4}.product-card .product-caption{font-size:10px;line-height:1.5;color:#626775;opacity:1}
.product-card .product-price{grid-area:price;font-size:14px;line-height:1.5;font-weight:800;white-space:normal;align-self:center}
.product-card .product-affordance{grid-area:action;justify-self:end;align-self:center;display:flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:8px;border-radius:12px;background:#f0effd;color:#302dd7;font-size:11px;line-height:1.4}
.product-card.primary{border-color:#aaa8ef;background:#f7f7ff}.product-card.primary .product-affordance{background:#302dd7;color:#fff}.product-card.is-selected{border-color:#302dd7;box-shadow:inset 3px 0 #302dd7}.product-card .installed{background:#edf8ef;color:#287545}
.product-action:focus-visible{outline:3px solid #302dd7;outline-offset:3px}.product-action:hover{background:#f1f0ff;border-color:#302dd7}.product-action:active{transform:translateY(1px)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.dock button:hover .nav-icon{transform:translateY(-2px)}.nav-icon{transition:transform .18s}.product-action .product-affordance{transition:transform .18s}.product-action:hover .product-affordance{transform:translateX(2px)}}
@media(min-width:760px){.bottom-ui,.first-person .bottom-ui{left:auto;right:max(20px,env(safe-area-inset-right,0px));width:390px;max-width:calc(100vw - 40px);bottom:var(--float-bottom)}.sheet,.first-person .sheet:not(.collapsed){max-height:min(62dvh,calc(100dvh - 235px))}.dock{width:100%}.view-tools{max-height:max(44px,calc(100dvh - var(--bottom-ui-height) - 120px))}#toasts,.first-person #toasts{left:24px;right:auto;bottom:calc(var(--float-bottom) + 10px);max-height:calc(100dvh - 180px);width:min(320px,calc(100vw - 460px))}.first-person:not(.panel-open) #toasts{bottom:180px}.first-person .view-tools{max-height:calc(100dvh - 120px)}}
@media(orientation:landscape) and (max-height:600px){.bottom-ui,.first-person .bottom-ui{left:auto;right:calc(env(safe-area-inset-right,0px) + 116px);width:min(360px,46vw);max-width:none;bottom:var(--float-bottom)}.sheet,.first-person .sheet:not(.collapsed){max-height:calc(100dvh - 158px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:18px}.sheet-handle{display:none}.sheet-heading{padding:10px 12px}.dock button{min-height:44px;font-size:10px}.dock{border-radius:18px}.view-tools,.first-person .view-tools{top:67px;max-height:calc(100dvh - 80px - env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(2,44px)}.role-label select{min-height:44px}.first-person .sheet:not(.collapsed){max-height:calc(100dvh - 85px)}#toasts,.first-person #toasts,.first-person:not(.panel-open) #toasts{left:calc(env(safe-area-inset-left,0px) + 12px);right:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);width:calc(50vw - 130px);max-width:260px;max-height:calc(100dvh - 155px)}.first-person:not(.panel-open) #toasts{bottom:155px;max-height:calc(100dvh - 280px)}.drive-readout{max-width:calc(50vw - 110px)}}
@media(max-width:360px){.product-card,.equipment-row.product-card,.spot-actions .product-action{gap:10px;padding:12px}.product-card .product-title{font-size:13px}.drive-buttons{flex-wrap:wrap;max-width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
