/* Shared phone viewport and controls. Portal branding remains in its own stylesheet. */
@media(max-width:900px),(pointer:coarse){
 html,body{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;text-size-adjust:100%}
 input,select,textarea{font-size:max(16px,1em)!important}
 button,a{touch-action:pan-x pan-y}
}
@media(max-width:680px){
 body{overflow-wrap:break-word}
 body[data-mobile-shell=voucher] .app{width:100%;min-width:0}
 body[data-mobile-shell=voucher] header{padding:20px 16px}
 body[data-mobile-shell=voucher] header .headrow{flex-wrap:wrap;gap:12px}
 body[data-mobile-shell=voucher] header h1{margin-top:16px;font-size:23px}
 body[data-mobile-shell=voucher] header .userbox{overflow-wrap:anywhere;max-width:100%}
 body[data-mobile-shell=voucher] main{padding:16px 12px calc(92px + env(safe-area-inset-bottom))}
 body[data-mobile-shell=voucher] :is(.card,.status){padding:15px 13px;border-radius:15px}
 body[data-mobile-shell=voucher] .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 body[data-mobile-shell=voucher] .tile{padding:17px 13px;min-width:0}
 body[data-mobile-shell=voucher] .tile h3{font-size:16px;line-height:1.5;margin-top:9px}
 body[data-mobile-shell=voucher] .tile p{font-size:12px;line-height:1.6}
 body[data-mobile-shell=voucher] .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 body[data-mobile-shell=voucher] .stat{padding:14px 11px;font-size:12px;min-width:0}
 body[data-mobile-shell=voucher] .stat b{font-size:25px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
 body[data-mobile-shell=voucher] :is(.row,.sequenceGrid){grid-template-columns:minmax(0,1fr)}
 body[data-mobile-shell=voucher] .field{min-width:0;margin:7px 0}
 body[data-mobile-shell=voucher] .searchline{grid-template-columns:90px minmax(0,1fr)}
 body[data-mobile-shell=voucher] .searchline button{grid-column:1/-1}
 body[data-mobile-shell=voucher] :is(.searchline,.historyControls,.historySearchRow)>*{min-width:0}
 body[data-mobile-shell=voucher] :is(input,select,textarea){max-width:100%}
 body[data-mobile-shell=voucher] :is(.topline,.listtop,.staffhead){flex-wrap:wrap;align-items:flex-start}
 body[data-mobile-shell=voucher] .topline h2{font-size:22px;line-height:1.5}
 body[data-mobile-shell=voucher] .meta{grid-template-columns:minmax(72px,.7fr) minmax(0,1.3fr);gap:9px 12px;font-size:13px;line-height:1.6}
 body[data-mobile-shell=voucher] .meta>div:nth-child(even){text-align:right;overflow-wrap:anywhere}
 body[data-mobile-shell=voucher] button{min-height:44px}
 body[data-mobile-shell=voucher] .tabs{gap:6px}
 body[data-mobile-shell=voucher] .tabs button{flex:1 0 auto;padding:10px 11px}
 body[data-mobile-shell=voucher] .actions{gap:8px}
 body[data-mobile-shell=voucher] .actions button{min-width:110px}
 body[data-mobile-shell=voucher] .tableWrap{max-width:100%;overscroll-behavior-x:contain}
 body[data-mobile-shell=voucher] #voucherBottomNav{padding-bottom:env(safe-area-inset-bottom)}
 body[data-mobile-shell=voucher] #voucherBottomNav button{min-height:60px;line-height:1.7}
 body[data-mobile-shell=voucher] .redeemModal{padding:12px}
 body[data-mobile-shell=voucher] .redeemModalBox{padding:17px 14px;max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}
 body[data-mobile-shell=voucher] .loginWrap{padding:18px 14px}
 body[data-mobile-shell=voucher] .loginCard{padding:26px 22px}
}
