/* SOEST 3D 0.5.6.1 · MOBILE VIEW
   Mobile-first Spielfläche: nur Logo + Hamburger dauerhaft, dynamische Browserhöhe + Safe Areas. */

html,body{height:var(--so3d-vh,100dvh);min-height:0}
:root{--so3d-viewmodel-ui-mask:calc(72px + var(--so3d-safe-bottom))}
#game-shell{top:0;left:0;right:0;bottom:auto;height:calc(var(--so3d-vh,100dvh) - 20px - var(--so3d-safe-bottom))}
.credits-bar{height:calc(20px + var(--so3d-safe-bottom));padding:0 6px var(--so3d-safe-bottom);bottom:0;font-size:6px;gap:7px;justify-content:center;overflow:hidden;white-space:nowrap}
.credits-bar span{display:none}.credits-bar a{font-size:7px}.cesium-viewer-bottom{bottom:2px!important}

.topbar{left:max(5px,env(safe-area-inset-left,0px));right:max(5px,env(safe-area-inset-right,0px));top:calc(5px + var(--so3d-safe-top));min-height:44px;height:44px;padding:4px 6px;z-index:81}
.brand{min-width:0;gap:7px}.brand strong{font-size:13px}.brand small{display:none}.brand-dot{width:8px;height:8px}
.mobile-menu-btn{display:grid;place-items:center;margin-left:auto;width:40px;height:34px;border:1px solid rgba(85,255,155,.34);background:rgba(5,20,13,.94);color:#55ff9b;border-radius:4px;font-size:20px;line-height:1}
body.mobile-menu-open .mobile-menu-btn{border-color:#ffe39b;color:#ffe39b;background:rgba(55,42,8,.94)}
.top-actions{display:none!important}

.telemetry.hud-hub{display:none;position:fixed;z-index:80;left:max(5px,env(safe-area-inset-left,0px));right:max(5px,env(safe-area-inset-right,0px));top:calc(54px + var(--so3d-safe-top));bottom:calc(24px + var(--so3d-safe-bottom));width:auto;max-height:none;padding:6px;gap:5px;overflow:auto;border-color:rgba(85,255,155,.30);background:rgba(3,12,8,.97);backdrop-filter:blur(12px);box-shadow:0 12px 36px rgba(0,0,0,.48)}
body.mobile-menu-open .telemetry.hud-hub{display:flex}
.telemetry.collapsed{width:auto!important;padding:6px!important}.telemetry.collapsed .telemetry-head>div{display:block}.telemetry.collapsed .telemetry-core{display:grid}.telemetry.collapsed .hud-section{display:block}.telemetry.collapsed .telemetry-head{border-bottom:1px solid rgba(85,255,155,.14);padding-bottom:5px}
.telemetry-collapse{display:none!important}.telemetry-head{padding-bottom:5px}.telemetry-head .eyebrow{font-size:8px}.telemetry-head strong{font-size:9px}
.mobile-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.mobile-quick-actions button{min-height:36px;border:1px solid rgba(85,255,155,.22);background:rgba(5,24,14,.9);color:#dfffea;font-size:7px;font-weight:850;padding:4px 2px}
.mobile-quick-actions button:active{border-color:#55ff9b;color:#55ff9b}
.telemetry-core{display:grid!important;grid-template-columns:1fr 1fr;gap:0 8px;padding:0 5px}.telemetry-core .telemetry-row{min-width:0;padding:4px 0;font-size:8px}.telemetry-core .telemetry-row strong{font-size:8px;max-width:88px}
.hud-section>summary{min-height:36px;padding:6px 7px;font-size:8px}.hud-section-body{padding:4px 5px 5px}.hud-actions{gap:4px}.hud-actions .wide-btn{min-height:36px;font-size:7px;padding:6px 5px}
.mission-card,.controls-hint{display:none!important}
.multiplayer-panel{display:block!important;position:fixed;z-index:78;right:max(7px,env(safe-area-inset-right,0px));top:calc(56px + var(--so3d-safe-top));width:min(178px,calc(100vw - 14px));padding:7px;background:rgba(3,12,8,.94);border-color:rgba(85,255,155,.28)}
.multiplayer-panel:not(.collapsed){left:max(7px,env(safe-area-inset-left,0px));right:max(7px,env(safe-area-inset-right,0px));top:auto;bottom:calc(84px + var(--so3d-safe-bottom));width:auto;max-height:min(42dvh,330px);overflow:hidden}
.multiplayer-head{margin-bottom:6px}.multiplayer-head div{font-size:9px}.multiplayer-head input{width:118px;min-height:34px;font-size:12px;text-align:left}.multiplayer-collapse{width:34px;height:34px;flex-basis:34px}
.multiplayer-panel.collapsed{width:min(126px,calc(100vw - 14px));padding:7px}.multiplayer-panel.collapsed .multiplayer-head-actions input{display:none}
.multiplayer-roster{max-height:64px;margin-bottom:6px}.chat-log{height:min(18dvh,126px);font-size:12px}.chat-log div{grid-template-columns:minmax(58px,auto) 1fr;font-size:11px;gap:6px}.chat-form{gap:5px}.chat-form input{min-height:38px;font-size:13px}.chat-form button{min-height:38px;font-size:10px;padding:7px 9px}
body.mobile-menu-open .multiplayer-panel{display:none!important}

.touch-look{display:block;position:absolute;z-index:11;right:0;top:50px;bottom:calc(84px + var(--so3d-safe-bottom));width:55%;touch-action:none;pointer-events:auto}
.touch-controls{display:flex;position:absolute;z-index:12;left:max(7px,env(safe-area-inset-left,0px));right:max(7px,env(safe-area-inset-right,0px));bottom:calc(6px + var(--so3d-safe-bottom));justify-content:space-between;align-items:flex-end;pointer-events:none;gap:8px}
.touch-controls button{pointer-events:auto;touch-action:none;border:1px solid rgba(85,255,155,.25);background:rgba(4,16,10,.82);color:#dfffea;min-width:46px;min-height:42px;border-radius:4px;backdrop-filter:blur(4px)}
.touch-pad>button{display:block;margin:0 auto 4px}.touch-pad div{display:flex;gap:4px}
.touch-actions-shell{display:grid;gap:4px;width:min(184px,49vw);pointer-events:auto}.touch-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px;width:100%}.touch-actions button{font-size:7px;padding:4px 2px;min-width:0}
.touch-actions-toggle{width:100%;min-height:28px!important;font-size:7px!important;font-weight:950;letter-spacing:.08em;color:#9cffbf!important;border-color:rgba(85,255,155,.42)!important;background:rgba(4,25,15,.88)!important}
body.touch-actions-collapsed .touch-actions-shell{width:auto;min-width:102px}body.touch-actions-collapsed .touch-actions-toggle{min-width:102px}
#touch-phone{border-color:rgba(85,255,155,.58);background:rgba(4,36,20,.92);font-weight:900;color:#eafff2}
body.mobile-menu-open .touch-look,body.mobile-menu-open .touch-controls{pointer-events:none;opacity:.14}
body.ground-pick-armed .touch-look{pointer-events:none!important;opacity:.10}

.toast{top:calc(54px + var(--so3d-safe-top));max-width:calc(100vw - 18px);padding:7px 9px;font-size:8px}
.so-phone-overlay{position:fixed;z-index:92;align-items:end;place-items:end center;padding:calc(58px + var(--so3d-safe-top)) max(7px,env(safe-area-inset-right,0px)) calc(24px + var(--so3d-safe-bottom)) max(7px,env(safe-area-inset-left,0px));background:rgba(0,7,4,.42);backdrop-filter:blur(5px)}
.so-phone-device{width:100%;max-height:min(78dvh,calc(var(--so3d-vh,100dvh) - 88px - var(--so3d-safe-bottom)));border-radius:8px 8px 0 0;padding:10px}
.so-phone-brand{font-size:22px;margin:8px 0 7px}.so-phone-top strong{font-size:13px}.so-phone-status{font-size:8px;padding:6px 7px}.so-phone-weather{font-size:8px;padding:6px 7px;margin-bottom:7px}
.so-phone-apps{grid-template-columns:1fr 1fr;gap:6px}.so-phone-apps button{min-height:62px;padding:8px}.so-phone-apps strong{font-size:10px}.so-phone-apps span{font-size:8px}
.so-phone-note{font-size:8px;margin-top:8px;padding:7px}
body.so-phone-open .multiplayer-panel,body.so-phone-open .local-map-panel{display:none!important}
.property-panel{position:fixed!important;z-index:93!important;left:max(7px,env(safe-area-inset-left,0px))!important;right:max(7px,env(safe-area-inset-right,0px))!important;bottom:calc(22px + var(--so3d-safe-bottom))!important;width:auto!important;max-height:min(72dvh,calc(var(--so3d-vh,100dvh) - 86px - var(--so3d-safe-bottom)))!important;transform:none!important;border-radius:8px 8px 0 0!important;padding:10px!important}.property-panel-head{grid-template-columns:minmax(0,1fr) auto auto;gap:6px}.property-panel-head strong{font-size:12px}.property-panel-head small,.property-hint,.property-price{font-size:9px}.property-kind{font-size:7px;padding:5px}.property-actions{grid-template-columns:1fr 1fr 1fr;gap:5px}.property-actions button{min-height:42px;font-size:8px;padding:6px 4px}.property-customize{grid-template-columns:1fr 1fr;gap:8px}.property-swatches{grid-template-columns:repeat(3,24px);gap:5px}.property-swatch{width:24px;height:24px}.property-note{font-size:8px}.property-interior-overlay{position:fixed!important;z-index:94!important;padding:calc(50px + var(--so3d-safe-top)) max(7px,env(safe-area-inset-right,0px)) calc(14px + var(--so3d-safe-bottom)) max(7px,env(safe-area-inset-left,0px))}.property-interior-shell{width:100%!important;max-height:calc(var(--so3d-vh,100dvh) - 70px - var(--so3d-safe-top) - var(--so3d-safe-bottom))!important;border-radius:8px!important;padding:10px!important}.property-interior-head strong{font-size:13px}.property-interior-head small{font-size:8px}.property-window{min-height:86px;margin:8px 0;padding:10px}.property-window strong{font-size:12px}.property-room-grid{grid-template-columns:1fr 1fr;grid-auto-rows:minmax(76px,1fr);gap:6px}.property-room-cell{padding:8px}.property-room-cell strong{font-size:10px}.property-room-cell span{font-size:7px}.property-interior-actions{grid-template-columns:1fr;gap:6px}.property-interior-actions button{min-height:42px;font-size:9px}body.property-panel-open .multiplayer-panel,body.property-panel-open .local-map-panel,body.property-interior-mode .multiplayer-panel,body.property-interior-mode .local-map-panel{display:none!important}
.so-phone-property-alert{min-height:31px;margin-bottom:7px;font-size:8px;padding:7px}.so-phone-property-hub{max-height:35dvh;overflow:auto;padding:7px;margin-bottom:8px}.so-phone-property-head strong{font-size:10px}.so-phone-property-wallet{padding:6px;margin-bottom:6px}.so-phone-property-wallet span{font-size:7px}.so-phone-property-wallet strong{font-size:8px}.so-phone-property-row{grid-template-columns:minmax(0,1fr) auto;gap:5px;padding:5px}.so-phone-property-row button{min-height:28px;font-size:7px;padding:5px}.so-phone-property-row button+button{grid-column:auto}.so-phone-property-row strong{font-size:8px}.so-phone-property-row span,.so-phone-empty{font-size:7px}.property-access{padding:7px;margin-bottom:9px}.property-owner-access{grid-template-columns:1fr;gap:5px}.property-owner-access select,.property-owner-access button,.property-guest-access button{min-height:36px;font-size:8px}.property-guest-access{grid-template-columns:1fr;gap:5px}.property-doorbell-row{grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.property-doorbell-row span{display:none}.property-doorbell-row button{min-height:30px;font-size:7px;padding:5px}

.artifact-editor-panel,.artifact-manager-panel,.world-repair-panel,.ground-wand-panel{position:fixed!important;z-index:90!important;left:max(5px,env(safe-area-inset-left,0px))!important;right:max(5px,env(safe-area-inset-right,0px))!important;top:auto!important;bottom:calc(24px + var(--so3d-safe-bottom))!important;width:auto!important;max-width:none!important;max-height:min(74dvh,calc(var(--so3d-vh,100dvh) - 76px - var(--so3d-safe-bottom)))!important;overflow:auto!important;border-radius:7px 7px 0 0;padding:7px}
.artifact-panel-head{position:sticky;top:-7px;z-index:6;background:rgba(3,13,9,.98);padding:7px 0 6px;margin-bottom:6px;gap:7px}.artifact-panel-head strong{font-size:11px}.artifact-panel-head .eyebrow{font-size:7px}.artifact-icon-btn{width:34px;height:32px}
.ground-wand-panel.collapsed{left:auto!important;right:max(5px,env(safe-area-inset-right,0px))!important;top:calc(54px + var(--so3d-safe-top))!important;bottom:auto!important;width:min(250px,calc(100vw - 10px))!important;max-height:none!important}
.artifact-risk{padding:5px 7px;margin-bottom:5px;font-size:8px}
.artifact-preview-grid{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:0 5px;font-size:7px}.artifact-preview-grid span,.artifact-preview-grid strong{padding:4px 0}.artifact-preview-grid strong{max-width:55px}
.ground-wand-panel #ground-wand-note{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:5px 0;font-size:8px;line-height:1.3}
.ground-wand-panel .artifact-key-help{display:none}
.ground-wand-modes{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:5px 0}.ground-wand-modes button{min-height:32px;padding:4px 2px;font-size:6px}
.ground-wand-falloff{grid-template-columns:70px 1fr;gap:5px;margin:5px 0;padding:5px}.ground-wand-falloff>span{font-size:7px}.ground-wand-falloff>div{grid-template-columns:repeat(3,1fr);gap:3px}.ground-wand-falloff button{min-height:30px;font-size:6px;padding:4px 2px}
.ground-apply-primary{gap:3px;margin:5px 0;padding:5px;top:-1px}.ground-apply-primary span{font-size:6px}.ground-apply-primary button{min-height:36px;font-size:8px}
.ground-wand-quickbar{grid-template-columns:1fr 1fr;gap:4px;margin:5px 0}.ground-wand-quickbar button,.ground-wand-presets button{min-height:32px;padding:4px 3px;font-size:7px}
.ground-wand-presets{grid-template-columns:repeat(3,1fr);gap:4px;margin:5px 0}
.ground-wand-slider{grid-template-columns:78px 1fr;gap:5px;padding:4px 0;font-size:7px}
.artifact-size-row,.artifact-action-row,.artifact-manager-actions{gap:4px}.artifact-size-row button,.artifact-action-row button,.artifact-manager-actions button{min-height:34px;padding:5px 4px;font-size:7px}
.ground-grid-legend{min-height:32px;font-size:6px;gap:3px;padding:3px}.ground-grid-legend .g{width:6px;height:6px}
.world-tool-tabs,.world-tool-safety,.world-tool-actions{gap:4px;margin-bottom:5px}.world-tool-tabs button,.world-tool-safety button,.world-tool-actions button{min-height:34px;padding:5px 3px;font-size:7px}.world-tool-actions{grid-template-columns:1fr 1fr 1fr}
.artifact-cut-list{max-height:28dvh}

.start-panel,.pause-panel{width:calc(100vw - 16px);padding:13px;max-height:calc(var(--so3d-vh,100dvh) - 28px);overflow:auto}
.start-panel h1{font-size:30px}.start-panel .lead{margin:7px 0 11px;font-size:10px;line-height:1.35}.mode-grid{grid-template-columns:1fr 1fr;gap:6px}.mode-card{min-height:104px;padding:10px}.mode-card strong{font-size:13px;margin:5px 0 2px}.mode-card small{font-size:8px}.mode-icon{font-size:24px}.start-facts{gap:4px;margin-top:8px}.start-facts span{font-size:7px;padding:4px 5px}.legal-mini{font-size:7px!important;margin-top:8px!important}.pause-panel h2{font-size:26px}
.loading-brand{font-size:20px}.loader-ring{width:92px;height:92px}.loading-status{margin-top:130px;font-size:8px}.loading-detail{margin-top:156px;font-size:7px}.loading-progress-track{margin-top:186px;width:min(300px,72vw)}

@media (max-height:700px) and (orientation:portrait){
  .start-panel{padding:10px}.start-panel h1{font-size:27px}.start-panel .lead{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:5px 0 8px}
  .mode-card{min-height:90px;padding:8px}.start-facts,.legal-mini{display:none}
}

@media (max-width:350px){
  .mobile-quick-actions{grid-template-columns:1fr 1fr}
  .telemetry-core{grid-template-columns:1fr}
  .touch-actions-shell{width:min(154px,47vw)}
  .artifact-preview-grid{grid-template-columns:minmax(0,1fr) auto}.artifact-preview-grid strong{max-width:90px}
  .ground-wand-modes{grid-template-columns:1fr 1fr}
  .mode-grid{grid-template-columns:1fr}.mode-card{min-height:82px}
}

@media (max-height:600px) and (orientation:landscape){
  :root{--so3d-viewmodel-ui-mask:calc(62px + var(--so3d-safe-bottom))}
  #game-shell{height:calc(var(--so3d-vh,100dvh) - 18px - var(--so3d-safe-bottom))}.credits-bar{height:calc(18px + var(--so3d-safe-bottom))}
  .topbar{top:3px;height:40px;min-height:40px}.mobile-menu-btn{height:32px}.touch-look{top:44px;bottom:calc(66px + var(--so3d-safe-bottom))}
  .touch-controls{bottom:calc(4px + var(--so3d-safe-bottom))}.touch-controls button{min-height:38px}.touch-actions-shell{width:min(210px,42vw)}
  .telemetry.hud-hub{top:46px;bottom:calc(22px + var(--so3d-safe-bottom))}
  .artifact-editor-panel,.artifact-manager-panel,.world-repair-panel,.ground-wand-panel{bottom:calc(22px + var(--so3d-safe-bottom))!important;max-height:calc(var(--so3d-vh,100dvh) - 56px - var(--so3d-safe-bottom))!important}
  .start-panel{padding:9px;max-height:94dvh}.start-panel h1{font-size:25px}.start-panel .lead{margin:4px 0 7px;line-height:1.25}.mode-card{min-height:72px;padding:7px}.mode-icon{font-size:19px}.start-facts,.legal-mini{display:none}
  .loading-status{margin-top:102px}.loading-detail{margin-top:126px}.loading-progress-track{margin-top:150px}
}

/* Start/Laden: Touch-Bedienung nicht unter Dialogen durchscheinen lassen. */
#game-shell:has(.loading-screen:not(.hidden)) .touch-controls,
#game-shell:has(.start-screen:not([hidden])) .touch-controls{opacity:0;pointer-events:none}

.ground-tool-switch{gap:4px;margin:5px 0}.ground-tool-switch button{min-height:32px;font-size:7px;padding:4px 3px}.ground-tool-meta{grid-template-columns:1fr 1fr 1fr 1fr}

/* 0.5.6.8 · Mobile readability + touch-target pass */
.mobile-quick-actions button{min-height:42px;font-size:9px;padding:6px 3px}
.telemetry-head .eyebrow{font-size:9px}.telemetry-head strong{font-size:10px}
.telemetry-core .telemetry-row{padding:5px 0;font-size:9px}.telemetry-core .telemetry-row strong{font-size:9px;max-width:104px}
.hud-section>summary{min-height:42px;padding:8px 8px;font-size:9px}.hud-section>summary b{font-size:8px;max-width:92px}
.hud-actions .wide-btn{min-height:42px;font-size:9px;padding:7px 6px}
.touch-controls button{min-width:50px;min-height:48px}.touch-actions button{font-size:9px;padding:5px 3px}
.artifact-panel-head strong{font-size:12px}.artifact-panel-head .eyebrow{font-size:8px}.artifact-icon-btn{width:40px;height:38px}
.artifact-risk{padding:7px 8px;font-size:9px}.artifact-preview-grid{gap:0 6px;font-size:8px}.artifact-preview-grid span,.artifact-preview-grid strong{padding:5px 0}.artifact-preview-grid strong{max-width:68px}
.ground-wand-panel #ground-wand-note{font-size:9px;line-height:1.35}
.ground-wand-modes button,.ground-wand-falloff button,.ground-wand-quickbar button,.ground-wand-presets button,.ground-tool-switch button{min-height:40px;font-size:8px;padding:6px 4px}
.ground-wand-falloff>span,.ground-wand-slider{font-size:8px}.ground-wand-slider{grid-template-columns:92px 1fr;padding:6px 0}
.ground-apply-primary span{font-size:8px}.ground-apply-primary button{min-height:44px;font-size:10px}
.artifact-size-row button,.artifact-action-row button,.artifact-manager-actions button,.world-tool-tabs button,.world-tool-safety button,.world-tool-actions button{min-height:40px;font-size:8px;padding:6px 5px}
.ground-grid-legend{min-height:36px;font-size:8px}.ground-grid-legend .g{width:7px;height:7px}
.start-panel .lead{font-size:11px;line-height:1.4}.mode-card small{font-size:9px}.start-facts span{font-size:9px;line-height:1.25}.legal-mini{font-size:8px!important;line-height:1.35}.start-tech-details>summary{font-size:9px;min-height:38px;display:flex;align-items:center}
.telemetry.hud-hub,.artifact-editor-panel,.artifact-manager-panel,.world-repair-panel,.ground-wand-panel{scrollbar-width:auto}
.telemetry.hud-hub::-webkit-scrollbar,.artifact-editor-panel::-webkit-scrollbar,.artifact-manager-panel::-webkit-scrollbar,.world-repair-panel::-webkit-scrollbar,.ground-wand-panel::-webkit-scrollbar{width:9px}
@media (max-height:600px) and (orientation:landscape){.touch-controls button{min-height:42px}.mobile-quick-actions button{min-height:38px}.hud-section>summary{min-height:38px}.hud-actions .wide-btn{min-height:38px}}

/* 0.5.6.8 · finaler Lesbarkeits-Pass: kompakt, aber nicht mikroskopisch. */
.credits-bar,.credits-bar a{font-size:8px}
.mobile-quick-actions button{font-size:10px}
.telemetry-core .telemetry-row,.telemetry-core .telemetry-row strong{font-size:10px}
.hud-section>summary{font-size:10px}.hud-section>summary b{font-size:9px}
.hud-actions .wide-btn,.touch-actions button{font-size:10px}
.ground-wand-modes button,.ground-wand-falloff button,.ground-wand-quickbar button,.ground-wand-presets button,.ground-tool-switch button{font-size:9px}
.artifact-size-row button,.artifact-action-row button,.artifact-manager-actions button,.world-tool-tabs button,.world-tool-safety button,.world-tool-actions button{font-size:9px}
.start-tech-details>summary,.start-facts span{font-size:10px}.legal-mini{font-size:9px!important}

/* 0.5.6.8 · Admin-Leitstand mobil */
.admin-control-overlay{padding:4px!important;place-items:stretch!important}.admin-control-shell{width:100%!important;height:calc(var(--so3d-vh,100dvh) - 8px)!important;min-height:0!important}.admin-control-head{padding:7px 8px}.admin-control-head strong{font-size:12px}.admin-control-tabs{padding:5px;gap:4px}.admin-control-tabs button{min-height:44px;font-size:9px;padding:7px 9px}.admin-control-foot{font-size:8px;padding:5px 7px}.admin-control-head-actions .artifact-icon-btn{width:42px;height:40px}.admin-action{font-size:9px!important}

/* 0.5.7.1 · kontextabhängiger Bus-Button */
.bus-interaction-prompt{display:none!important}
.touch-actions .touch-bus-interact{grid-column:1/-1;min-height:52px!important;font-size:10px!important;font-weight:900;border-color:rgba(85,255,155,.72)!important;background:rgba(5,45,25,.94)!important}
body.bus-passenger .touch-pad{opacity:.18;pointer-events:none}
body.bus-passenger #touch-jump,body.bus-passenger #touch-mode,body.bus-passenger #touch-road{opacity:.26;pointer-events:none}

.touch-actions .touch-bus-interact:disabled{opacity:.72!important;border-color:rgba(255,220,90,.48)!important;color:#ffe99a!important;background:rgba(35,30,7,.92)!important}

/* 0.5.7.3 · Lichttaste */
.touch-actions #touch-light{font-weight:850;border-color:rgba(255,239,170,.46);}

/* 0.7.0 · Sitzmodus mobil: Bewegung wird gesperrt, Interaktion bleibt erreichbar. */
body.player-seated .touch-pad,body.player-seated #touch-jump,body.player-seated #touch-mode,body.player-seated #touch-road{opacity:.24;pointer-events:none}
body.player-seated .touch-actions .touch-bus-interact{border-color:rgba(255,220,130,.72)!important;background:rgba(45,32,8,.94)!important;color:#fff0b8!important}

/* 0.7.0.6 · mobile Abfahrtstafel */
.stop-departure-board{left:8px;right:8px;bottom:calc(8px + var(--so3d-safe-bottom));transform:none;width:auto;max-height:min(68dvh,540px);overflow:auto;padding:9px}.stop-board-columns,.stop-board-row{grid-template-columns:54px minmax(0,1fr) 48px 84px;gap:5px}.stop-board-columns{font-size:7px}.stop-board-row{font-size:9px}.stop-board-line{font-size:13px}.stop-board-head strong{font-size:14px}.stop-board-direction{white-space:normal;line-height:1.2}

/* 0.7.1.8.21 Local Map / Online-Chip: auf schmalem Handy nicht ueberlappen. */
.local-map-panel{right:max(7px,env(safe-area-inset-right,0px));top:calc(58px + var(--so3d-safe-top));bottom:auto;width:min(238px,calc(100vw - 16px));max-height:calc(var(--so3d-vh) - 132px)}
.local-map-panel.collapsed{width:min(224px,calc(100vw - 16px))}.local-map-head{min-height:38px;padding:5px 6px 5px 8px}.local-map-head strong{font-size:9px}.local-map-head .eyebrow{font-size:6px}.local-map-head>div:first-child{min-width:0}.local-map-head-actions{gap:3px}.local-map-head-actions button{min-width:28px;height:27px;padding:0 4px;font-size:7px}.local-map-panel.collapsed .local-map-head{gap:5px}.local-map-panel.collapsed .local-map-head-actions{display:grid;grid-template-columns:repeat(4,minmax(33px,1fr));width:100%;gap:4px}.local-map-panel.collapsed .local-map-head-actions button{min-width:0;width:100%;padding:0 2px}.local-map-panel.collapsed .local-map-head strong,.local-map-panel.collapsed .local-map-head .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.local-map-body{padding:5px}.local-map-meta{font-size:7px}.local-map-controls{font-size:6px}.local-map-osm-attribution{right:8px;bottom:45px;font-size:6px}
body.local-map-visible.local-map-collapsed .multiplayer-panel.collapsed{top:calc(146px + var(--so3d-safe-top));right:max(7px,env(safe-area-inset-right,0px));}
body.local-map-visible:not(.local-map-collapsed) .multiplayer-panel.collapsed{top:auto;bottom:calc(218px + var(--so3d-safe-bottom));}
body.mobile-menu-open .local-map-panel{display:none}


/* 0.7.1.8.16 · Fahrgast-Innenraum auf Handy kompakt halten. */
.bus-passenger-interior{inset:0 0 calc(72px + var(--so3d-safe-bottom)) 0}
.bus-interior-windshield{left:17vw;right:17vw;top:66px;bottom:70px;border-radius:5px 5px 18px 18px}
.bus-interior-roof{left:9vw;right:9vw;top:46px;height:32px}
.bus-interior-light{top:55px;width:48px}.bus-interior-light.left{left:28vw}.bus-interior-light.right{right:28vw}
.bus-interior-rail.top{left:24vw;right:24vw;top:88px;height:5px}
.bus-interior-rail.left,.bus-interior-rail.right{top:auto;bottom:68px;width:4px;height:30%}.bus-interior-rail.left{left:23vw}.bus-interior-rail.right{right:23vw}
.bus-interior-side-window{top:106px;bottom:92px;width:12vw;min-width:34px;opacity:.42}.bus-interior-side-window.left{left:4vw}.bus-interior-side-window.right{right:4vw}
.bus-interior-sill{left:7vw;right:7vw;height:28px}
.bus-interior-pillar{top:66px;bottom:38px;width:10px;opacity:.50}
.bus-interior-pillar.left{left:16vw}.bus-interior-pillar.right{right:16vw}
.bus-interior-front{left:calc(50% - 86px);bottom:30px;width:172px;height:46px;border-radius:13px 13px 6px 6px}
.bus-interior-dashboard{left:calc(50% - 62px);bottom:48px;width:124px;height:14px}
.bus-interior-dashboard:before{left:12px;top:4px;width:28px;height:5px}.bus-interior-dashboard:after{right:14px;top:-13px;width:30px;height:30px;border-width:4px}
.bus-interior-info{top:96px;width:min(238px,66vw);padding:5px 7px 6px;border-radius:4px}
.bus-interior-info b{font-size:7px}.bus-interior-info strong{font-size:9px}.bus-interior-info em,.bus-interior-info span{font-size:7px}
.bus-interior-aisle{left:calc(50% - 38px);right:calc(50% - 38px);height:92px}
.bus-interior-ticket-display{left:calc(50% - 27px);top:96px;width:54px;height:16px}.bus-interior-ticket-display:after{font-size:8px}
.bus-interior-stop-button{bottom:86px;width:16px;height:16px}.bus-interior-stop-button.left{left:20vw}.bus-interior-stop-button.right{right:20vw}
.bus-interior-seat{width:64px;height:56px;bottom:7px;border-radius:11px 11px 5px 5px;opacity:.64}
.bus-interior-seat.far-left,.bus-interior-seat.far-right{width:42px;height:34px;bottom:56px;opacity:.36}
.bus-interior-seat.far-left{left:calc(50% - 126px)}.bus-interior-seat.far-right{right:calc(50% - 126px)}
.bus-interior-seat.left{left:calc(50% - 154px)}.bus-interior-seat.right{right:calc(50% - 154px)}
.bus-interior-seatback.center{left:calc(50% - 42px);bottom:12px;width:84px;height:36px;opacity:.32}

/* 0.7.1.8.12: Mobile First-Person-Haende wie Cover: Aermel unten, Haende oben/vorne. */
.fp-arm { width:62px; height:128px; bottom:-18px; }
.fp-arm-left { left:calc(50% - 142px); transform:rotate(-10deg) translate3d(0,4px,0); }
.fp-arm-right { right:calc(50% - 142px); transform:rotate(10deg) translate3d(0,4px,0); }
.fp-sleeve { top:52px; height:78px; border-radius:13px 13px 8px 8px; }
.fp-hand { top:8px; left:7px; width:48px; height:45px; border-radius:16px 16px 18px 18px; }

/* 0.7.1.8.21: Mobile Viewmodel Animation bleibt auch bei Touch-Laufen aktiv. */
body.first-person-arms-visible .first-person-arms{display:block!important}
body.first-person-arms-visible .first-person-arms.moving .fp-arm-left{animation:soest-mobile-fp-arm-left .44s ease-in-out infinite alternate!important}
body.first-person-arms-visible .first-person-arms.moving .fp-arm-right{animation:soest-mobile-fp-arm-right .44s ease-in-out infinite alternate!important}
body.first-person-arms-visible .first-person-arms.sprinting .fp-arm-left,
body.first-person-arms-visible .first-person-arms.sprinting .fp-arm-right{animation-duration:.30s!important}
@keyframes soest-mobile-fp-arm-left{
  from{transform:rotate(-13deg) translate3d(-3px,6px,0)}
  to{transform:rotate(-6deg) translate3d(8px,-5px,0)}
}
@keyframes soest-mobile-fp-arm-right{
  from{transform:rotate(6deg) translate3d(-8px,-5px,0)}
  to{transform:rotate(13deg) translate3d(3px,6px,0)}
}
@media (max-width:380px){
  .fp-arm-left{left:calc(50% - 128px)}
  .fp-arm-right{right:calc(50% - 128px)}
}
@media (max-height:640px){
  .fp-arm{bottom:-22px;height:118px}
  .fp-sleeve{top:50px;height:72px}
  .fp-hand{top:7px}
}

/* 0.7.1.8.29 STOP BOARD SAFE */
.property-interior-stage{min-height:190px;margin:8px 0}
.property-interior-avatar{width:40px;height:68px}
.property-interior-body{left:8px;right:8px;height:40px}
.property-interior-head-dot{left:8px;right:8px;height:27px}
.property-interior-name{font-size:7px;max-width:94px}
.property-interior-dpad{right:6px;bottom:6px;grid-template-columns:31px 42px 31px;grid-template-rows:30px 24px 30px}
.property-interior-dpad button{font-size:12px}
.so-phone-property-row.owned{grid-template-columns:minmax(0,1fr) auto}

/* 0.7.1.8.46 · Furniture mobile */
.property-furniture-content{grid-template-columns:1fr 1fr;max-height:38dvh}.property-furniture-head{grid-template-columns:minmax(0,1fr) auto}.property-furniture-head>button{grid-column:1/-1}.property-furniture-edit{grid-template-columns:1fr 1fr}.property-furniture-edit strong,.property-furniture-edit span{grid-column:1/-1}.property-furniture-object span{font-size:6px}

/* 0.7.1.8.49 · Multi room mobile */
.property-interior-room-caption{left:6px;top:6px;padding:4px 6px}.property-interior-room-caption strong{font-size:9px}.property-room-door{min-width:88px;max-width:116px;padding:4px 5px}.property-room-door span{font-size:16px}.property-room-door strong{font-size:7px}.property-room-door small{font-size:5px}.property-room-door.door-1,.property-room-door.door-2{top:58%}.property-room-cell:after{font-size:5px;right:6px;bottom:5px}

/* 0.7.1.8.49 · Room inventory mobile */
@media (max-width:700px){
  .property-furniture-room-context,.property-furniture-reset{align-items:flex-start;flex-direction:column}
  .property-furniture-room-filters{width:100%}.property-furniture-room-filters button{flex:1}
}


/* 0.7.1.8.66 · Spaceship Cockpit Mobile */
@media (max-width:700px), (max-height:540px) and (pointer:coarse){
  .spaceship-frame.left{left:2%;width:9vw;min-width:44px}.spaceship-frame.right{right:2%;width:9vw;min-width:44px}.spaceship-frame.left-inner{left:25%;min-width:24px}.spaceship-frame.right-inner{right:25%;min-width:24px}
  .spaceship-cockpit:after{left:5%;right:5%;height:27vh}.spaceship-cockpit-console{bottom:max(6px,env(safe-area-inset-bottom));width:94vw;min-height:0;padding:8px}.spaceship-console-stats{margin:5px 0;gap:4px}.spaceship-console-actions{grid-template-columns:1.1fr 1fr 1fr;gap:4px}.spaceship-console-actions button{min-height:38px;font-size:7px}.spaceship-cockpit-console small{font-size:6px}.spaceship-ground-prompt{bottom:78px;max-width:90vw;text-align:center;font-size:8px}
}

/* 0.7.1.8.77 · Phone-Chat bleibt auf iPhone/iPad im sichtbaren Viewport. */
@media(max-width:820px){.so-phone-chat-log{height:min(250px,34vh);max-height:34vh}.so-phone-chat-form input{font-size:16px}.so-phone-chat{margin-bottom:4px}}

/* 0.7.1.8.79 · iPhone/iPad Live-Invite */
@media(max-width:820px){.so-phone-invite-link{font-size:16px}.so-phone-invite-actions button{min-height:44px;font-size:9px}}

/* .86 iPhone/iPad: Phone-Chat-Profil ohne Safari-Autozoom. */
.so-phone-chat-profile input{font-size:16px!important}

/* .87 · einspaltiger Mobile-Intro-Start */
@media (max-width:520px){.spaceship-start-card{grid-column:auto}}

/* 0.7.1.8.110 · kompakter Multiplayer-Status bleibt in der Topbar sichtbar. */
.topbar-online-indicator{margin-left:auto;min-width:38px;height:30px;padding:0 7px;font-size:9px}.mobile-menu-btn{margin-left:0}

/* 0.7.1.8.136 · PUBLIC LIVE BUS MAP OVERLAY */
.public-bus-map-overlay{padding:4px!important;place-items:stretch!important}.public-bus-map-shell{width:100%!important;height:calc(var(--so3d-vh,100dvh) - 8px)!important;min-height:0!important}.stop-board-foot{align-items:center;flex-wrap:wrap}.stop-board-foot-actions{margin-left:auto;gap:8px}.stop-board-foot button{min-height:34px}


/* 0.7.1.8.139 · MOBILE TOUCH + SPACESHIP BOARDING SAFE
   Der Raumschiff-Einstieg bleibt auch bei eingeklappten AKTIONEN erreichbar.
   Im Cockpit bleibt der Flug-D-Pad oberhalb der Konsole; unnoetige Laufaktionen
   verschwinden, damit iPhone/Android keine Bedienfelder verdecken. */
.touch-controls .touch-bus-interact{
  position:fixed;z-index:87;left:50%;bottom:calc(112px + var(--so3d-safe-bottom));
  transform:translateX(-50%);width:min(320px,78vw);min-height:52px!important;
  padding:8px 12px!important;border-color:rgba(85,255,155,.76)!important;
  background:linear-gradient(135deg,rgba(5,48,27,.97),rgba(4,27,17,.98))!important;
  color:#effff5!important;font-size:11px!important;font-weight:950!important;
  letter-spacing:.035em;box-shadow:0 8px 30px rgba(0,0,0,.42),0 0 20px rgba(85,255,155,.16);
  touch-action:manipulation!important;
}
body.mobile-menu-open .touch-bus-interact,
body.so-phone-open .touch-bus-interact,
body.property-panel-open .touch-bus-interact,
body.property-interior-mode .touch-bus-interact{display:none!important}

.touch-controls .touch-spaceship-interact{
  position:fixed;z-index:88;left:50%;bottom:calc(112px + var(--so3d-safe-bottom));
  transform:translateX(-50%);width:min(320px,78vw);min-height:52px!important;
  padding:8px 12px!important;border-color:rgba(92,230,255,.82)!important;
  background:linear-gradient(135deg,rgba(4,48,61,.97),rgba(5,27,35,.98))!important;
  color:#e9fcff!important;font-size:11px!important;font-weight:950!important;
  letter-spacing:.045em;box-shadow:0 8px 30px rgba(0,0,0,.42),0 0 22px rgba(62,211,255,.20);
  touch-action:manipulation!important;
}
body.mobile-menu-open .touch-spaceship-interact,
body.so-phone-open .touch-spaceship-interact,
body.property-panel-open .touch-spaceship-interact,
body.property-interior-mode .touch-spaceship-interact{display:none!important}

body.spaceship-passenger .touch-actions-shell{display:none!important}
body.spaceship-passenger .touch-controls{z-index:46;bottom:calc(148px + var(--so3d-safe-bottom));}
body.spaceship-passenger .touch-pad{opacity:.96;pointer-events:auto}
body.spaceship-passenger .touch-pad button{
  min-width:52px;min-height:48px;border-color:rgba(92,230,255,.48);
  background:rgba(3,25,34,.88);color:#e7fbff;font-size:15px;font-weight:900
}
body.spaceship-passenger .touch-look{z-index:38;top:calc(52px + var(--so3d-safe-top));bottom:calc(138px + var(--so3d-safe-bottom));width:100%;}
body.spaceship-passenger .local-map-panel{z-index:47}

@media (max-width:700px), (max-height:540px) and (pointer:coarse){
  .spaceship-ground-prompt{bottom:calc(142px + var(--so3d-safe-bottom));max-width:92vw;padding:7px 10px;font-size:9px;line-height:1.25}
  .spaceship-cockpit-console{
    left:max(6px,env(safe-area-inset-left,0px));right:max(6px,env(safe-area-inset-right,0px));
    bottom:calc(4px + var(--so3d-safe-bottom));transform:none;width:auto;max-height:min(34dvh,190px);
    overflow:auto;overscroll-behavior:contain;padding:7px 8px 8px
  }
  .spaceship-console-title{gap:6px}.spaceship-console-title b{font-size:9px}.spaceship-console-title span{font-size:8px;text-align:right}
  .spaceship-console-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:5px 0}
  .spaceship-console-stats span{min-width:0;padding:4px;font-size:6px}.spaceship-console-stats strong{font-size:9px}
  .spaceship-console-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .spaceship-console-actions button{min-height:46px;font-size:8px;padding:5px 3px;touch-action:manipulation}
  .spaceship-cockpit-console small{font-size:7px;line-height:1.25;margin-top:5px}
}
@media (max-width:390px){
  .touch-controls .touch-spaceship-interact,.touch-controls .touch-bus-interact{width:min(296px,76vw);font-size:10px}
  body.spaceship-passenger .touch-controls{bottom:calc(158px + var(--so3d-safe-bottom));}
  .spaceship-console-actions{grid-template-columns:1fr 1fr 1fr}
  .spaceship-console-actions button{font-size:7px}
}
@media (max-height:560px) and (pointer:coarse){
  body.spaceship-passenger .touch-controls{bottom:calc(118px + var(--so3d-safe-bottom));}
  body.spaceship-passenger .touch-look{bottom:calc(112px + var(--so3d-safe-bottom));}
  .spaceship-cockpit-console{max-height:112px;padding:5px 7px}
  .spaceship-console-stats{display:none}
  .spaceship-console-actions button{min-height:42px}
  .spaceship-cockpit-console small{display:none}
}
