/* Mobile workspace: preserve desktop layout and existing role permissions. */
@media screen and (max-width:760px){
html{scroll-padding-bottom:100px}html body#portalVariant{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important;min-width:0!important}html body#portalVariant>main{width:100%!important;margin:0!important;padding:16px 12px 24px!important;min-width:0!important;box-sizing:border-box!important}
html body#portalVariant>header{height:auto!important;min-height:76px!important;padding:12px 16px!important;gap:12px!important}#portalVariant>header .brand{min-width:0!important;gap:10px!important}#portalVariant>header .brand img{max-width:76px!important;max-height:52px!important;object-fit:contain!important}#portalVariant>header h1{font-size:21px!important;line-height:1.2!important}#portalVariant>header .brand p,#portalVariant>header .brand small{font-size:10px!important;line-height:1.4!important}
html body#portalVariant #variantNavigation{position:fixed!important;bottom:0!important;left:0!important;right:0!important;top:auto!important;width:100%!important;z-index:1100!important;margin:0!important;padding:0 0 env(safe-area-inset-bottom)!important;border:0!important;background:#fff!important;box-shadow:0 -3px 16px #17223a18!important}html body#portalVariant #vxNav{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:0!important;padding:0 4px!important;min-height:68px!important;overflow:visible!important;max-width:none!important}#portalVariant #vxNav .vx-workspace-label{display:none!important}html body#portalVariant #vxNav>.vx-navbutton,html body#portalVariant #vxManage>summary{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;min-width:0!important;min-height:68px!important;padding:8px 2px!important;font-size:10px!important;line-height:1.25!important;text-align:center!important;border:0!important;border-radius:0!important;white-space:normal!important}#portalVariant #vxNav>.vx-navbutton img,#portalVariant #vxManage>summary img{width:21px!important;height:21px!important}html body#portalVariant #vxNav>#vxManage{width:auto!important;min-width:0!important;position:static!important;border:0!important;margin:0!important}#portalVariant #vxManage>summary::after{display:none!important}#portalVariant #vxManage[open]>summary{background:#edf2ff!important;color:#1555ff!important}html body#portalVariant #vxManage .vx-menu{position:absolute!important;bottom:calc(100% + 8px)!important;top:auto!important;left:10px!important;right:10px!important;width:auto!important;min-width:0!important;max-height:calc(100dvh - 170px)!important;overflow:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;background:#fff!important;border:1px solid #d9e1ef!important;border-radius:12px!important;padding:12px!important;box-shadow:0 -8px 32px #17223a22!important}#portalVariant #vxManage .vx-menu button{min-height:54px!important;white-space:normal!important;text-align:left!important;line-height:1.4!important;font-size:13px!important;padding:12px!important;border:1px solid #e0e6ef!important;border-radius:7px!important;background:#f8fafc!important;color:#17223a!important}
#portalVariant :is(main,dialog) :is(button,.btn,summary){touch-action:manipulation;min-height:44px!important}#portalVariant :is(main,dialog) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}#portalVariant :is(main,dialog) :is(input:not([type=checkbox]):not([type=radio]),select){min-height:44px!important}#portalVariant :is(main,dialog) :is(input[type=checkbox],input[type=radio]){min-width:20px!important;min-height:20px!important;accent-color:#1555ff}#portalVariant :is(main,dialog) label{line-height:1.45!important}#portalVariant main :is(h1,h2){font-size:23px!important;line-height:1.3!important}#portalVariant main h3{line-height:1.35!important}#portalVariant :is(main,dialog) :is(p,strong,small,span){overflow-wrap:anywhere}
#portalVariant :is(.panel-heading,.workspace-heading,.cadastro-title,.raw-forecast-heading,.section-toolbar,.ri-section-head,.io-page-heading){flex-wrap:wrap!important;gap:12px!important}#portalVariant :is(.period-controls,.period-filter,.insight-filters,.vehicle-receipt-filter,.chapas-tools,.exportControls){display:flex!important;flex-wrap:wrap!important;gap:10px!important}#portalVariant :is(.period-filter,.insight-filters,.vehicle-receipt-filter,.exportControls)>:is(label,input,select,button){flex:1 1 145px!important;min-width:0!important;max-width:100%!important}#portalVariant :is(.period-filter,.insight-filters,.vehicle-receipt-filter) label input{width:100%!important}
#portalVariant :is(#ioFilters,#riFilters){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:12px!important;gap:10px!important}#portalVariant :is(#ioFilters,#riFilters)>label{min-width:0!important}#portalVariant #ioFilters>label:nth-child(n+3),#portalVariant #riFilters>label:nth-child(n+3){grid-column:1/-1!important}#portalVariant :is(#ioFilters,#riFilters)>button{width:100%!important;min-width:0!important}#portalVariant .io-kpis,#portalVariant .ri-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}#portalVariant .ri-summary strong{font-size:24px!important}#portalVariant .ri-summary button{min-height:96px!important}#portalVariant :is(.analysis-navigation,.raw-navigation,#rawTabs,.raw-history-tabs,.conf-tabs,.cadastro-tabs){overflow-x:auto!important;max-width:100%!important;scrollbar-width:thin;gap:4px!important;flex-wrap:nowrap!important}#portalVariant :is(.analysis-navigation,.raw-navigation,#rawTabs,.raw-history-tabs)>button{flex:0 0 auto!important;white-space:nowrap!important;font-size:13px!important;padding:12px 14px!important}#portalVariant #rawIntegratedWorkspace nav{overflow:auto!important}#portalVariant #rawIntegratedWorkspace nav button{font-size:13px!important;min-height:48px!important;padding:12px!important}
#portalVariant :is(.vx-content-grid,.cadastro-columns,.expense-editor-layout,.freight-cost-grid,.conf-grid,.supplier-grid,.integrated-grid,.executive-main){grid-template-columns:minmax(0,1fr)!important}#portalVariant #modelInspector{display:block!important}#portalVariant :is(.model-load-row,.dispatch-row,.vx-row){max-width:100%!important;min-width:0!important}#portalVariant :is(.silver-actions,.journey-actions,.detail-actions,.ri-actions,.expense-row-actions,.vehicle-receipt-row>div:last-child,.raw-form-actions){display:flex!important;flex-wrap:wrap!important;gap:8px!important}#portalVariant :is(.silver-actions,.journey-actions,.detail-actions,.ri-actions,.expense-row-actions,.raw-form-actions)>button{flex:1 1 130px!important;white-space:normal!important;font-size:13px!important;padding:10px!important}#portalVariant .silver-actions>.silver-action{flex:1 1 72px!important;min-height:64px!important}#portalVariant .model-action-label{font-size:12px!important}#portalVariant :is(.dispatch-facts,.vx-ticket-data,.raw-inbound-fields,.raw-form-grid,.form-pair,.expense-fields,.expense-fuel-fields,.expense-material-grid){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}#portalVariant :is(.raw-full,.raw-inbound-wide){grid-column:1/-1!important}
#portalVariant :is(.portal-table-scroll,.raw-history-table,.helper-results-table,.table-scroll){max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}#portalVariant .portal-table-scroll table{min-width:560px!important}#portalVariant :is(th,td){font-size:13px!important;padding:12px 10px!important}#portalVariant :is(.vehicle-receipt-row,.ri-opportunities article){grid-template-columns:minmax(0,1fr)!important}#portalVariant #vehicleBillingFlag{bottom:calc(82px + env(safe-area-inset-bottom))!important;right:10px!important;max-width:calc(100vw - 20px)!important}#portalVariant #billingFlagToggle{min-height:44px!important}#portalVariant #variantDock{bottom:calc(82px + env(safe-area-inset-bottom))!important}
#portalVariant dialog{max-width:calc(100vw - 16px)!important;width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;margin:auto!important;border-radius:10px!important;overflow:auto!important;overscroll-behavior:contain}#portalVariant dialog :is(form,.expense-editor-main,.expense-editor-summary,.raw-inbound-fields){min-width:0!important;max-width:100%!important}#portalVariant dialog :is(.drawer-heading,.raw-flow-dialog-head,.raw-inbound-head,.expense-editor-head,.route-dialog-head){gap:12px!important;min-width:0!important}#portalVariant dialog :is(.drawer-heading,.raw-flow-dialog-head,.raw-inbound-head,.expense-editor-head) h2{font-size:21px!important;line-height:1.3!important}#portalVariant dialog :is(.raw-form-grid,.raw-inbound-fields,.expense-fields,.expense-fuel-fields){grid-template-columns:minmax(0,1fr)!important}#portalVariant .expense-editor-summary{position:static!important}#portalVariant :is(#expenseFrame,#vehicleReceiptFrame,#freightReceiptFrame){height:65dvh!important;min-height:220px!important}#portalVariant #routeDialog .route-view{display:flex!important;flex-direction:column!important}#portalVariant #routeDialog .route-map-pane{min-height:280px!important;height:40dvh!important}#portalVariant #routeMap{height:100%!important;min-height:260px!important}#portalVariant #routeChoiceControls fieldset button{flex:1 1 150px!important}#portalVariant .route-choice-actions button{flex:1 1 150px!important}#portalVariant .ri-detail-top{flex-wrap:wrap!important}#portalVariant #rawIntegratedDialog{padding:16px!important}#portalVariant .ri-facts{grid-template-columns:repeat(2,minmax(0,1fr))!important}#portalVariant .ri-agenda-facts{grid-template-columns:repeat(2,minmax(0,1fr))!important}#portalVariant .ri-agenda-fact:first-child{grid-column:1/-1!important}
#portalVariant button:focus-visible,#portalVariant summary:focus-visible{outline:3px solid #1555ff!important;outline-offset:3px!important}#portalVariant :is(.ri-agenda aside,#rawIntegratedWorkspace nav,.analysis-navigation){overscroll-behavior-inline:contain}body:has(dialog[open]) #variantNavigation{visibility:hidden!important}
}
@media screen and (max-width:360px){#portalVariant #vxNav>.vx-navbutton,#portalVariant #vxManage>summary{font-size:9px!important}#portalVariant :is(.dispatch-facts,.vx-ticket-data,.ri-facts){grid-template-columns:minmax(0,1fr)!important}#portalVariant #vxManage .vx-menu{grid-template-columns:minmax(0,1fr)!important}}
@media screen and (max-width:760px){
#portalVariant #farolPanel:not(.raw-forecast-active):not(.raw-history-active)>#rawTabs{display:none!important}
#portalVariant #vxNav>.vx-navbutton.active{border-top:3px solid #1555ff!important;background:#edf2ff!important;color:#1546be!important}
#portalVariant #vxNav>.vx-navbutton[data-model-nav=raw]:not(.active){background:#faf7ff!important;color:#7540ca!important}
#portalVariant #vxNav>.vx-navbutton[data-model-nav=raw].active{border-top-color:#7540ca!important;background:#f0e7fb!important;color:#6332b0!important}
#portalVariant #expenseDialog .expense-mode-switch{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:visible!important;gap:6px!important;padding:10px 12px!important}
#portalVariant #expenseDialog .expense-mode-switch button{min-width:0!important;width:100%!important;white-space:normal!important;font-size:13px!important;padding:10px!important;text-align:left!important;line-height:1.4!important}
#portalVariant #expenseDialog .expense-mode-switch small{white-space:normal!important;font-size:11px!important;line-height:1.4!important}
#portalVariant #expenseDialog .expense-editor-head,#portalVariant #rawIntegratedDialog>header,#portalVariant #rawQuantityDialog .raw-inbound-head{position:sticky!important;top:0!important;z-index:5!important;background:#fff!important;padding:12px!important;margin:0 0 12px!important;border-bottom:1px solid #e0e6ef!important}
#portalVariant #expenseDialog .expense-editor-head h2{font-size:20px!important}
#portalVariant main{font-size:14px!important}#portalVariant main :is(.panel-heading,.workspace-heading)>p{font-size:14px!important}
}
@media screen and (max-width:760px){html body#portalVariant.conferente-mode #vxNav{grid-template-columns:repeat(2,minmax(0,1fr))!important}#portalVariant :is(main,dialog) button{min-width:44px!important}}
