@@ -0,0 +1,157 @@
/* Shared mobile presentation for asset statistics, filters and vehicle details. */
@ media ( max-width : 767px ) {
. asset-analysis-overlay , . bi-flow-modal-backdrop { padding : 0 ; align-items : stretch ; }
. asset-analysis-dialog , . bi-flow-modal { width : 100 % ; max-width : none ; height : 100 dvh ; max-height : 100 dvh ; min-height : 0 ; border-radius : 0 ; font-size : 13 px ; }
. analysis-header , . bi-flow-modal-header { padding : max ( 6 px , env ( safe - area - inset - top ) ) 10 px 6 px ; background : #fff ; color : var ( - - color - slate -800 , #1e293b ) ; border-bottom : 1 px solid var ( - - color - slate -200 , #e2e8f0 ) ; }
. analysis-header { gap : 8 px ; }
. analysis-header > div { flex : 1 ; min-width : 0 ; }
. analysis-header h2 , . bi-flow-modal-header h3 { font-size : 15 px ; }
. analysis-header h2 > svg { display : none ; }
. analysis-header h2 , . bi-flow-modal-header h3 { border-left : 3 px solid var ( - - color - blue -600 , #2563eb ) ; padding-left : 8 px ; }
. analysis-header p , . bi-flow-modal-header p { font-size : 11 px ; line-height : 1.5 ; color : var ( - - color - slate -500 , #64748b ) ; }
. analysis-header button , . bi-flow-modal-close , . bi-flow-mobile-back { display : grid ; place-items : center ; flex-shrink : 0 ; width : 44 px ; height : 44 px ; padding : 0 ; color : var ( - - color - slate -500 , #64748b ) ; background : var ( - - color - slate -50 , #f8fafc ) ; border-radius : 8 px ; }
. analysis-header button : hover , . bi-flow-modal-close : hover { background : var ( - - color - blue -50 , #eff6ff ) ; }
. analysis-scroll , . bi-flow-modal-body { padding : 12 px 16 px max ( 16 px , env ( safe - area - inset - bottom ) ) ; background : var ( - - app - bg , #f4f7fb ) ; }
. analysis-result-bar { padding : 10 px 14 px ; gap : 8 px ; font-size : 12 px ; background : var ( - - color - blue -50 , #eff6ff ) ; border : 1 px solid var ( - - color - blue -100 , #dbeafe ) ; border-radius : 10 px ; color : var ( - - color - slate -600 , #475569 ) ; margin-bottom : 10 px ; }
. analysis-result-bar strong { font-size : 28 px ; margin : 0 4 px ; color : var ( - - color - blue -600 , #2563eb ) ; }
. analysis-result-dimensions { display : none ; }
. analysis-inventory-subsets { gap : 5 px 12 px ; font-size : 11 px ; margin : -11 px 0 8 px ; padding : 8 px 14 px ; background : var ( - - color - blue -50 , #eff6ff ) ; border : 1 px solid var ( - - color - blue -100 , #dbeafe ) ; border-top : 0 ; border-radius : 0 0 10 px 10 px ; }
. analysis-inventory-subsets small { width : 100 % ; font-size : 11 px ; }
. analysis-mobile-toolbar { display : grid ; grid-template-columns : minmax ( 0 , 1 fr ) auto ; gap : 8 px ; }
. analysis-mobile-toolbar > button { display : flex ; align-items : center ; justify-content : center ; gap : 8 px ; min-height : 44 px ; border : 1 px solid #d8e0eb ; border-radius : 9 px ; padding : 8 px 12 px ; background : #f8fafc ; color : #334155 ; font-size : 13 px ; }
. analysis-mobile-toolbar > button : first-child { justify-content : space-between ; }
. analysis-mobile-toolbar > button > span { min-width : 0 ; overflow : hidden ; text-overflow : ellipsis ; white-space : nowrap ; }
. analysis-mobile-toolbar svg { flex-shrink : 0 ; }
. analysis-mobile-chips { display : flex ; flex-wrap : wrap ; gap : 6 px ; margin-top : 8 px ; }
. analysis-mobile-chips button { display : flex ; align-items : center ; gap : 6 px ; max-width : 100 % ; min-height : 44 px ; padding : 6 px 10 px ; border-radius : 8 px ; color : var ( - - color - blue -700 , #1d4ed8 ) ; background : #eff6ff ; font-size : 11 px ; }
. analysis-mobile-chips span { overflow : hidden ; text-overflow : ellipsis ; white-space : nowrap ; }
. analysis-mobile-chips svg { flex-shrink : 0 ; }
. analysis-overview-tools > p , . analysis-overview-tools . analysis-merge-toggle { display : none ; }
. analysis-overview-tools . is-empty { display : none ; }
. analysis-overview-tools . analysis-table-options { width : 100 % ; justify-content : space-between ; gap : 6 px ; }
. analysis-table-tools { margin : 8 px 0 ; }
. analysis-table-tools label , . analysis-table-tools select , . analysis-export-action button { font-size : 11 px ; }
. analysis-table-tools select , . analysis-export-action button { min-height : 44 px ; }
. analysis-table-tools h3 { font-size : 14 px ; }
. analysis-table-tools h3 small { font-size : 12 px ; }
. analysis-table-total { border : 0 ; border-radius : 0 ; background : none ; padding : 8 px 0 ; font-size : 11 px ; line-height : 1.6 ; }
. analysis-table-total > span : last-child { display : none ; }
. analysis-mobile-detail-scope { font-size : 12 px ; color : #64748b ; margin-bottom : 8 px ; }
. analysis-search { width : 100 % ; min-height : 44 px ; padding : 9 px 12 px ; border-radius : 8 px ; }
. analysis-search input { font-size : 16 px ; width : 100 % ; }
. analysis-vehicle-cards { display : grid ; gap : 8 px ; margin-top : 10 px ; }
. analysis-vehicle-card { min-width : 0 ; padding : 12 px ; border : 1 px solid #e2e8f0 ; border-radius : 10 px ; background : #fff ; }
. analysis-vehicle-card header { display : flex ; align-items : flex-start ; flex-wrap : wrap ; gap : 6 px 12 px ; justify-content : space-between ; }
. analysis-vehicle-card h4 { color : var ( - - color - blue -700 , #1d4ed8 ) ; font-size : 14 px ; font-weight : 600 ; line-height : 1.5 ; overflow-wrap : anywhere ; }
. analysis-vehicle-card header > span { font-size : 11 px ; padding : 3 px 6 px ; border-radius : 4 px ; color : #475569 ; background : #f1f5f9 ; }
. analysis-vehicle-card > p { font-size : 12 px ; color : #64748b ; line-height : 1.6 ; margin-top : 6 px ; overflow-wrap : anywhere ; }
. analysis-vehicle-card summary { display : flex ; align-items : center ; min-height : 44 px ; font-size : 12 px ; color : var ( - - color - blue -600 , #2563eb ) ; cursor : pointer ; }
. analysis-vehicle-card summary :: after { content : '+ ' ; margin-left : auto ; }
. analysis-vehicle-card details [ open ] summary :: after { content : '− ' ; }
. analysis-vehicle-card dl > div { display : grid ; grid-template-columns : 90 px minmax ( 0 , 1 fr ) ; gap : 10 px ; padding : 4 px 0 ; font-size : 12 px ; line-height : 1.6 ; }
. analysis-vehicle-card dt { color : #64748b ; }
. analysis-vehicle-card dd { color : #334155 ; overflow-wrap : anywhere ; }
. analysis-footer { padding : 0 16 px max ( 0 px , env ( safe - area - inset - bottom ) ) ; background : #fff ; font-size : 11 px ; }
. analysis-footer details { width : 100 % ; max-height : 28 dvh ; overflow-y : auto ; }
. analysis-footer summary { display : flex ; align-items : center ; min-height : 44 px ; cursor : pointer ; }
. analysis-footer details p { margin-bottom : 10 px ; line-height : 1.6 ; }
. analysis-message { font-size : 13 px ; min-height : 240 px ; }
. analysis-message h3 { font-size : 15 px ; }
. analysis-definition { font-size : 11 px ; }
. analysis-details . text-base { font-size : 14 px ; }
. analysis-details . text-sm { font-size : 13 px ; }
. analysis-details . text-xs { font-size : 11 px ; }
. analysis-details . space-y-3 . px-3 { padding : 0 ; }
. analysis-details . space-y-3 article { box-shadow : none ; }
. analysis-settings-backdrop { position : fixed ; inset : 0 ; z-index : 30 ; background : rgb ( 15 23 42 / 38 % ) ; display : flex ; align-items : flex-end ; }
. analysis-settings-panel { display : flex ; flex-direction : column ; width : 100 % ; height : min ( 680 px , 90 dvh ) ; min-height : 0 ; background : #fff ; border-radius : 12 px 12 px 0 0 ; color : #334155 ; box-shadow : 0 -12 px 36 px #0f172a 20 ; outline : none ; }
. analysis-settings-panel header { display : flex ; align-items : center ; gap : 8 px ; padding : 8 px 12 px ; border-bottom : 1 px solid #e2e8f0 ; }
. analysis-settings-panel header h3 { flex : 1 ; font-size : 15 px ; font-weight : 600 ; }
. analysis-settings-panel header button { width : 44 px ; height : 44 px ; display : grid ; place-items : center ; }
. analysis-settings-search { display : flex ; align-items : center ; gap : 8 px ; margin : 12 px 16 px 0 ; padding : 10 px 12 px ; border : 1 px solid #cbd5e1 ; border-radius : 8 px ; }
. analysis-settings-search input { min-width : 0 ; width : 100 % ; font-size : 16 px ; outline : none ; }
. analysis-settings-content { flex : 1 ; min-height : 0 ; overflow : auto ; overscroll-behavior : contain ; padding : 12 px 16 px ; }
. analysis-settings-content > p { color : #64748b ; font-size : 12 px ; line-height : 1.6 ; margin : 0 0 12 px ; }
. analysis-settings-groups { display : grid ; grid-template-columns : repeat ( 2 , minmax ( 0 , 1 fr ) ) ; gap : 10 px ; margin-bottom : 18 px ; }
. analysis-settings-groups button { min-height : 48 px ; display : flex ; align-items : center ; justify-content : space-between ; padding : 10 px 12 px ; border : 1 px solid #d8e0eb ; border-radius : 8 px ; font-size : 13 px ; }
. analysis-settings-groups button [ aria-pressed = true ] { color : var ( - - color - blue -700 , #1d4ed8 ) ; background : #eff6ff ; border-color : #93c5fd ; }
. analysis-settings-groups . analysis-dimension-order { width : 20 px ; height : 20 px ; font-size : 11 px ; }
. analysis-settings-row { display : flex ; gap : 10 px ; width : 100 % ; align-items : center ; min-height : 48 px ; padding : 8 px 0 ; border-bottom : 1 px solid #e2e8f0 ; text-align : left ; font-size : 13 px ; }
. analysis-settings-row > span { flex : 1 ; }
. analysis-settings-row > small { font-size : 12 px ; color : #64748b ; }
. analysis-settings-select { display : flex ; flex-wrap : wrap ; align-items : center ; gap : 12 px ; font-size : 12 px ; }
. analysis-settings-select button { min-height : 44 px ; color : var ( - - color - blue -600 , #2563eb ) ; }
. analysis-settings-select > span { margin-left : auto ; color : #64748b ; }
. analysis-settings-option { display : flex ; align-items : center ; gap : 12 px ; min-height : 48 px ; padding : 8 px 0 ; border-bottom : 1 px solid #f1f5f9 ; font-size : 13 px ; }
. analysis-settings-option input { width : 18 px ; height : 18 px ; accent-color : var ( - - color - blue -600 , #2563eb ) ; flex-shrink : 0 ; }
. analysis-settings-option span { flex : 1 ; overflow-wrap : anywhere ; }
. analysis-settings-option small { color : #64748b ; font-size : 12 px ; }
. analysis-settings-panel footer { display : grid ; grid-template-columns : 1 fr 2 fr ; gap : 12 px ; padding : 12 px 16 px max ( 12 px , env ( safe - area - inset - bottom ) ) ; border-top : 1 px solid #e2e8f0 ; }
. analysis-settings-panel footer button { min-height : 46 px ; border-radius : 9 px ; background : #f1f5f9 ; font-size : 13 px ; }
. analysis-settings-panel footer . analysis-settings-apply { background : var ( - - color - blue -600 , #2563eb ) ; color : #fff ; }
}
@ media ( max-width : 767px ) {
. bi-flow-modal-header-row { align-items : center ; gap : 8 px ; }
. bi-flow-modal-header-row > div { flex : 1 ; min-width : 0 ; }
. bi-flow-modal-summary { margin : 0 0 12 px ; background : var ( - - color - blue -50 , #eff6ff ) ; border-color : var ( - - color - blue -100 , #dbeafe ) ; }
. bi-flow-modal-summary > div { padding : 10 px 8 px ; gap : 6 px ; }
. bi-flow-modal-summary span , . bi-flow-modal strong small { font-size : 11 px ; }
. bi-flow-modal-summary strong { font-size : 23 px ; }
. bi-flow-modal-section-heading { margin : 12 px 0 4 px ; }
. bi-flow-modal-section-heading h4 { font-size : 14 px ; }
. bi-flow-modal-section-heading p { font-size : 11 px ; }
. bi-flow-modal-empty { font-size : 13 px ; line-height : 1.7 ; color : #64748b ; }
}
@ media ( max-width : 767px ) {
. analysis-details . space-y-3 dt { font-size : 11 px ; line-height : 1.8 ; }
}
@ media ( max-width : 767px ) {
. analysis-mobile-controls { position : sticky ; top : -12 px ; z-index : 5 ; background : var ( - - app - bg , #f4f7fb ) ; padding : 0 0 6 px ; }
. analysis-mobile-dimension-heading { display : flex ; align-items : center ; gap : 8 px ; color : var ( - - color - slate -700 , #334155 ) ; font-size : 12 px ; }
. analysis-mobile-dimension-heading > span { color : var ( - - color - slate -500 , #64748b ) ; font-size : 11 px ; }
. analysis-mobile-dimension-heading > button { margin-left : auto ; min-height : 44 px ; color : var ( - - color - blue -600 , #2563eb ) ; font-size : 11 px ; }
. analysis-mobile-toolbar { grid-template-columns : minmax ( 0 , 1 fr ) auto ; gap : 8 px ; }
. analysis-mobile-toolbar > button { align-self : start ; height : 44 px ; padding : 0 8 px ; gap : 4 px ; white-space : nowrap ; color : var ( - - color - blue -600 , #2563eb ) ; border-color : var ( - - color - blue -100 , #dbeafe ) ; background : var ( - - color - blue -50 , #eff6ff ) ; }
. analysis-dimension-strip { display : flex ; gap : 6 px ; min-width : 0 ; overflow-x : auto ; overscroll-behavior-x : contain ; scrollbar-width : thin ; scrollbar-color : var ( - - color - slate -300 , #cbd5e1 ) transparent ; padding-bottom : 4 px ; }
. analysis-dimension-strip button { flex : 0 0 auto ; display : inline-flex ; align-items : center ; justify-content : center ; gap : 6 px ; min-height : 44 px ; padding : 0 11 px ; border : 1 px solid var ( - - color - slate -200 , #e2e8f0 ) ; border-radius : 8 px ; background : #fff ; color : var ( - - color - slate -600 , #475569 ) ; font-size : 12 px ; }
. analysis-dimension-strip button [ aria-pressed = true ] { background : var ( - - color - blue -600 , #2563eb ) ; border-color : var ( - - color - blue -600 , #2563eb ) ; color : #fff ; box-shadow : 0 2 px 4 px rgb ( 37 99 235 / 12 % ) ; }
. analysis-dimension-strip small { display : grid ; place-items : center ; width : 17 px ; height : 17 px ; border-radius : 50 % ; background : #ffffff 2 b ; font-size : 10 px ; }
. analysis-mobile-grid { border : 1 px solid var ( - - color - slate -200 , #e2e8f0 ) ; border-radius : 10 px ; overflow : hidden ; background : #fff ; box-shadow : 0 2 px 6 px rgb ( 15 23 42 / 3 % ) ; }
. analysis-mobile-grid-heading { min-height : 44 px ; display : flex ; justify-content : space-between ; align-items : center ; gap : 10 px ; padding : 0 12 px ; background : var ( - - color - blue -50 , #eff6ff ) ; color : var ( - - color - slate -700 , #334155 ) ; font-size : 12 px ; }
. analysis-mobile-grid-heading > span { font-size : 11 px ; color : var ( - - color - slate -500 , #64748b ) ; }
. analysis-mobile-grid-heading label { display : inline-flex ; align-items : center ; gap : 7 px ; min-height : 44 px ; font-size : 11 px ; cursor : pointer ; }
. analysis-mobile-grid-heading input { appearance : none ; width : 30 px ; height : 18 px ; border-radius : 10 px ; background : var ( - - color - slate -400 , #94a3b8 ) ; position : relative ; cursor : pointer ; }
. analysis-mobile-grid-heading input :: after { content : '' ; position : absolute ; top : 3 px ; left : 3 px ; width : 12 px ; height : 12 px ; border-radius : 50 % ; background : #fff ; }
. analysis-mobile-grid-heading input : checked { background : var ( - - color - blue -600 , #2563eb ) ; }
. analysis-mobile-grid-heading input : checked :: after { left : 15 px ; }
. analysis-mobile-grid-hint { padding : 6 px 12 px ; font-size : 11 px ; color : var ( - - color - slate -500 , #64748b ) ; border-bottom : 1 px solid var ( - - color - slate -200 , #e2e8f0 ) ; background : var ( - - color - slate -50 , #f8fafc ) ; }
. analysis-mobile-grid-scroll { overflow-x : auto ; overscroll-behavior-x : contain ; scrollbar-width : thin ; }
. analysis-mobile-grid table { width : 100 % ; border-collapse : separate ; border-spacing : 0 ; table-layout : fixed ; font-size : 12 px ; }
. analysis-mobile-grid th { background : var ( - - color - slate -50 , #f8fafc ) ; color : var ( - - color - slate -500 , #64748b ) ; font-weight : 500 ; padding : 7 px 6 px ; text-align : left ; border-bottom : 1 px solid var ( - - color - slate -200 , #e2e8f0 ) ; }
. analysis-mobile-grid th : first-child { padding-left : 12 px ; }
. analysis-mobile-grid td { padding : 4 px 6 px ; border-bottom : 1 px solid var ( - - color - slate -100 , #f1f5f9 ) ; vertical-align : middle ; overflow-wrap : anywhere ; color : var ( - - color - slate -700 , #334155 ) ; line-height : 1.5 ; }
. analysis-mobile-grid tr : nth-child ( even ) td { background : var ( - - color - slate -50 , #f8fafc ) ; }
. analysis-mobile-grid tr : last-child td { border-bottom : 0 ; }
. analysis-mobile-grid td : first-child { padding-left : 12 px ; }
. analysis-mobile-grid . mobile-grid-parent { background : var ( - - color - blue -50 , #eff6ff ) ; border-right : 1 px solid var ( - - color - blue -100 , #dbeafe ) ; font-weight : 600 ; vertical-align : top ; padding-top : 14 px ; }
. analysis-mobile-grid . mobile-grid-parent small { display : block ; margin-top : 6 px ; font-size : 11 px ; font-weight : 400 ; color : var ( - - color - slate -500 , #64748b ) ; }
. analysis-mobile-grid . mobile-grid-group-start : not ( : first-child ) td { border-top : 1 px solid var ( - - color - slate -300 , #cbd5e1 ) ; }
. analysis-mobile-grid . mobile-grid-number { width : 60 px ; text-align : right ; font-variant-numeric : tabular-nums ; }
. analysis-mobile-grid th small { display : block ; font-size : 10 px ; }
. analysis-mobile-grid td . mobile-grid-number strong { font-size : 17 px ; color : var ( - - color - blue -600 , #2563eb ) ; font-weight : 600 ; }
. analysis-mobile-grid td . mobile-grid-number small { display : block ; font-size : 10 px ; color : var ( - - color - amber -600 , #d97706 ) ; }
. analysis-mobile-grid . mobile-grid-share { width : 58 px ; text-align : right ; font-size : 11 px ; font-variant-numeric : tabular-nums ; }
. mobile-grid-share > i { display : block ; margin-top : 5 px ; height : 3 px ; border-radius : 3 px ; overflow : hidden ; background : var ( - - color - blue -100 , #dbeafe ) ; }
. mobile-grid-share > i > i { display : block ; height : 100 % ; background : var ( - - color - blue -500 , #3b82f6 ) ; }
. analysis-mobile-grid . mobile-grid-actions { width : 90 px ; text-align : center ; padding-left : 0 ; padding-right : 4 px ; }
. analysis-mobile-grid . without-filter . mobile-grid-actions { width : 56 px ; }
. mobile-grid-actions > div { display : flex ; justify-content : flex-end ; }
. mobile-grid-actions button { display : grid ; place-items : center ; min-width : 44 px ; height : 44 px ; color : var ( - - color - blue -600 , #2563eb ) ; font-size : 11 px ; border-radius : 7 px ; }
. mobile-grid-actions button : active { background : #dbeafe ; }
. mobile-grid-actions . mobile-grid-filter { color : var ( - - color - slate -400 , #94a3b8 ) ; }
. analysis-table-tools { margin-top : 0 ; }
. analysis-mobile-detail-scope { padding : 10 px 12 px ; border-left : 3 px solid var ( - - color - blue -600 , #2563eb ) ; border-radius : 0 6 px 6 px 0 ; background : var ( - - color - blue -50 , #eff6ff ) ; color : var ( - - color - slate -600 , #475569 ) ; }
. analysis-vehicle-card { border-color : var ( - - color - slate -200 , #e2e8f0 ) ; border-top : 3 px solid var ( - - color - blue -100 , #dbeafe ) ; }
. bi-flow-modal-summary strong { color : var ( - - color - blue -600 , #2563eb ) ; }
}