/* TankPlug UI system (shared by /, legal pages, /account, /admin, /app). Loaded AFTER page CSS + theme.css.
   Breakpoints (use these everywhere): sm ≤480 · md ≤820 · lg ≥1100 · xl ≥1440 · xxl ≥1920.
   Tokens: --tap (min touch target), --gutter (page side padding), --maxw-page / --maxw-text, --safe-* (notch / home bar). */
:root{--tap:44px;--gutter:clamp(16px,3vw,40px);--maxw-page:1180px;--maxw-wide:1600px;--maxw-text:72ch;
 --safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--kb:0px}
@media (min-width:1440px){:root{--maxw-page:1320px}}
@media (min-width:1920px){:root{--maxw-page:1480px}}
@media (min-width:2400px){:root{--maxw-page:1680px;--maxw-wide:1920px}}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:clip;-webkit-tap-highlight-color:transparent}
img,svg,video,canvas{max-width:100%}
.leaflet-container img,.leaflet-container svg{max-width:none}
input,select,textarea,button{scroll-margin-block:96px}
/* Touch devices (phones, tablets, Capacitor iOS/Android): 44px targets, 16px inputs (stops iOS zoom), no hover-only effects */
@media (pointer:coarse){
 .btn,button:not(.leaflet-control *):not(.eye),select,summary,.sso,.chip,.side a,.menu,.theme,.tabs a,.lrow a,.nav ul a{min-height:var(--tap)}
 .menu,.theme,.themepick>summary{min-width:var(--tap);min-height:var(--tap)}
 .themepick>summary{width:var(--tap);height:var(--tap)}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px !important;min-height:var(--tap)}
 .sw span{min-height:var(--tap)}
 .brand{min-height:var(--tap);min-width:var(--tap)}
 .leaflet-touch .leaflet-bar a{width:44px;height:44px;line-height:44px}
}
@media (hover:none){.card:hover,.btn:hover,.st:hover,.plan:hover,.feat:hover{transform:none !important}}
/* Legal / long-form text never runs wider than a comfortable measure */
.legal p,.legal li{max-width:var(--maxw-text)}
