/* Shared edit mode background color configuration - change only here */ /* Grid row background: #fffbeb (see MgGridBase.cs OnCustomizeElement) */ /* InfoPanel background: #fffbeb (see below .edit-mode) */ /* Border color: #f59e0b */ /* Main panel - contained within splitter pane */ .mg-grid-info-panel { container-type: inline-size; container-name: infopanel; background-color: var(--dxbl-bg-secondary, #f8f9fa); transition: background-color 0.3s ease, border-color 0.3s ease; display: flex; flex-direction: column; overflow: hidden; /* Prevent panel from pushing out the splitter */ min-height: 0; max-height: 100%; /* Default breakpoints - can be overridden via style attribute */ --mg-bp-2col: 500px; --mg-bp-3col: 800px; --mg-bp-4col: 1200px; } .mg-grid-info-panel.edit-mode { background-color: #fffbeb !important; border-left: 3px solid #f59e0b !important; } .mg-grid-info-panel.view-mode { background-color: #f8f9fa !important; border-left: 3px solid transparent !important; } /* Content area - scrollable, takes remaining space */ .mg-info-panel-content { flex: 1 1 0; overflow-y: auto; overflow-x: hidden; padding: 1rem; min-height: 0; /* Critical for flex child to allow shrinking */ } /* Grid layout with responsive column wrapping based on panel width */ .mg-info-panel-grid { display: grid; grid-template-columns: 1fr; gap: 0.75rem; } /* Fixed column count classes - override responsive behavior */ .mg-columns-1 .mg-info-panel-grid { grid-template-columns: 1fr !important; } .mg-columns-2 .mg-info-panel-grid { grid-template-columns: repeat(2, 1fr) !important; } .mg-columns-3 .mg-info-panel-grid { grid-template-columns: repeat(3, 1fr) !important; } .mg-columns-4 .mg-info-panel-grid { grid-template-columns: repeat(4, 1fr) !important; } /* Responsive layouts using container queries (when no fixed column count) */ /* 1 column for narrow panels (< 2col breakpoint) - default above */ /* 2 columns for medium width */ @container infopanel (min-width: 500px) { .mg-grid-info-panel:not(.mg-columns-1):not(.mg-columns-2):not(.mg-columns-3):not(.mg-columns-4) .mg-info-panel-grid { grid-template-columns: repeat(2, 1fr); } } /* 3 columns for wider panels */ @container infopanel (min-width: 800px) { .mg-grid-info-panel:not(.mg-columns-1):not(.mg-columns-2):not(.mg-columns-3):not(.mg-columns-4) .mg-info-panel-grid { grid-template-columns: repeat(3, 1fr); } } /* 4 columns for very wide panels */ @container infopanel (min-width: 1200px) { .mg-grid-info-panel:not(.mg-columns-1):not(.mg-columns-2):not(.mg-columns-3):not(.mg-columns-4) .mg-info-panel-grid { grid-template-columns: repeat(4, 1fr); } } .mg-info-panel-item { min-width: 0; /* Prevent grid blowout */ } /* Fallback styles */ .info-panel-form { width: 100%; } .info-panel-form .fw-semibold { font-weight: 600; color: var(--dxbl-text-secondary, #495057); font-size: 0.875rem; } .info-panel-form .fw-semibold.text-primary { color: var(--dxbl-primary, #0d6efd); } /* Text overflow handling - show ellipsis and full text in tooltip */ .info-panel-text-wrapper { width: 100%; } .info-panel-text-wrapper input[readonly] { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } /* View mode value styling - matches DevExpress theme */ .mg-info-panel-value { padding: 0.375rem 0.75rem; min-height: 2rem; display: flex; align-items: center; justify-content: flex-start; background-color: var(--dxbl-bg, #fff); border: 1px solid var(--dxbl-border-color, #dee2e6); border-radius: var(--dxbl-border-radius, 0.25rem); font-size: var(--dxbl-font-size, 0.875rem); color: var(--dxbl-text, #212529); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .mg-info-panel-value-numeric { font-variant-numeric: tabular-nums; } .mg-info-panel-value-bool { /* Keep left aligned */ } .mg-info-panel-value-date { font-variant-numeric: tabular-nums; }