/* Gameplay lives in the centre; persistent HUD occupies the lower corners. */
.roam-mode{--hud-left:max(16px,env(safe-area-inset-left));--hud-right:max(16px,env(safe-area-inset-right));--hud-bottom:max(24px,env(safe-area-inset-bottom));--radar-size:176px}
.roam-mode .topbar,.roam-mode .district-badge,.roam-mode .world-tool,.roam-mode .life-launch,.roam-mode .destinations-button,.roam-mode .roam-instructions,.roam-mode .view-button{display:none!important}
.roam-mode .roam-status{top:auto;bottom:var(--hud-bottom);left:calc(var(--hud-left) + var(--radar-size) + 16px);width:180px;max-width:22vw;padding:10px;background:linear-gradient(100deg,#071c24c9,#071c2459);border:0;border-radius:10px;box-shadow:none;backdrop-filter:none;pointer-events:none}
.roam-mode:not(.minimap-enabled) .roam-status,.roam-mode.indoor-mode .roam-status{left:calc(var(--hud-left) + 56px)}
.roam-mode.indoor-mode .roam-status{left:var(--hud-left);width:210px}
.roam-mode .roam-status .roam-kicker,.roam-mode .road-warning{display:none}
.roam-mode .roam-status strong{font-size:14px;margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roam-mode .roam-status>span:nth-child(3){font-size:10px;min-height:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:4px 0 7px}
.roam-mode .roam-status .roam-speed{font-size:22px;margin:0 0 6px}
.roam-mode .roam-meter{margin-top:5px;font-size:8px;gap:6px}.roam-mode .roam-meter span{width:34px}.roam-mode .roam-meter i{height:4px}
.roam-mode #wantedLevel{font-size:11px;color:#ffce78;margin-top:6px}.roam-mode #wantedLevel:empty{display:none}
/* A circular, north-up street map, with no rectangular header or card background. */
.roam-mode .game-minimap{left:var(--hud-left);top:auto;bottom:var(--hud-bottom);width:var(--radar-size);border:0;border-radius:0;overflow:visible;background:none;box-shadow:none;z-index:19}
.roam-mode .game-minimap[hidden]{display:none}
.game-minimap .minimap-open{display:block;position:relative;width:100%;aspect-ratio:1;min-height:0;padding:0;border:3px solid #dcebe2b3;border-radius:50%;background:#dcded3;overflow:hidden;box-shadow:0 3px 18px #0006}
.game-minimap .minimap-open canvas{display:block;width:100%;height:100%;border-radius:50%}
.game-minimap .minimap-toggle{position:absolute;right:-5px;top:-5px;width:40px;height:40px;min-height:40px;border:1px solid #d7e6df77;border-radius:50%;background:#102c35ec;font-family:inherit;font-size:23px;font-weight:500;box-shadow:0 2px 8px #0004;z-index:2}
.game-minimap .minimap-places{display:block;min-height:28px;width:100%;background:none;padding:4px 0 0;text-shadow:0 1px 4px #000;font-size:11px;font-weight:700}
.game-minimap .minimap-caption{display:block;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roam-mode .game-minimap.collapsed{width:44px;height:44px}.game-minimap.collapsed .minimap-toggle{inset:0;width:44px;height:44px}
.game-minimap button:focus-visible{outline:3px solid #ffcf66;outline-offset:3px}
/* One menu replaces the header and the scattered secondary buttons. */
.roam-mode .mobile-menu-toggle{display:block;position:fixed;z-index:110;top:auto;right:var(--hud-right);bottom:var(--hud-bottom);width:46px;height:46px;border:1px solid #f1f7e87a;border-radius:50%;background:#102c35d9;color:#fff;font-size:23px;cursor:pointer}
.roam-mode .mobile-game-menu:not(.hidden){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));position:fixed;z-index:105;right:var(--hud-right);top:auto;bottom:calc(var(--hud-bottom) + 56px);width:min(320px,calc(100vw - 32px));max-height:calc(100dvh - 96px);overflow:auto;gap:7px;padding:12px;border:1px solid #ffffff55;border-radius:16px;background:#102a2af7;box-shadow:0 16px 50px #0005;align-content:start}
.game-menu-summary{grid-column:1/-1;color:#e3d39d;font-size:12px;line-height:1.6;padding:6px 4px 10px;border-bottom:1px solid #ffffff26}
.roam-mode .roam-chat-toggle{display:block;bottom:var(--hud-bottom);right:calc(var(--hud-right) + 56px);width:46px;height:46px;padding:0;border-radius:50%;font-size:0;background:#102c35d9}
.roam-mode .roam-chat-toggle::after{content:'💬';font-size:24px}
.roam-mode .roam-prompt{left:auto;right:var(--hud-right);bottom:calc(var(--hud-bottom) + 58px);transform:none;min-width:0;width:200px;max-width:24vw;padding:8px 10px;background:#102c35bf;font-size:11px;box-shadow:none;border-color:#ffffff35}
.roam-mode .roam-prompt:not(.available),.roam-mode .roam-hud[data-mode='drive'] .roam-prompt{display:none}
.roam-mode .vehicle-button{right:var(--hud-right);bottom:calc(var(--hud-bottom) + 112px);min-width:0;width:200px;max-width:24vw;min-height:44px;padding:8px;border-radius:12px;background:#173e4ac9;box-shadow:none}
.roam-mode .roam-hud[data-mode='drive'] .vehicle-button{bottom:calc(var(--hud-bottom) + 58px)}
.roam-mode .navigation-card{top:auto;left:calc(var(--hud-left) + var(--radar-size) + 16px);bottom:calc(var(--hud-bottom) + 148px);transform:none;width:240px;padding:8px 10px;background:#102c35cc;border-radius:10px}
.roam-mode .navigation-card .nav-title{font-size:12px}.roam-mode .navigation-card p{font-size:11px;margin:3px 0}.roam-mode .navigation-card .nav-arrow{font-size:24px}
.roam-mode .destination-panel{top:16px;bottom:80px;left:auto;right:var(--hud-right);width:min(360px,calc(100vw - 32px));z-index:120}
.roam-mode .right-stack.roam-chat-open{top:16px;bottom:82px;right:var(--hud-right);left:auto;width:min(350px,calc(100vw - 32px))}
.roam-mode .life-drawer,.roam-mode .world-panel{top:16px;bottom:82px;max-height:none}
.roam-mode.game-menu-open .roam-prompt,.roam-mode.game-menu-open .vehicle-button{visibility:hidden}
@media(max-width:1050px),(max-height:600px){.roam-mode{--radar-size:140px;--hud-left:max(12px,env(safe-area-inset-left));--hud-right:max(12px,env(safe-area-inset-right));--hud-bottom:max(20px,env(safe-area-inset-bottom))}.roam-mode .roam-status{width:155px;padding:7px}.roam-mode .roam-status strong{font-size:12px}.roam-mode .navigation-card{width:190px;bottom:calc(var(--hud-bottom) + 130px)}}
/* Touch layout: movement left, actions right, a free centre in both orientations. */
.touch-device.roam-mode{--radar-size:112px;--hud-left:var(--safe-left);--hud-right:var(--safe-right);--hud-bottom:var(--safe-bottom);--thumb-size:112px}
.touch-device.roam-mode .touch-controls{z-index:25}
.touch-device.roam-mode .joystick-pad{width:var(--thumb-size);height:var(--thumb-size)}
.joystick-pad::after{content:'MOVE';position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:8px;letter-spacing:.1em;color:#d9e9e0;pointer-events:none}
[data-travel='drive'] .joystick-pad::after{content:'STEER / DRIVE'}
.touch-device .touch-right{grid-template-columns:64px 76px;gap:8px}
.touch-device .touch-turn button{width:48px;height:48px}
.touch-device .touch-interact{width:76px;height:64px;font-size:12px}
.touch-device .touch-extras button{min-width:64px;min-height:52px;font-size:12px}
.touch-device.roam-mode .game-minimap{left:var(--safe-left);top:auto;bottom:calc(var(--safe-bottom) + 140px);width:var(--radar-size)}
.touch-device .game-minimap .minimap-open canvas{height:100%}
.touch-device .game-minimap .minimap-toggle{width:44px;height:44px;min-height:44px;top:-8px;right:-8px;font-size:23px}
.touch-device .game-minimap .minimap-places{min-height:26px;font-size:10px}
.touch-device .game-minimap .minimap-caption{font-size:10px;padding:0}
.touch-device.roam-mode .game-minimap.collapsed{width:44px;height:44px}
.touch-device .game-minimap.collapsed .minimap-toggle{inset:0}
.touch-device.roam-mode .roam-status,.touch-device.roam-mode:not(.minimap-enabled) .roam-status,.touch-device.roam-mode.indoor-mode .roam-status,.touch-device.roam-mode.map-play .roam-status{left:var(--safe-left);top:var(--safe-top);bottom:auto;width:190px;max-width:calc(50vw - 20px);padding:8px;background:#071c248c;border:0;border-radius:10px}
.touch-device.roam-mode .roam-status strong{font-size:12px}
.touch-device.roam-mode .roam-status>span:nth-child(3){display:none}
.touch-device.roam-mode .roam-status .roam-speed{font-size:20px;margin:3px 0}
.touch-device.roam-mode .roam-status .roam-meter{display:flex;width:auto;margin:4px 0 0}
.touch-device.roam-mode .roam-meter span{width:32px;font-size:8px}
.touch-device.roam-mode .roam-status #wantedLevel{font-size:10px;margin-top:3px}
.touch-device.roam-mode .mobile-menu-toggle,.touch-device.roam-mode .roam-chat-toggle,.touch-device.roam-mode .view-mode-button{top:auto;bottom:calc(var(--safe-bottom) + 132px);width:44px;height:44px;border-radius:50%}
.touch-device.roam-mode .mobile-menu-toggle{right:var(--safe-right)}
.touch-device.roam-mode .roam-chat-toggle{display:block!important;right:calc(var(--safe-right) + 52px);font-size:0;padding:0}
.touch-device.roam-mode .view-mode-button{right:calc(var(--safe-right) + 104px)}
.touch-device.roam-mode .vehicle-button,.touch-device.roam-mode .roam-hud[data-mode='drive'] .vehicle-button{right:var(--safe-right);bottom:calc(var(--safe-bottom) + 188px);width:148px;max-width:none;min-height:48px;font-size:11px}
.touch-device.roam-mode .roam-hud[data-mode='drive'] .vehicle-button{display:none!important} /* Exit is the primary action while driving. */
.touch-device.roam-mode .roam-prompt,.touch-device.roam-mode.indoor-mode .roam-prompt{left:auto;right:var(--safe-right);bottom:calc(var(--safe-bottom) + 246px);transform:none;width:148px;max-width:none;min-width:0;padding:8px;font-size:11px;pointer-events:none}
.touch-device.roam-mode .navigation-card,.touch-device.roam-mode.map-play .navigation-card{left:auto;right:var(--safe-right);top:var(--safe-top);bottom:auto;width:220px;max-width:calc(50vw - 20px);padding:8px;transform:none}
.touch-device.roam-mode .navigation-card .nav-title{font-size:11px;padding-right:40px;overflow-wrap:anywhere}
.touch-device.roam-mode .navigation-card .nav-arrow{display:none}
.touch-device.roam-mode .navigation-card p{font-size:10px;max-width:none;white-space:normal;margin:4px 0}
.touch-device.roam-mode .navigation-card .nav-cancel{width:44px;height:44px}
.touch-device.roam-mode .navigation-card .nav-auto{min-height:44px;font-size:11px}
.touch-device.roam-mode .connection-status,.touch-device.roam-mode .road-warning{display:none!important}
.touch-device.roam-mode .touch-look{left:25%;right:25%;top:25%;bottom:140px}
.touch-device.roam-mode.map-play .overhead-tools{left:var(--safe-left);bottom:calc(var(--safe-bottom) + var(--thumb-size) + 48px);flex-direction:column}
.touch-device.roam-mode .mobile-game-menu:not(.hidden){top:calc(var(--visible-top,0px) + var(--safe-top));bottom:auto;right:var(--safe-right);max-height:calc(var(--visible-height,100dvh) - var(--safe-top) - var(--safe-bottom));width:min(360px,calc(100vw - var(--safe-left) - var(--safe-right)))}
.game-menu-close{grid-column:1/-1;justify-content:space-between;font-weight:700}
.roam-mode.game-menu-open .mobile-menu-toggle,.touch-device.mobile-panel-open .mobile-menu-toggle{visibility:hidden}
.touch-device.mobile-paused .game-minimap,.touch-device.mobile-paused .roam-status,.touch-device.mobile-paused .navigation-card,.touch-device.mobile-paused .overhead-tools,.touch-device.mobile-paused .view-mode-button,.touch-device.mobile-paused .roam-chat-toggle{visibility:hidden}
.touch-device.roam-mode .life-drawer,.touch-device.roam-mode .world-panel,.touch-device.roam-mode .destination-panel,.touch-device.roam-mode .roam-action-menu,.touch-device.roam-mode .right-stack.roam-chat-open{top:calc(var(--visible-top,0px) + var(--safe-top));bottom:auto;left:auto;right:var(--safe-right);width:min(420px,calc(100vw - var(--safe-left) - var(--safe-right)));height:calc(var(--visible-height,100dvh) - var(--safe-top) - var(--safe-bottom));max-height:none;overflow:auto}
.touch-device .right-stack.roam-chat-open .chat-panel{height:100%;min-height:0}
.touch-device .destination-panel input,.touch-device .world-panel input,.touch-device #chatInput,.touch-device input,.touch-device select,.touch-device textarea{font-size:16px}
.touch-device .life-shift,.touch-device .resident-dialogue{max-width:calc(100vw - 32px);bottom:calc(var(--safe-bottom) + 310px)}
.touch-device .toast{top:calc(var(--safe-top) + 120px);bottom:auto;max-width:calc(100vw - 32px)}
.touch-device button:focus-visible{outline:3px solid #ffd16c;outline-offset:3px}
@media(orientation:landscape){
 .touch-device.roam-mode .game-minimap{left:calc(var(--safe-left) + var(--thumb-size) + 16px);bottom:var(--safe-bottom)}
 .touch-device.roam-mode .navigation-card,.touch-device.roam-mode.map-play .navigation-card{left:50%;right:auto;transform:translateX(-50%);max-width:calc(100vw - 440px);width:250px}
 .touch-device.roam-mode .navigation-card .nav-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .touch-device.roam-mode .navigation-card p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .touch-device.roam-mode.map-play .overhead-tools{left:calc(var(--safe-left) + var(--thumb-size) + 16px);bottom:var(--safe-bottom);flex-direction:row}
 .touch-device .toast{top:var(--safe-top);max-width:45vw}
}
@media(orientation:landscape) and (max-height:420px){
 .touch-device.roam-mode{--thumb-size:96px;--radar-size:96px}
 .touch-device.roam-mode .roam-status{width:170px;padding:6px}
 .touch-device.roam-mode .roam-status .roam-meter{display:inline-flex;width:46%;margin-right:3%}
 .touch-device.roam-mode .roam-status .roam-meter span{width:28px}
 .touch-device.roam-mode .roam-prompt{bottom:calc(var(--safe-bottom) + 240px)}
 .touch-device.roam-mode .navigation-card{padding:6px}
}
@media(orientation:portrait) and (min-width:600px){
 .touch-device.roam-mode{--thumb-size:132px;--radar-size:144px}
 .touch-device.roam-mode .touch-controls{bottom:calc(var(--safe-bottom) + 12px)}
 .touch-device.roam-mode .game-minimap{bottom:calc(var(--safe-bottom) + 170px)}
}
/* Small mouse/keyboard windows keep the same clear centre. */
@media(max-width:600px){
 .roam-mode:not(.touch-device){--radar-size:112px}
 .roam-mode:not(.touch-device) .roam-status{top:12px;bottom:auto;left:12px;max-width:45vw}
 .roam-mode:not(.touch-device) .navigation-card{left:auto;right:12px;top:12px;bottom:auto;max-width:45vw}
 .roam-mode:not(.touch-device) .roam-prompt,.roam-mode:not(.touch-device) .vehicle-button{max-width:46vw}
 .roam-mode:not(.touch-device) .view-mode-button{bottom:calc(var(--hud-bottom) + 170px);right:var(--hud-right)}
 .roam-mode:not(.touch-device) .run-toggle-button{bottom:calc(var(--hud-bottom) + 170px);right:calc(var(--hud-right) + 56px)}
}

.mobile-game-menu button:disabled{opacity:.42;cursor:not-allowed}.mobile-game-menu button:focus-visible,.mobile-menu-toggle:focus-visible{outline:3px solid #ffd16c;outline-offset:2px}
/* Passenger actions scroll within their own tray rather than covering the road. */
.touch-device.roam-mode.transit-mode .game-minimap{left:var(--safe-left);bottom:calc(var(--safe-bottom) + 184px)}
.touch-device.roam-mode.transit-mode .ride-console{left:var(--safe-left);right:var(--safe-right);width:auto;transform:none;bottom:var(--safe-bottom);padding:10px;max-height:164px;overflow:auto}
.touch-device .ride-controls{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;overscroll-behavior-x:contain}
.touch-device .ride-controls button{min-height:48px;flex:0 0 auto}
.touch-device .ride-conversation{max-height:38px;overflow:auto}
.touch-device.roam-mode.transit-mode .mobile-menu-toggle,.touch-device.roam-mode.transit-mode .roam-chat-toggle,.touch-device.roam-mode.transit-mode .view-mode-button{bottom:calc(var(--safe-bottom) + 184px)}
.touch-device.roam-mode.transit-mode .passenger-window{inset:0 0 176px;border-width:10px 14px}
.touch-device.mobile-paused .ride-console{visibility:hidden}
@media(orientation:landscape){.touch-device.roam-mode.transit-mode .game-minimap{bottom:var(--safe-bottom)}.touch-device.roam-mode.transit-mode .ride-console{left:calc(var(--safe-left) + var(--radar-size) + 16px);right:calc(var(--safe-right) + 56px);max-height:140px}.touch-device.roam-mode.transit-mode .mobile-menu-toggle{bottom:calc(var(--safe-bottom) + 104px)}.touch-device.roam-mode.transit-mode .roam-chat-toggle{right:var(--safe-right);bottom:calc(var(--safe-bottom) + 52px)}.touch-device.roam-mode.transit-mode .view-mode-button{right:var(--safe-right);bottom:var(--safe-bottom)}}

/* The overhead camera is another playable view of the same world. */
.overhead-actors,.overhead-tools{display:none}
.overhead-actors{position:fixed;inset:0;width:100vw;height:100vh;z-index:15;pointer-events:none}
.map-play .overhead-actors{display:block}
.roam-mode.map-play .game-minimap{display:none!important}
.roam-mode.map-play .poi-marker{display:flex!important;flex-direction:column;align-items:center;filter:drop-shadow(0 2px 2px #0003)}
.roam-mode.map-play .poi-icon{width:30px;height:30px;font-size:18px;border-radius:50%}
.roam-mode.map-play .poi-label{display:block;font-size:10px;max-width:130px;padding:3px 6px}
.roam-mode.map-play .roam-status{left:var(--hud-left);bottom:var(--hud-bottom)}
.roam-mode.map-play .overhead-tools{display:flex;position:fixed;z-index:20;left:var(--hud-left);bottom:calc(var(--hud-bottom) + 128px);gap:6px;pointer-events:auto}
.overhead-tools button{width:44px;height:44px;border:1px solid #ffffff70;border-radius:50%;background:#102c35df;color:white;font-size:23px;cursor:pointer}
.roam-mode .view-mode-button,.roam-mode .run-toggle-button{position:fixed;z-index:20;bottom:var(--hud-bottom);width:46px;height:46px;border:1px solid #ffffff70;border-radius:50%;background:#102c35df;color:white;font-family:inherit;font-weight:700;font-size:13px;cursor:pointer;pointer-events:auto}
.roam-mode .view-mode-button{right:calc(var(--hud-right) + 168px)}
.roam-mode .run-toggle-button{right:calc(var(--hud-right) + 112px)}
.roam-mode .run-toggle-button[aria-pressed='true'],.touch-run[aria-pressed='true']{background:#e8bc55!important;color:#172d31!important;border-color:#fff2c4!important}
.roam-mode .run-toggle-button:disabled{opacity:.4;cursor:default}
.view-mode-button:focus-visible,.run-toggle-button:focus-visible,.overhead-tools button:focus-visible{outline:3px solid #ffd16c;outline-offset:3px}
.map-play .touch-look,.map-play .vehicle-cabin,.map-play .ride-cabin-scene,.map-play .passenger-window{display:none!important}
.map-play .touch-turn{visibility:hidden}
.touch-device.roam-mode .run-toggle-button{display:none}
/* Current location stays readable beside the radar in every travel mode. */
.roam-mode .roam-status .roam-kicker{display:block;font-size:8px;line-height:1.4;letter-spacing:.08em;color:#a7e2d0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:4px}
.touch-device.roam-mode .roam-status .roam-kicker{font-size:7px;margin-bottom:3px}
.game-minimap .minimap-caption{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.scene-loading{position:fixed;z-index:160;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:min(430px,70vw);padding:10px 16px;border:1px solid #9bbeb54d;border-radius:14px;background:#132f35eb;color:#f4f7ed;box-shadow:0 6px 24px #0003;font-size:13px;pointer-events:auto}
.scene-loading[hidden]{display:none}.scene-loading button{background:#efd08a;color:#15352e;border:0;border-radius:8px;padding:7px 10px;cursor:pointer}
@media(max-height:480px){.scene-loading{font-size:11px;padding:6px 10px;max-width:55vw}}

.nav-auto{width:100%;min-height:40px;margin-top:7px;border:1px solid #9eba9c;border-radius:8px;background:#244f45;color:#fff;font:600 12px inherit}.nav-auto[aria-pressed=true]{background:#d3b464;color:#162c25}

/* Keep the map-credit toggle in the gap between the two thumb zones. */
.touch-device.roam-mode .maplibregl-ctrl-bottom-right{bottom:var(--safe-bottom)!important;right:auto!important;left:calc((100% + var(--thumb-size) - 148px)/2 - 12px);transform:none;opacity:.8}
.touch-device.roam-mode .maplibregl-ctrl-attrib{margin:0;float:none}
.touch-device.roam-mode .maplibregl-compact-show{box-sizing:border-box;position:absolute;bottom:0;left:0;transform:translateX(-45%);width:260px;max-width:calc(100vw - 32px)}
.touch-device.roam-mode.transit-mode .maplibregl-ctrl-bottom-right{bottom:calc(var(--safe-bottom) + 160px)!important;left:50%}

.destination-category{width:100%;min-height:44px;border:1px solid #bed1c5;border-radius:10px;padding:8px;background:#eef4ed;color:#244a3c;font:inherit}.destination-heading,.destination-category,.destination-panel>input{flex-shrink:0}.map-play .poi-icon{box-shadow:0 2px 8px #203f3826;border:2px solid white}.map-play .poi-label{background:#fffffff2;color:#244b3d;border-radius:8px;box-shadow:0 2px 8px #173c301a}.map-play .world-rain{display:none}.map-play .roam-status{background:#12372ee6}
@media(orientation:landscape) and (max-height:500px){.roam-mode .destination-panel{padding:12px;gap:6px}.destination-heading small,.destination-panel>p{display:none}.destination-heading h2{font-size:18px}.destination-list{min-height:72px}.destination-list button{padding:9px;min-height:56px}.destination-heading>button{min-width:36px;min-height:36px}}

body[data-connection="Active in another tab"] .connection-status,body[data-connection="Session ended"] .connection-status{display:block!important;position:fixed;z-index:180;top:max(12px,env(safe-area-inset-top));bottom:auto;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:12px;background:#183c36ee;color:#fff;font-size:12px;text-align:center;pointer-events:none}

/* Contacts stay in the menu; only an incoming or active call uses a compact banner. */
.friend-contacts{border-bottom:1px solid #d4e2d8;padding-bottom:18px;margin-bottom:18px}.friend-contacts label{display:block;font-size:12px;font-weight:700}.friend-contacts input{display:block;box-sizing:border-box;width:100%;min-height:44px;margin:6px 0;padding:9px;border:1px solid #bfd1c6;border-radius:9px;background:#fff;color:#173e32;font:inherit}.friend-contacts .contact-code{font-size:11px}.contacts-list article strong,.contacts-list article small{display:block}.contacts-list article small{color:#526e60;margin:5px 0}.friend-contacts button{min-height:44px}.contacts-status{color:#a23e2c!important}
.friend-call{position:fixed;z-index:160;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(340px,calc(100vw - 28px));box-sizing:border-box;padding:12px 16px;border:1px solid #90b9a4;border-radius:18px;background:#153d32f5;color:#fff;box-shadow:0 8px 32px #0004}.friend-call p{font-size:12px;margin:5px 0 10px}.call-buttons{display:flex;gap:8px}.call-buttons button{flex:1;min-height:44px;border:0;border-radius:10px;background:#e7f2e7;color:#163c2d;font:700 13px inherit;cursor:pointer}.call-buttons button:last-child{background:#f6d9cf;color:#71342c}.friend-call.hidden{display:none}
@media(max-height:500px) and (orientation:landscape){.friend-call{left:auto;right:max(12px,env(safe-area-inset-right));transform:none;width:280px;padding:9px 12px}}
/* Ride information stays in one small edge bar; options open only on request. */
.roam-mode.transit-mode .ride-console,.touch-device.roam-mode.transit-mode .ride-console{left:auto;right:calc(var(--hud-right,12px) + 224px);bottom:var(--hud-bottom,12px);transform:none;width:min(340px,calc(100vw - var(--radar-size) - 264px));padding:0;max-height:none;overflow:visible;border-radius:14px;background:#142e2bed}
.ride-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;border:1px solid #809b8b;border-radius:14px;background:none;color:#fff;text-align:left;padding:8px 12px;font:inherit;cursor:pointer}.ride-summary>span:first-child{min-width:0}.ride-summary .ride-title{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ride-progress{display:block;font-size:11px;color:#c4ddcf;margin-top:3px}.ride-expand{font-size:20px;flex:none}.ride-summary:focus-visible{outline:3px solid #f1cf86;outline-offset:2px}
.ride-options{position:absolute;bottom:calc(100% + 8px);right:0;box-sizing:border-box;width:min(340px,calc(100vw - 24px));max-height:min(320px,calc(100dvh - 90px));overflow:auto;padding:14px;border:1px solid #809b8b;border-radius:16px;background:#142e2bf7;box-shadow:0 8px 30px #0004}.ride-options[hidden]{display:none}.ride-options>strong{font-size:13px}.ride-options .ride-controls,.touch-device .ride-options .ride-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:6px;margin:10px 0}.ride-options .ride-controls button{min-height:44px;padding:8px;font-size:11px}.ride-options .ride-conversation{max-height:none;overflow:visible;font-size:11px}.transit-mode .touch-extras{display:none!important}
.touch-device.roam-mode.transit-mode .mobile-menu-toggle,.touch-device.roam-mode.transit-mode .roam-chat-toggle,.touch-device.roam-mode.transit-mode .view-mode-button{bottom:var(--safe-bottom)}
.touch-device.roam-mode.transit-mode .roam-chat-toggle{right:calc(var(--safe-right) + 52px)}.touch-device.roam-mode.transit-mode .view-mode-button{right:calc(var(--safe-right) + 104px)}
@media(orientation:portrait){.roam-mode.transit-mode .ride-console,.touch-device.roam-mode.transit-mode .ride-console{left:var(--safe-left,12px);right:var(--safe-right,12px);bottom:calc(var(--safe-bottom,12px) + 56px);width:auto}.touch-device.roam-mode.transit-mode .game-minimap{bottom:calc(var(--safe-bottom) + 120px)}.ride-options{width:100%}}
@media(orientation:landscape){.touch-device.roam-mode.transit-mode .ride-console{right:calc(var(--safe-right) + 164px);width:min(340px,calc(100vw - var(--radar-size) - 204px))}.roam-mode.map-play.transit-mode .ride-console{left:var(--safe-left,12px);right:auto;width:min(340px,calc(100vw - 252px))}}
.player-handles{position:absolute;inset:0;z-index:14;pointer-events:none;overflow:hidden}.player-handles[hidden],.map-play .player-handles,.indoor-mode .player-handles{display:none}.player-handle{position:absolute;top:0;left:0;padding:3px 7px;border:1px solid #ffffff70;border-radius:8px;background:#133b30db;color:white;font:600 11px sans-serif;white-space:nowrap;text-shadow:0 1px 2px #0007;max-width:180px;overflow:hidden;text-overflow:ellipsis}.player-handle.self{border-color:#94d7bf;background:#164f40dd}
/* Skip is available without opening the passenger controls. */
.ride-console:has(.ride-skip){display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:stretch}
.ride-console .ride-summary{min-width:0;border-radius:14px 0 0 14px;border-right:0;padding:8px}
.ride-skip{min-width:0;min-height:48px;border:1px solid #f1cf86;border-radius:0 14px 14px 0;background:#f1cf86;color:#17372e;font:700 11px inherit;padding:6px;cursor:pointer;touch-action:manipulation}
.ride-skip:disabled{opacity:.6;cursor:wait}.ride-skip:focus-visible{outline:3px solid white;outline-offset:2px}
.ride-progress{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.work-category{width:100%;min-height:44px;padding:10px;border:1px solid #b7cebf;border-radius:10px;background:#fff;color:#193b30;font:inherit;margin:10px 0}
.work-choices{display:grid;gap:8px;margin:10px 0 18px}.work-choices button{min-height:48px;padding:12px;text-align:left;border:1px solid #a9c8b7;border-radius:12px;background:#e7f2eb;color:#193b30;font:600 13px inherit}.work-choices button:disabled{opacity:.5}.work-choices button:focus-visible{outline:3px solid #d5a631;outline-offset:2px}
.roam-mode .life-shift.work-assignment{padding:0;background:none;border:0;box-shadow:none;width:auto;max-width:180px;bottom:calc(var(--hud-bottom) + 64px);left:50%;transform:translateX(-50%)}
.work-assignment button{min-height:44px;padding:8px 14px;border:1px solid #b9dcc8;border-radius:12px;background:#18483ce8;color:#fff;font:700 12px inherit}
body.touch-device.roam-mode .life-shift.work-assignment{top:calc(var(--safe-top) + 100px);bottom:auto;left:var(--safe-left);transform:none;max-width:148px}
body.touch-device.roam-mode.mobile-paused .life-shift.work-assignment{visibility:hidden}

.selected-work{border:2px solid #218663;background:#edf8f1}.selected-work .life-actions{display:flex;flex-wrap:wrap;gap:8px}.selected-work .life-actions button{min-height:44px;flex:1 1 150px}

/* Trip choices stay inside the destination picker; the driving view stays clear. */
.destination-travel-mode{display:block;width:100%;min-height:44px;padding:10px 12px;margin:8px 0;border:1px solid #63897c;border-radius:10px;background:#e9f6ef;color:#183b32;font:inherit;font-weight:600}
.destination-travel-mode[hidden]{display:none}
.nav-drive-tools{display:flex;gap:6px;flex-wrap:wrap}
.nav-drive-tools button{min-height:44px;flex:1;padding:7px;font:inherit}
.nav-drive-tools.hidden{display:none}
