/* v0.31 mobile/PWA foundation */
.mobile-install-button{display:none}.network-banner{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:90;background:#7a271a;color:#fff;border-radius:999px;padding:7px 12px;font-size:12px;box-shadow:0 8px 24px rgba(16,24,40,.16)}
.mobile-bottom-nav{display:none}.sidebar-backdrop{display:none}.mobile-menu-button{border:0;background:transparent;color:#fff;font-size:23px;padding:4px 8px;line-height:1;cursor:pointer}.mobile-top-actions{display:flex;align-items:center;gap:4px}.mobile-top-install{border:0;background:rgba(255,255,255,.12);color:#fff;border-radius:9px;padding:7px 9px;cursor:pointer}
.scanner-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:16px}.scanner-stage{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:14px;background:#0b1220;display:grid;place-items:center}.scanner-stage video{width:100%;height:100%;object-fit:cover}.scanner-reticle{position:absolute;width:min(66%,360px);aspect-ratio:1.45;border:2px solid rgba(255,255,255,.92);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.22)}.scanner-reticle:before,.scanner-reticle:after{content:"";position:absolute;inset:-3px;border-radius:20px;border-color:var(--accent);pointer-events:none}.scanner-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#cbd5e1;background:#0b1220}.scanner-placeholder strong{font-size:54px;color:#fff}.scanner-actions{margin-top:12px}.scanner-status{min-height:20px}.mobile-tip{border:1px solid #e6e9ef;border-radius:10px;background:#fafbfc;padding:12px}.mobile-tip p{margin:5px 0 0}.pwa-card{border:1px solid #dbe5f0;background:linear-gradient(135deg,#fff,#f7fbff)}.pwa-card .pwa-icon{width:54px;height:54px;border-radius:14px;object-fit:cover;box-shadow:0 4px 14px rgba(16,24,40,.12)}.pwa-card-head{display:flex;gap:12px;align-items:center;margin-bottom:12px}.pwa-card-head h2{margin:0 0 3px}.pwa-status{font-size:12px;color:#667085}.standalone-only{display:none}@media(display-mode:standalone){.standalone-only{display:block}.browser-only{display:none}}
@media(max-width:900px){.scanner-grid{grid-template-columns:1fr}.scanner-card{order:1}.detail-grid{grid-template-columns:1fr}.item-main{grid-template-columns:1fr}.item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.comment-form,.inline-form{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-hubs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}.sidebar{display:flex!important;width:min(88vw,330px)!important;transform:translateX(-105%);transition:transform .2s ease;z-index:70;padding:14px 12px}.sidebar-mobile-open .sidebar{transform:translateX(0)}.sidebar-mobile-open{overflow:hidden}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.44);z-index:60;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-mobile-open .sidebar-backdrop{opacity:1;pointer-events:auto}.sidebar .brand-copy,.sidebar .nav-link>span:last-child,.sidebar .nav-group-title,.sidebar .nav-group-title span,.sidebar .nav-group-title i,.sidebar .userbox>a{display:block!important}.sidebar .brand{padding:5px 7px 12px}.sidebar nav a.nav-link{justify-content:flex-start!important;font-size:14px!important;padding:9px 10px!important}.sidebar .nav-icon{width:26px!important;height:26px!important;flex-basis:26px!important}.sidebar .userbox{justify-content:space-between}.with-sidebar{margin-left:0!important;padding:70px 14px 18px!important}.mobile-top{display:flex!important;position:fixed;top:0;left:0;right:0;height:56px;margin:0!important;padding:8px 10px!important;background:var(--brand);color:#fff;z-index:50;align-items:center;justify-content:space-between;box-shadow:0 2px 10px rgba(16,24,40,.14)}.mobile-top b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55vw}.mobile-install-button{display:inline-flex}.sidebar-mode-toggle{display:none}.sidebar .nav-group.nav-group-collapsed .nav-group-items{display:none!important}
  .mobile-bottom-nav{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:55;grid-template-columns:repeat(5,1fr);height:calc(62px + env(safe-area-inset-bottom));padding:5px 4px env(safe-area-inset-bottom);background:rgba(255,255,255,.97);border-top:1px solid #e4e7ec;box-shadow:0 -4px 18px rgba(16,24,40,.07);backdrop-filter:blur(12px)}.mobile-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:10px;color:#667085;font-size:10px;min-width:0}.mobile-bottom-nav a i{font-style:normal;font-size:20px;line-height:1}.mobile-bottom-nav a.active{color:var(--brand);background:#f1f6fb;font-weight:700}.mobile-bottom-nav a.scan-action i{width:40px;height:40px;border-radius:13px;background:var(--brand);color:#fff;display:grid;place-items:center;margin-top:-12px;box-shadow:0 7px 18px rgba(16,24,40,.18)}
  .page-head{flex-direction:column;gap:10px}.page-head .actions{width:100%}.page-head .actions .btn{flex:1;text-align:center}.toolbar{flex-direction:column}.toolbar input{min-width:0}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.grid2{grid-template-columns:1fr}.quick-hubs{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat{padding:13px}.stat b{font-size:21px}.card,.panel{border-radius:12px;padding:13px}.table-wrap{margin-left:-1px;margin-right:-1px;-webkit-overflow-scrolling:touch}table{min-width:650px}.sticky-actions{bottom:calc(72px + env(safe-area-inset-bottom));overflow-x:auto;white-space:nowrap}.actions{gap:6px}.btn,button.btn{min-height:40px}.comment-form,.inline-form{grid-template-columns:1fr}.item-grid{grid-template-columns:1fr}.quote-total-preview{justify-content:space-between}.page-head h1{font-size:23px}.mobile-page-head{margin-bottom:12px}
}
@media(max-width:420px){.stats{grid-template-columns:1fr 1fr}.stat span{font-size:11px}.stat b{font-size:19px}.mobile-bottom-nav a{font-size:9px}.scanner-stage{aspect-ratio:1/1}.pwa-card-head{align-items:flex-start}}

/* v0.39 mobile form and dense-screen hardening */
@media(max-width:760px){
  html{scroll-padding-top:70px}input,select,textarea{font-size:16px}.table-wrap{overscroll-behavior-x:contain;box-shadow:inset -10px 0 12px -14px rgba(16,24,40,.35)}
  .page-head .actions>.btn,.page-head .actions>form,.page-head .actions>details{flex:1 1 calc(50% - 6px);min-width:min(155px,100%)}.page-head .actions>form>.btn,.page-head .actions>details>summary{width:100%;justify-content:center;text-align:center}
  .sticky-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;white-space:normal;gap:7px}.sticky-actions>*{width:100%;min-width:0}.sticky-actions .btn,.sticky-actions .button{width:100%}
  .card-head,.panel-head{gap:10px;align-items:flex-start}.card-head .actions,.panel-head .actions{justify-content:flex-start}.search-result{grid-template-columns:1fr auto;gap:8px}.search-result>.badge{grid-column:1/-1;justify-self:start}.search-result>div{min-width:0}.search-result b,.search-result small{overflow-wrap:anywhere}
  .file-row{align-items:flex-start;flex-wrap:wrap}.file-row>form{width:100%}.file-row>form .btn{width:100%}
}
@media(max-width:430px){.sticky-actions{grid-template-columns:1fr}.page-head .actions>.btn,.page-head .actions>form,.page-head .actions>details{flex-basis:100%}}

/* SALE-UX-01 — one-hand quotation workflow and card lists. */
@media(max-width:760px){
  .sale-form-jump{top:62px;gap:3px;margin:0 -4px;padding:5px}.sale-form-jump a{min-height:36px;font-size:10px}.sale-form-jump i{width:20px;height:20px}.sale-form-section,.sale-finish-stack{scroll-margin-top:112px}.sale-section-title{align-items:flex-start}.sale-customer-core{grid-template-columns:1fr}.sale-inline-details>summary{align-items:flex-start;flex-direction:column;gap:3px}.sale-details-body{grid-template-columns:1fr}.sale-item-row{padding:11px}.sale-item-row .item-main{padding-right:62px}.sale-item-pricing{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.sale-item-pricing label{min-width:0}.sale-item-pricing input,.sale-item-pricing select{padding-left:7px;padding-right:7px}.sale-line-total{grid-column:1/-1;min-height:auto;border-left:0;border-top:1px solid #e4e7ec;padding:9px 0 0;flex-direction:row;align-items:center;justify-content:space-between}.sale-line-total output{margin:0;font-size:17px}.sale-item-optional{grid-template-columns:1fr}.sale-remove-item{right:10px;top:10px}.sale-advanced-body{grid-template-columns:1fr;padding:12px}.sale-advanced-panel>summary{padding:13px}.sale-submit-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.sale-submit-bar .sale-save-submit{grid-column:1/-1;order:-1}.sale-submit-bar>a{grid-column:auto}.sale-more-menu{flex:1}.sale-more-menu>summary{width:100%;text-align:center}.sale-more-menu>div{position:fixed;left:12px;right:12px;top:auto;bottom:calc(72px + env(safe-area-inset-bottom));min-width:0}.quotation-stepper{display:none!important}.quotation-next-actions.sale-action-panel{display:grid;grid-template-columns:1fr;gap:10px}.sale-action-copy{padding-right:0}.sale-primary-action-wrap,.sale-primary-action,.sale-primary-action .btn{min-width:0;width:100%}.sale-primary-action-wrap:not(.has-input){position:fixed;left:10px;right:10px;bottom:calc(70px + env(safe-area-inset-bottom));z-index:54;padding:8px;border:1px solid #d0d5dd;border-radius:13px;background:rgba(255,255,255,.97);box-shadow:0 -6px 22px rgba(16,24,40,.13);backdrop-filter:blur(10px)}.sale-primary-action-wrap:not(.has-input) .btn{min-height:46px;font-size:14px}.sale-alternate-actions{justify-self:start}.sale-alternate-actions>div{position:static;min-width:0;max-width:none;margin-top:8px;box-shadow:none}.sale-action-spacer{display:block;height:64px}.sale-responsive-table{overflow:visible;padding:0;background:transparent;border:0;box-shadow:none}.sale-responsive-table table,.sale-responsive-table tbody,.sale-responsive-table tr,.sale-responsive-table td{display:block;min-width:0;width:100%}.sale-responsive-table thead{display:none}.sale-responsive-table tr{margin-bottom:10px;padding:11px 12px;border:1px solid #e4e7ec;border-radius:12px;background:#fff;box-shadow:0 3px 12px rgba(16,24,40,.04)}.sale-responsive-table td{display:grid;grid-template-columns:92px minmax(0,1fr);gap:9px;padding:6px 0!important;border:0!important;text-align:left!important}.sale-responsive-table td[data-label]::before{display:block;content:attr(data-label);color:#667085;font-size:10px;font-weight:650}.sale-responsive-table td:first-child{padding-top:0!important}.sale-responsive-table td:first-child b{font-size:16px}.sale-responsive-table td:last-child{padding-bottom:0!important}.sale-responsive-table .sale-empty-row{padding:0}.sale-responsive-table .sale-empty-row td{display:block;text-align:center!important;padding:24px!important}
}
@media(max-width:430px){.sale-submit-bar{grid-template-columns:1fr}.sale-submit-bar .sale-save-submit,.sale-submit-bar>a{grid-column:auto}.sale-item-pricing{grid-template-columns:1fr 1fr}.sale-item-pricing label:nth-child(3){grid-column:1/-1}.sale-line-total{grid-column:1/-1}}

/* SALE-UX-02 — mobile brand parity and revision approval loop. */
.mobile-top-brand{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}.mobile-top-brand img,.mobile-brand-mark{width:30px;height:30px;flex:0 0 30px;border-radius:8px;background:#fff;object-fit:contain;padding:2px}.mobile-brand-mark{display:grid;place-items:center;color:var(--brand);font-size:13px;font-weight:900}.mobile-top-brand b{min-width:0}
@media(max-width:760px){.sale-revision-cycle{grid-template-columns:auto 1fr;gap:5px 8px}.sale-revision-cycle>small{grid-column:1/-1}.mobile-top-brand{max-width:64vw}.mobile-top-brand b{max-width:calc(64vw - 38px)!important}}
@media(max-width:390px){.mobile-top-brand{max-width:58vw}.mobile-top-brand b{max-width:calc(58vw - 38px)!important}.mobile-top-brand img,.mobile-brand-mark{width:28px;height:28px;flex-basis:28px}}
/* LAUNCH-FIX-01 · mobile warehouse actions */
@media(max-width:760px){
  .launch-fix-pending-order{align-items:flex-start}
  .launch-fix-pending-order .btn{width:auto;min-height:42px}
  .launch-fix-serial-register .serial-select-form{display:grid;grid-template-columns:1fr}
  .launch-fix-serial-register input,.launch-fix-serial-register button{width:100%;min-height:44px}
  .launch-fix-create-fulfillment{min-height:46px}
}
