.asset-analysis-overlay { position:fixed; inset:0; z-index:70; background:rgb(0 0 0 / .4); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; padding:24px; } .asset-analysis-dialog { --analysis-line:#d5deea; --analysis-boundary:#b8c6d8; --analysis-accent:#2563eb; --analysis-tint:#eff6ff; display:flex; flex-direction:column; width:min(1040px,100%); max-height:90dvh; min-height:430px; background:white; border-radius:12px; box-shadow:0 24px 60px rgb(15 23 42 / .2); overflow:hidden; color:#334155; font-size:12px; outline:none; } .asset-analysis-dialog.analysis-amber { --analysis-accent:#b45309; --analysis-tint:#fffbeb; } .asset-analysis-dialog button { cursor:pointer; font:inherit; transition:background-color .15s,color .15s; } .asset-analysis-dialog button:disabled { cursor:default; opacity:.45; } .asset-analysis-dialog button:focus-visible,.asset-analysis-dialog input:focus-visible,.asset-analysis-dialog select:focus-visible { outline:2px solid #2563eb; outline-offset:2px; } .analysis-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; background:#1e293b; color:white; flex-shrink:0; } .analysis-header h2 { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:650; } .analysis-header h2 svg { color:#60a5fa; } .analysis-header p { font-size:11px; color:#cbd5e1; margin-top:4px; line-height:1.5; overflow-wrap:anywhere; } .analysis-header button { padding:9px; border-radius:6px; flex-shrink:0; } .analysis-header button:hover { background:#334155; } .analysis-scroll { overflow-y:auto; overscroll-behavior:contain; min-height:0; padding:16px 18px; flex:1; } .analysis-builder { border:1px solid #e2e8f0; border-radius:8px; padding:12px; background:#fff; } .analysis-builder-heading { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:10px; } .analysis-builder-heading h3 { font-size:12px; font-weight:650; color:#1e293b; } .analysis-builder-heading>span { color:#64748b; font-size:11px; } .analysis-reset { display:inline-flex; align-items:center; gap:4px; color:#64748b; margin-left:auto; padding:3px 0; font-size:11px!important; } .analysis-reset:hover { color:#2563eb; } .analysis-dimension-options { display:flex; flex-wrap:wrap; gap:6px; } .analysis-dimension-options button { display:inline-flex; align-items:center; gap:5px; min-height:30px; border:1px solid #e2e8f0; background:#f8fafc; color:#475569; padding:5px 9px; border-radius:5px; font-size:12px; } .analysis-dimension-options button:hover { border-color:#93c5fd; } .analysis-dimension-options button[aria-pressed=true] { background:#eff6ff; color:#1d4ed8; border-color:#93c5fd; } .analysis-dimension-order { display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; font-size:10px; border-radius:3px; background:#2563eb; color:white; } .analysis-filter-row { display:flex; align-items:center; flex-wrap:wrap; gap:6px; border-top:1px solid #edf2f7; margin-top:12px; padding-top:10px; } .analysis-filter-label { display:inline-flex; align-items:center; gap:4px; color:#475569; font-weight:600; margin-right:3px; } .analysis-filter-chip { display:inline-flex; align-items:center; max-width:100%; background:#f1f5f9; border:1px solid #e2e8f0; border-radius:5px; overflow:hidden; } .analysis-filter-chip button { padding:5px 7px; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .analysis-filter-chip button:hover { background:#e2e8f0; } .analysis-filter-chip button:last-child { flex-shrink:0; padding:6px; } .analysis-add-filter { display:inline-flex; align-items:center; gap:3px; border:1px dashed #94a3b8; border-radius:5px; padding:5px 7px; color:#475569; background:white; } .analysis-add-filter:hover { color:#2563eb; border-color:#2563eb; } .analysis-filter-empty { color:#64748b; font-size:11px; } .analysis-text-button { color:#2563eb; padding:5px; } .analysis-filter-editor { margin-top:12px; border:1px solid #bfdbfe; border-radius:7px; box-shadow:0 4px 16px rgb(15 23 42 / .05); background:#fff; } .analysis-filter-editor-top { display:flex; align-items:center; gap:12px; padding:10px 12px; border-bottom:1px solid #e2e8f0; } .analysis-filter-editor-top>label:first-child { display:flex; align-items:center; gap:6px; white-space:nowrap; } .analysis-filter-editor select { padding:5px 8px; border:1px solid #cbd5e1; background:white; border-radius:5px; } .analysis-filter-search { display:flex; align-items:center; gap:6px; min-width:0; margin-left:auto; border:1px solid #e2e8f0; padding:6px 8px; border-radius:5px; color:#64748b; } .analysis-filter-search input { min-width:0; width:130px; outline:none; color:#334155; } .analysis-icon-button { padding:5px; } .analysis-filter-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px 12px; padding:8px 12px; max-height:190px; overflow:auto; } .analysis-filter-options label { display:flex; align-items:center; gap:7px; min-width:0; padding:7px 4px; cursor:pointer; border-radius:4px; } .analysis-filter-options label:hover { background:#f8fafc; } .analysis-filter-options input { accent-color:#2563eb; flex-shrink:0; } .analysis-filter-options label span { overflow-wrap:anywhere; } .analysis-filter-options small { margin-left:auto; color:#64748b; font-size:11px; white-space:nowrap; } .analysis-filter-options>p { grid-column:1/-1; padding:12px 0; color:#64748b; } .analysis-filter-editor-bottom { display:flex; align-items:center; flex-wrap:wrap; gap:8px; border-top:1px solid #e2e8f0; padding:8px 12px; } .analysis-filter-editor-bottom>span { color:#64748b; font-size:11px; margin-right:auto; } .analysis-primary,.analysis-button { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:30px; padding:6px 10px; font-size:12px; border-radius:5px; background:#2563eb; color:#fff; } .analysis-primary:hover { background:#1d4ed8; } .analysis-button { background:#f1f5f9; color:#475569; } .analysis-result-bar { display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding:13px 0 8px; color:#64748b; } .analysis-result-bar strong { font-size:22px; font-weight:650; color:var(--analysis-accent); font-variant-numeric:tabular-nums; margin:0 5px; } .analysis-result-dimensions { margin-left:auto; font-size:11px; max-width:65%; line-height:1.7; } .analysis-inventory-subsets { display:flex; align-items:center; flex-wrap:wrap; gap:6px 16px; margin:2px 0 12px; font-size:12px; } .analysis-inventory-subsets strong { font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; } .analysis-inventory-subsets small { font-size:11px; color:#64748b; } .analysis-pending-count { color:#2563eb; font-variant-numeric:tabular-nums; } .analysis-abnormal-count { color:#b45309; font-variant-numeric:tabular-nums; } .analysis-zero-count { color:#94a3b8; font-variant-numeric:tabular-nums; } .analysis-definition { font-size:11px; line-height:1.7; padding:8px 10px; background:#fffbeb; color:#92400e; border-radius:5px; margin:8px 0; } .analysis-table-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin:10px 0; } .analysis-table-tools h3 { font-size:13px; font-weight:600; color:#1e293b; } .analysis-table-tools h3 small { font-size:11px; color:#64748b; font-weight:400; margin-left:6px; } .analysis-table-tools>p { font-size:11px; color:#64748b; } .analysis-table-tools label { display:flex; align-items:center; gap:6px; font-size:11px; color:#64748b; } .analysis-table-tools select { border:1px solid #e2e8f0; border-radius:5px; padding:5px 7px; background:white; color:#475569; font-size:11px; } .analysis-group-table { overflow:auto; border:1px solid var(--analysis-boundary); border-radius:6px 6px 0 0; } .analysis-group-table table { border-collapse:collapse; width:100%; font-size:12px; } .analysis-group-table th { padding:10px 12px; color:#64748b; font-weight:500; text-align:left; background:#f8fafc; white-space:nowrap; } .analysis-group-table td { padding:10px 12px; border-top:1px solid var(--analysis-line); min-width:84px; max-width:230px; overflow-wrap:anywhere; } .analysis-group-table tbody tr:hover { background:#f8fafc; } .analysis-group-table .analysis-numeric { text-align:right; white-space:nowrap; } .analysis-group-table .analysis-numeric strong { font-size:14px; font-weight:650; color:var(--analysis-accent); font-variant-numeric:tabular-nums; } .analysis-share-cell { min-width:90px!important; text-align:right; font-variant-numeric:tabular-nums; color:#64748b; } .analysis-bar-track { display:block; height:4px; background:#f1f5f9; border-radius:2px; overflow:hidden; margin-top:5px; } .analysis-bar-track>span { display:block; height:100%; background:var(--analysis-accent); border-radius:2px; } .analysis-group-actions { white-space:nowrap; min-width:170px!important; } .analysis-group-actions button { display:inline-flex; align-items:center; gap:4px; padding:5px 6px; color:#2563eb; font-size:11px; border-radius:4px; } .analysis-group-actions button:hover { background:#eff6ff; } .analysis-group-actions button+button { margin-left:5px; } .analysis-table-total { display:flex; justify-content:space-between; gap:12px; padding:10px 12px; color:#64748b; font-size:11px; background:#f8fafc; border:1px solid var(--analysis-boundary); border-top:0; border-radius:0 0 6px 6px; } .analysis-navigation { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 18px; border-bottom:1px solid #e2e8f0; flex-shrink:0; } .analysis-navigation nav { display:flex; flex-wrap:wrap; gap:6px; } .analysis-back { display:flex; gap:5px; align-items:center; font-size:12px; color:#2563eb; white-space:nowrap; padding:5px 0; } .analysis-detail-scope { color:#64748b; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .analysis-search { border:1px solid #e2e8f0; padding:6px 8px; border-radius:5px; } .analysis-search input { width:220px; color:#334155; outline:none; min-width:0; font-size:12px; } .analysis-detail-table { overflow-x:auto; } .analysis-detail-table table { width:100%; min-width:600px; border-collapse:collapse; font-size:12px; } .analysis-detail-table th { font-weight:600; text-align:left; background:#f8fafc; padding:10px; color:#64748b; } .analysis-detail-table td { padding:10px; border-bottom:1px solid #e2e8f0; } .analysis-detail-table td small { display:block; font-size:11px; color:#64748b; margin-top:3px; } .analysis-details .text-base { font-size:13px; }.analysis-details .text-sm { font-size:12px; } .analysis-message { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:40px 16px; text-align:center; color:#64748b; flex:1; font-size:12px; } .analysis-message h3 { font-size:13px; font-weight:600; color:#334155; } .analysis-footer { display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; font-size:10px; color:#64748b; padding:9px 18px; background:#f8fafc; border-top:1px solid #e2e8f0; flex-shrink:0; } /* Legacy weekly entries share the compact analysis vocabulary. */ .analysis-summary { display:flex; align-items:center; justify-content:space-between; gap:15px; background:var(--analysis-tint); padding:12px; border-radius:6px; margin:10px 0; } .analysis-summary strong { display:block; font-size:22px; color:var(--analysis-accent); }.analysis-summary small { font-size:11px; margin-left:4px; } .analysis-row { display:grid; grid-template-columns:1fr 1fr auto 16px; gap:12px; width:100%; text-align:left; align-items:center; padding:12px; border-bottom:1px solid #e2e8f0; } @media(max-width:640px) { .asset-analysis-overlay { padding:8px; }.asset-analysis-dialog { max-height:94dvh; min-height:58dvh; border-radius:10px; } .analysis-header { padding:12px; }.analysis-scroll { padding:12px; }.analysis-builder { padding:10px; } .analysis-builder-heading>span { font-size:10px; }.analysis-dimension-options { gap:5px; }.analysis-dimension-options button { min-height:34px; padding:6px 8px; } .analysis-filter-row { gap:6px; }.analysis-filter-empty { width:100%; margin-top:1px; font-size:10px; } .analysis-filter-editor-top { flex-wrap:wrap; gap:8px; padding:8px; }.analysis-filter-search { order:3; width:100%; }.analysis-filter-search input { width:100%; }.analysis-filter-editor-top .analysis-icon-button { margin-left:auto; } .analysis-filter-options { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 8px; padding:8px; }.analysis-filter-options label { padding:9px 2px; }.analysis-filter-options small { font-size:10px; } .analysis-filter-editor-bottom { gap:6px; padding:8px; }.analysis-filter-editor-bottom>span { width:100%; }.analysis-filter-editor-bottom .analysis-text-button { margin-right:auto; } .analysis-result-bar { gap:10px; }.analysis-result-dimensions { max-width:100%; width:100%; margin:0; font-size:10px; } .analysis-table-tools>p { font-size:10px; }.analysis-definition { font-size:10px; } .analysis-group-table { border:0; overflow:visible; }.analysis-group-table table,.analysis-group-table tbody { display:block; }.analysis-group-table thead { display:none; } .analysis-group-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid #e2e8f0; border-radius:6px; margin-bottom:8px; padding:7px; gap:4px 8px; } .analysis-group-table td { display:flex; flex-direction:column; gap:3px; min-width:0!important; max-width:none; padding:4px; border:0; font-size:12px; } .analysis-group-table td[data-label]::before { content:attr(data-label); font-size:10px; color:#64748b; } .analysis-group-table .analysis-numeric,.analysis-group-table .analysis-share-cell { text-align:left; }.analysis-group-table .analysis-share-cell .analysis-bar-track { max-width:100px; } .analysis-group-table .analysis-group-actions { grid-column:1/-1; display:flex; flex-direction:row; justify-content:flex-end; border-top:1px solid #edf2f7; padding-top:5px; } .analysis-group-actions button { min-height:32px; }.analysis-table-total { border-radius:6px; border-top:1px solid #e2e8f0; font-size:10px; } .analysis-navigation { padding:8px 12px; }.analysis-search { width:100%; }.analysis-search input { width:100%; }.analysis-footer { padding:8px 12px; font-size:10px; } } @media(prefers-reduced-motion:reduce) { .asset-analysis-dialog * { transition:none!important; animation:none!important; } } /* Dimension labels and their Excel-style filter dropdowns form one control. */ .analysis-builder { position:relative; } .analysis-dimension-column { display:inline-flex; min-width:0; max-width:100%; } .analysis-dimension-options .analysis-dimension-name { border-radius:5px 0 0 5px; white-space:nowrap; } .analysis-dimension-options .analysis-dimension-dropdown { border-radius:0 5px 5px 0; border-left:0; padding:5px 7px; min-width:28px; justify-content:center; } .analysis-dimension-dropdown svg { flex-shrink:0; } .analysis-inline-filter { max-width:105px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; } .analysis-dimension-column.has-filter .analysis-dimension-dropdown { background:#eff6ff; color:#2563eb; border-color:#93c5fd; } .analysis-active-note { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px; margin-top:9px; font-size:10px; color:#64748b; } .analysis-active-note .analysis-text-button { font-size:10px; } .analysis-column-popover { position:absolute; z-index:5; width:330px; max-width:calc(100% - 16px); margin-top:0; box-shadow:0 8px 28px rgb(15 23 42 / .18); } .analysis-column-popover .analysis-filter-editor-top { gap:7px; padding:9px 10px; } .analysis-column-popover .analysis-filter-editor-top strong { font-size:12px; } .analysis-column-popover .analysis-filter-editor-top>span { font-size:10px; color:#64748b; } .analysis-column-popover .analysis-icon-button { margin-left:auto; } .analysis-column-popover .analysis-filter-search { margin:8px 10px 0; width:auto; } .analysis-column-popover .analysis-filter-search input { width:100%; font-size:12px; } .analysis-filter-selection { display:flex; align-items:center; gap:12px; padding:8px 12px 2px; font-size:11px; } .analysis-filter-selection button { color:#2563eb; padding:3px 0; } .analysis-filter-selection>span { margin-left:auto; color:#64748b; } .analysis-column-popover .analysis-filter-options { grid-template-columns:1fr; max-height:180px; padding:4px 10px 8px; } .analysis-column-popover .analysis-filter-options label { padding:7px 3px; } .analysis-column-popover .analysis-filter-editor-bottom { gap:6px; padding:8px 10px; } .analysis-column-popover .analysis-filter-editor-bottom>span { width:auto; margin-right:auto; font-size:10px; } @media(max-width:640px) { .analysis-column-popover .analysis-filter-options { max-height:160px; }.analysis-inline-filter { max-width:72px; } } .analysis-table-options { display:flex; flex-wrap:wrap; align-items:center; gap:14px; } .analysis-parent-total { display:block; margin-top:7px; color:#64748b; font-size:11px; font-weight:400; line-height:1.6; white-space:nowrap; } .analysis-parent-total strong { color:var(--analysis-accent); font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; } .analysis-parent-children { display:block; margin-top:3px; color:#64748b; font-size:11px; font-weight:400; line-height:1.6; white-space:nowrap; } .analysis-parent-children strong { font-weight:600; color:#475569; font-variant-numeric:tabular-nums; } .analysis-merge-toggle { cursor:pointer; white-space:nowrap; } .analysis-merge-toggle input { accent-color:#2563eb; width:13px; height:13px; } .analysis-group-table.is-merged td { vertical-align:top; } .analysis-group-table.is-merged td[rowspan]:not([rowspan="1"]) { background:#f8fafc; border-right:1px solid var(--analysis-boundary); border-bottom:1px solid var(--analysis-boundary); font-weight:500; } @media(max-width:640px) { .analysis-group-table.is-merged { overflow:auto; border:1px solid var(--analysis-boundary); border-radius:6px; } .analysis-group-table.is-merged table { display:table; min-width:560px; } .analysis-group-table.is-merged thead { display:table-header-group; } .analysis-group-table.is-merged tbody { display:table-row-group; } .analysis-group-table.is-merged tr { display:table-row; padding:0; border:0; } .analysis-group-table.is-merged td { display:table-cell; padding:10px 12px; border-top:1px solid var(--analysis-line); min-width:80px!important; } .analysis-group-table.is-merged td[data-label]::before { display:none; } .analysis-group-table.is-merged .analysis-numeric,.analysis-group-table.is-merged .analysis-share-cell { text-align:right; } .analysis-group-table.is-merged .analysis-group-actions { display:table-cell; min-width:170px!important; } } /* Keep a one-pixel grid; darker boundaries separate parent groups. */ .analysis-group-table tbody tr:first-child > td, .analysis-group-table.is-merged .analysis-group-start > td { border-top-color:var(--analysis-boundary); }