/* Shared touch-first refinements for the Persian mobile portals. */
:root{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html{width:100%;max-width:100%;min-height:100%;overflow-x:clip}
body{max-width:100%;overflow-x:clip;overscroll-behavior-x:none;-webkit-tap-highlight-color:transparent;font-family:Vazirmatn,system-ui,Tahoma,sans-serif}
img,svg,video,canvas{max-width:100%}
button{min-height:48px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,filter .12s ease}
a[href]{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,filter .12s ease}
button[aria-label],a[aria-label]{min-width:48px}
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea{box-sizing:border-box;max-width:100%;min-height:48px;font-size:16px!important;touch-action:manipulation}
textarea{min-height:104px}
button:not(:disabled):active,a[href]:active{transform:scale(.98);filter:brightness(.96)}
button:focus-visible,a[href]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(201,168,102,.72);outline-offset:2px}
.card,.panel,.kpi,.invoice-card,.delivery-card,.modal-panel{box-shadow:0 14px 36px rgba(12,31,52,.12)}
.list,.dialog,.dialog-body,.modal-content,.map-wrap{-webkit-overflow-scrolling:touch}
@media(max-width:640px){
  body{min-width:320px;min-height:100svh}
  .shell{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
  .card{background:rgba(255,255,255,.97);backdrop-filter:blur(16px);box-shadow:0 18px 46px rgba(2,12,27,.34);border:1px solid rgba(255,255,255,.72)}
  .kpi-label,.row-sub,.tool small,.field label,.map-hint,.count,.badge,.amount,.empty,.map-caption,.popup-line,.footer,.metric-label,.brand-caption,.invoice-code,.quantity-subtitle,.item-detail small,.amount small,.form-help,.form-label,.filter-chip,.status-badge,.customer-count,.address,.section-head p,.eyebrow,.subtitle{font-size:12px!important}
  .tool strong,.row-title,.panel-head h2{font-size:13px}
  .user-chip{font-size:12px}
  .tool,.action,.map-link,.back-link,.neshan-link,.filter-chip,.icon-button,.quick-login,.login-install-action,.login-install-dismiss,.pwa-install-action,.pwa-install-close,.close,.gps-btn,.primary-btn,.secondary-btn,.mode-switch button{min-height:48px}
  .icon-button,.login-install-dismiss,.pwa-install-close,.close{min-width:48px;min-height:48px}
  .quantity-control{width:48px!important;height:48px!important;min-width:48px}
  .action,.map-link,.back-link,.neshan-link,.filter-chip,.gps-btn,.primary-btn,.secondary-btn{padding-inline:14px}
  .modal-actions{position:sticky;bottom:calc(-15px + env(safe-area-inset-bottom,0px));z-index:5;margin-top:14px;padding:12px 0 max(12px,env(safe-area-inset-bottom,0px));border-top:1px solid rgba(16,31,53,.12);background:rgba(255,255,255,.97);backdrop-filter:blur(12px)}
  .modal-footer{position:sticky;bottom:0;z-index:4;flex:0 0 auto;padding-bottom:max(12px,env(safe-area-inset-bottom,0px));backdrop-filter:blur(12px)}
  .dialog,.modal-panel{max-width:100vw}
  .table-wrap,.list{max-width:100%;overscroll-behavior:contain}
  .form-grid,.toolbar,.kpis{min-width:0}
}
@media(max-width:380px){
  .shell{padding-inline:10px}
  .toolbar{gap:7px}
  .tool{gap:7px;padding:9px}
  .tool-icon{flex-basis:36px}
  .section-title{font-size:17px}
}
@media(prefers-reduced-motion:reduce){
  :root{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
