/* Mobile polish shared by staff, GPS, and administrator pages. */
html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden;min-width:0}
*,*::before,*::after{box-sizing:border-box}
a,button,input,select,summary{-webkit-tap-highlight-color:transparent}
button,a,summary{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #1ba778;outline-offset:2px}
input:not([type=checkbox]),select,textarea{font-size:max(16px,1rem)}
button{min-height:44px}
.auth-card,.card,.panel,.mobile-shell,.wrap,main{min-width:0}
@media(max-width:700px){
 body{padding-bottom:env(safe-area-inset-bottom,0px)}
 .mobile-shell{width:100%;padding-left:14px;padding-right:14px;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px))}
 .mobile-head{margin-left:-14px;margin-right:-14px;padding:22px 15px;gap:12px}
 .mobile-head h1{font-size:clamp(19px,5vw,25px);line-height:1.35}
 .mobile-head .mark{width:46px;height:46px;flex:none}
 .mobile-shell .panel{padding:16px;margin-bottom:12px}
 .mobile-shell .btn{min-height:48px;font-size:14px}
 .mobile-shell .auth-tabs button{font-size:12px;min-height:48px;padding:6px 3px}
 .mobile-shell input:not([type=checkbox]){font-size:16px;min-height:48px}
 .mobile-shell .location-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
 .mobile-shell .track-box{padding:12px;gap:10px}
 .mobile-shell .intro{padding:17px}
 .mobile-shell .status-row{flex-wrap:wrap}
 .mobile-shell .offline-mode{padding:14px}
 .head-inner{padding:16px 12px;gap:11px}
 .head-copy h1{font-size:clamp(19px,5vw,26px);line-height:1.35}
 .head-copy p{line-height:1.5}
 .wrap{padding:18px 12px calc(36px + env(safe-area-inset-bottom,0px))}
 .headline{gap:8px}
 .headline h2{font-size:20px}
 .card{padding:16px}
 .request-actions button{min-height:44px}
 .head-inner .back{font-size:12px;min-height:44px;display:inline-grid;align-items:center}
 .topbar .brand{gap:8px}
 .topbar .brand h1{font-size:clamp(16px,4vw,23px)}
 .topbar .brand-mark{min-width:38px;min-height:38px}
 .topbar .top-actions{flex-wrap:wrap;justify-content:flex-start;gap:7px}
 .layout{padding:10px!important;gap:12px!important}
 .map-panel,#liveMap{height:55svh;min-height:360px}
 .map-tools button{min-height:40px}
 .dept-legend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .auth-card{padding:19px;max-height:90svh;overflow-y:auto}
 .auth-card input{font-size:16px}
 body:has(>main){padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px))}
 body:has(>main) main{max-width:100%;padding:19px}
 body:has(>main) h1{font-size:clamp(20px,6vw,25px)}
 body:has(>main) .row{flex-wrap:wrap}
 body:has(>main) .row b{overflow-wrap:anywhere}
}
@media(max-width:390px){
 .mobile-shell .auth-tabs button{font-size:11px}
 .metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .dept-legend-grid{grid-template-columns:1fr!important}
 .mobile-shell .mark{display:none}
}
