/* NUVYTERA Society mobile UI — one accessible layer at a time.
   The existing city renderer, residents, game physics and accounts are untouched. */
@media (max-width: 680px), (max-width: 940px) and (max-height: 590px) {
  #world, #render, #render canvas {width:100%;height:100%;height:100dvh;}
  .cx-toolbar {top:calc(7px + env(safe-area-inset-top));left:8px;right:8px;display:flex;flex-wrap:nowrap;gap:5px;align-items:center;}
  .cx-toolbar .cx-home,.cx-toolbar .cx-launch {flex:0 1 auto;min-width:0;min-height:44px;height:44px;padding:0 7px;border-radius:10px;font-size:9px;line-height:1.15;letter-spacing:0;text-align:center;white-space:nowrap;}
  .cx-toolbar .cx-home{flex:0 0 auto;}
  .cx-toolbar .cx-launch-main{flex:0 1 auto;}
  .cx-toolbar .cx-chat{margin-left:auto;flex:0 0 auto;}
  .visitor-hud{z-index:82;}
  .visitor-speed{top:calc(59px + env(safe-area-inset-top));left:8px;min-height:43px;display:flex;align-items:center;padding:8px 10px;font-size:9px;}
  .visitor-hint,#metroHint,#hudTip{display:none!important;}
  #metroUi #metroActionsToggle {
    position:fixed;top:calc(59px + env(safe-area-inset-top));right:8px;bottom:auto;left:auto;
    transform:none;width:119px;min-width:0;min-height:43px;height:43px;padding:0 11px;
    font-size:9px;z-index:3;gap:7px;justify-content:center;border-radius:11px;touch-action:manipulation;
  }
  #metroUi #metroActions {
    position:fixed;top:calc(110px + env(safe-area-inset-top));bottom:auto!important;
    left:8px;right:8px;width:auto;max-width:none;max-height:min(53dvh,410px);
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    gap:7px;padding:10px;background:#071a28f7;border:1px solid #78c1b768;
    border-radius:14px;transform:translateY(-9px) scale(.98);z-index:2;box-shadow:0 18px 45px #020917af;
  }
  #metroUi.actions-expanded #metroActions {transform:translateY(0) scale(1);}
  #metroUi #metroActions button,
  #metroUi #metroActions #metroWalk,
  #metroUi #metroActions #metroDrive,
  #metroUi #metroActions #metroCycle,
  #metroUi #metroActions #metroFlight,
  #metroUi #metroActions #metroPowers,
  #metroUi #metroActions #metroVisit,
  #metroUi #metroActions #metroStore,
  #metroUi #metroActions #metroGuide,
  #metroUi #metroActions #metroCamera,
  #metroUi #metroActions #metroMapToggle,
  #metroUi #metroActions #metroPeople {
    position:static;top:auto;right:auto;bottom:auto;left:auto;transform:none;
    display:flex;min-width:0;min-height:46px;height:auto;align-items:center;justify-content:center;
    padding:9px 5px;font-size:9px!important;letter-spacing:0;white-space:normal;
    text-align:center;border-radius:9px;touch-action:manipulation;
  }
  #metroUi.actions-expanded #metroActionsToggle{border-color:#a4efca;background:#134a49;}
  #metroUi.actions-expanded #metroHint,#metroUi.actions-expanded #metroPrompt{visibility:hidden;}
  .visitor-actions button:not(#actionJump):not(#actionSkate){display:none!important;}
  #metroUi #metroActions #actionUfo[hidden]{display:none!important;}
  .move-pad {position:absolute;display:block;pointer-events:auto;touch-action:none;left:11px;bottom:calc(75px + env(safe-area-inset-bottom));width:118px;height:118px;}
  .move-thumb{width:50px;height:50px;}
  .visitor-actions {right:11px;bottom:calc(75px + env(safe-area-inset-bottom));gap:8px;}
  .visitor-actions button,.visitor-actions #actionJump,.visitor-actions #actionSkate {
    display:flex;align-items:center;justify-content:center;min-width:95px;width:95px;min-height:49px;
    padding:9px;border-radius:11px;font-size:10px;touch-action:manipulation;
  }
  #metroUi #metroVitals{
    position:fixed;bottom:calc(12px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);
    padding:7px 12px;gap:8px;max-width:calc(100vw - 16px);min-height:30px;font-size:9px;
  }
  /* Chat is a genuine active mode, not a translucent sheet behind the joystick. */
  body.resident-chat-open #metroUi,body.resident-chat-open #visitorHud,
  body.resident-chat-open #hudTip,body.resident-chat-open #watchAction {
    visibility:hidden!important;pointer-events:none!important;
  }
  body.resident-chat-open .cx-toolbar{pointer-events:none;}
  body.resident-chat-open .cx-toolbar>*{pointer-events:none;}
  .chat-panel {
    position:fixed;z-index:195;top:calc(59px + env(safe-area-inset-top));
    right:8px;bottom:calc(9px + env(safe-area-inset-bottom));left:8px;
    width:auto;height:auto!important;min-height:0;max-height:none;
    border-radius:15px;background:#091829f8;box-shadow:0 25px 90px #020914cf;
  }
  .chat-panel .chat-title{min-height:55px;flex:0 0 auto;}
  .chat-panel .chat-title-actions button{min-width:44px;min-height:44px;display:grid;place-items:center;padding:7px 10px;}
  .chat-panel #chatList{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;}
  .chat-panel #chatList:empty::before{
    content:"Start a conversation. Choose NOVA for cloud chat; other residents reply when their local service is connected.";
    display:block;max-width:28ch;padding:24px 15px;margin:12vh auto 0;
    text-align:center;line-height:1.65;color:#afc6d1;font-size:13px;
  }
  .chat-panel .chat-form{flex:0 0 auto;padding:12px 10px max(12px,env(safe-area-inset-bottom));}
  .chat-panel .chat-form label{font-size:10px;margin-bottom:8px;}
  .chat-panel .chat-input-row{display:flex;gap:7px;align-items:stretch;min-width:0;}
  .chat-panel .chat-input-row select{min-width:82px;width:86px;flex:0 0 86px;height:46px;font-size:12px;padding:4px;}
  .chat-panel .chat-input-row input{
    min-width:0;flex:1 1 0;height:46px;font-size:16px!important;line-height:1.4;
    padding:8px 9px;touch-action:manipulation;
  }
  .chat-panel .chat-input-row button{flex:0 0 46px;width:46px;height:46px;min-height:46px;font-size:19px;}
  /* Creator editor can scroll all the way to publish buttons, even with a mobile keyboard. */
  .cx-modal {padding:0;}
  .cx-shell {width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:0;}
  .cx-top{padding:calc(10px + env(safe-area-inset-top)) 12px 10px;gap:10px;min-height:61px;}
  .cx-close{min-width:47px;min-height:44px;flex-shrink:0;}
  .cx-layout{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom);}
  .cx-editor,.cx-gallery,.cx-modal:not(.editing) .cx-gallery{padding:16px;}
  .cx-title{font-size:clamp(24px,7vw,30px);}
  .cx-editor :where(input,textarea,select){font-size:16px!important;min-height:44px;max-width:100%;}
  .cx-editor .cx-btn,.cx-preview .cx-btn,.cx-publish-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
  .cx-controls{display:flex;flex-wrap:wrap;gap:8px;}
  .cx-controls .cx-btn{flex:1 1 140px;white-space:normal;text-align:center;}
  .cx-directory{max-width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin;}
  .cx-directory>*{flex-shrink:0;}
  .cx-offer-actions{gap:8px;}
  .cx-offer-actions .cx-btn{flex:1 1 130px;}
}
@media (max-width: 360px) {
  .cx-toolbar{gap:4px;}
  .cx-toolbar .cx-home,.cx-toolbar .cx-launch{font-size:8px;padding:0 5px;}
  #metroUi #metroActions{grid-template-columns:repeat(2,minmax(0,1fr));max-height:min(53dvh,415px);}
  .move-pad{left:8px;width:108px;height:108px;bottom:calc(77px + env(safe-area-inset-bottom));}
  .visitor-actions{right:8px;bottom:calc(77px + env(safe-area-inset-bottom));}
  .visitor-actions #actionJump,.visitor-actions #actionSkate{width:88px;min-width:88px;}
  .chat-panel .chat-title-actions button{min-width:40px;}
  .chat-panel .chat-input-row select{min-width:70px;width:73px;flex-basis:73px;}
}
@media (max-width: 940px) and (max-height: 590px) {
  .visitor-speed{display:none;}
  #metroUi #metroActionsToggle{top:calc(55px + env(safe-area-inset-top));}
  #metroUi #metroActions{top:calc(107px + env(safe-area-inset-top));max-height:53dvh;}
  .move-pad{width:88px;height:88px;bottom:calc(45px + env(safe-area-inset-bottom));}
  .visitor-actions{bottom:calc(49px + env(safe-area-inset-bottom));flex-direction:row;}
  .visitor-actions #actionJump,.visitor-actions #actionSkate{min-height:44px;width:76px;min-width:76px;}
  #metroUi #metroVitals{bottom:calc(5px + env(safe-area-inset-bottom));}
  .chat-panel{top:calc(55px + env(safe-area-inset-top));bottom:calc(5px + env(safe-area-inset-bottom));}
  #world:has(#metroUi.actions-expanded) .visitor-hud .move-pad,
  #world:has(#metroUi.actions-expanded) .visitor-hud .visitor-actions{visibility:hidden;pointer-events:none;}
}

@media(max-width:680px){#metroUi #metroActions #metroVoicePreview{
 min-height:46px;height:auto;display:flex;align-items:center;justify-content:center;
 padding:9px 7px;border:1px solid #7be4c5;border-radius:9px;
 background:#184d46;color:#ddffed;font:750 10px Inter,sans-serif;touch-action:manipulation}}
