.ag-columns-overlay[hidden] { display: none; }
.ag-columns-overlay { position: fixed; inset: 0; z-index: 10000; background: rgb(15 23 42 / 36%); display: grid; place-items: center; padding: 24px; }
.ag-columns-dialog { width: min(1040px, 100%); height: min(780px, 85dvh); background: white; border: 1px solid #e2e8f0; border-radius: 8px; display: flex; flex-direction: column; color: #17253a; font: 12px/20px Inter, "Noto Sans SC", sans-serif; box-shadow: 0 20px 60px rgb(0 0 0 / 15%); min-height: 0; }
.ag-columns-dialog * { box-sizing: border-box; letter-spacing: 0; }
.ag-columns-dialog header, .ag-columns-dialog footer { flex-shrink: 0; display: flex; align-items: center; gap: 12px; padding: 16px 20px; }
.ag-columns-dialog header { border-bottom: 1px solid #e7ebf1; justify-content: space-between; }
.ag-columns-dialog h2 { margin: 0; font-size: 16px; font-weight: 500; }
.ag-columns-dialog button { font: inherit; cursor: pointer; }
.ag-columns-dialog button:disabled { opacity: .4; cursor: default; }
.ag-columns-dialog button:focus-visible, .ag-columns-dialog input:focus-visible, .ag-columns-dialog [tabindex]:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
.ag-columns-dialog header button, .ag-columns-list button { width: 28px; height: 28px; padding: 0; border: 0; background: transparent; color: #64748b; display: inline-grid; place-items: center; border-radius: 4px; }
.ag-columns-dialog header button:hover, .ag-columns-list button:not(:disabled):hover { background: #eaf2ff; color: #2563eb; }
.ag-columns-dialog .material-symbols-outlined { font-size: 18px; }
.ag-columns-body { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; padding: 20px; flex: 1; min-height: 0; }
.ag-columns-fields, .ag-columns-selected { min-height: 0; min-width: 0; display: flex; flex-direction: column; }
.ag-columns-search { display: flex; align-items: center; gap: 8px; border: 1px solid #dce2eb; padding: 8px 12px; border-radius: 4px; margin-bottom: 12px; }
.ag-columns-search input { min-width: 0; width: 100%; font: inherit; border: 0; outline: none; background: transparent; }
.ag-columns-groups, .ag-columns-list { overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; min-height: 0; }
.ag-columns-groups details { border-bottom: 1px solid #edf0f5; }
.ag-columns-groups summary { display: flex; align-items: center; gap: 8px; padding: 10px; background: #f6f8fb; font-size: 13px; font-weight: 500; cursor: pointer; list-style: none; }
.ag-columns-groups summary::-webkit-details-marker { display: none; }
.ag-columns-groups summary .material-symbols-outlined { margin-left: auto; }
.ag-columns-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; padding: 8px; }
.ag-columns-options label { display: flex; align-items: center; gap: 8px; min-height: 36px; min-width: 0; }
.ag-columns-dialog input[type="checkbox"] { width: 15px; height: 15px; margin: 0; accent-color: #2563eb; flex-shrink: 0; }
.ag-column-info { position: relative; color: #8390a4; display: inline-flex; cursor: help; }
.ag-column-info:hover::after, .ag-column-info:focus::after { content: attr(data-tooltip); position: absolute; bottom: 100%; right: 0; width: 180px; padding: 8px; border-radius: 4px; background: #17253a; color: white; z-index: 2; font-size: 12px; line-height: 18px; }
.ag-columns-selected { border: 1px solid #e5eaf1; border-radius: 4px; padding: 12px; }
.ag-columns-selected-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-bottom: 12px; }
.ag-columns-selected-heading strong { font-size: 13px; font-weight: 500; }
.ag-columns-selected-heading button { border: 0; background: transparent; color: #2563eb; padding: 0; }
.ag-columns-section-label { color: #7b8799; margin: 4px 0 8px; }
.ag-columns-list ul { list-style: none; padding: 0; margin: 0 0 12px; }
.ag-columns-list li { display: flex; align-items: center; gap: 4px; background: #f7f9fc; border: 1px solid #e5eaf1; border-radius: 4px; min-height: 38px; padding: 4px; margin-bottom: 6px; }
.ag-columns-drag { display: inline-flex; cursor: grab; color: #8390a4; }
.ag-columns-name { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.ag-columns-list li > div { display: flex; flex-shrink: 0; }
.ag-columns-dialog footer { border-top: 1px solid #e7ebf1; }
.ag-columns-dialog footer > span { flex: 1; }
.ag-columns-dialog footer button { min-height: 36px; border-radius: 4px; padding: 6px 16px; }
.ag-columns-error { margin: 0 20px 12px; color: #b42318; overflow-wrap: anywhere; }
.ag-columns-error button { margin-left: 12px; color: #2563eb; border: 0; background: transparent; }
.ag-columns-empty { color: #7b8799; padding: 20px 8px; }
.ag-columns-tabs { display: none; }
#perfTable .ag-summary th { background: #f4f6f9; font-size: 12px; font-weight: 400; }
#perfTable .ag-pinned { position: sticky; left: var(--ag-left); z-index: 2; background: white; }
#perfTable thead .ag-pinned { z-index: 4; background: #f8fafc; }
#perfTable .ag-summary .ag-pinned { background: #f4f6f9; }
@media (max-width: 700px) {
  .ag-columns-overlay { padding: 0; }
  .ag-columns-dialog { height: 100dvh; max-height: 100dvh; border-radius: 0; border: 0; }
  .ag-columns-tabs { display: flex; gap: 8px; padding: 12px 16px 0; }
  .ag-columns-tabs button { flex: 1; padding: 8px; background: #f5f7fa; border: 1px solid #e2e8f0; border-radius: 4px; }
  .ag-columns-tabs button[aria-selected="true"] { background: #eaf2ff; border-color: #b8d0fc; color: #2563eb; }
  .ag-columns-body { grid-template-columns: minmax(0, 1fr); padding: 16px; }
  .ag-columns-overlay[data-tab="fields"] .ag-columns-selected, .ag-columns-overlay[data-tab="selected"] .ag-columns-fields { display: none; }
  .ag-columns-options { gap: 0 8px; }
  .ag-columns-dialog footer { padding: 12px 16px max(12px, env(safe-area-inset-bottom)); gap: 8px; }
  .ag-columns-dialog footer button { padding: 6px 12px; }
}
