/* PAI Grid — AG Grid-style data grid (pairs with js/shared/pai-grid.js) */
.pg { --pg-bg:var(--surface,#12171f); --pg-hd:var(--surface2,#19202b); --pg-bd:var(--border,#273445); --pg-bd2:var(--border2,#324157);
  --pg-tx:var(--text,#d8e9fa); --pg-tx2:var(--text2,#8f9aa9); --pg-tx3:var(--text3,#5f6b7b); --pg-ac:var(--accent,#5ba3eb);
  border:1px solid var(--pg-bd); border-radius:8px; background:var(--pg-bg); overflow:hidden; font-size:12.5px; color:var(--pg-tx2); }
.pg .material-icons-outlined { color:#fff; font-size:16px; line-height:1; vertical-align:middle; }

/* toolbar */
.pg-toolbar { display:flex; align-items:center; gap:8px; padding:8px 10px; border-bottom:1px solid var(--pg-bd); background:var(--pg-hd); flex-wrap:wrap; }
.pg-sp { flex:1; }
.pg-search { display:flex; align-items:center; gap:6px; background:var(--pg-bg); border:1px solid var(--pg-bd2); border-radius:6px; padding:0 8px; height:30px; min-width:220px; }
.pg-search:focus-within { border-color:var(--pg-ac); }
.pg-search input { background:none; border:none; outline:none; color:var(--pg-tx); font:inherit; width:100%; }
.pg-groupsel { display:flex; align-items:center; gap:6px; background:var(--pg-bg); border:1px solid var(--pg-bd2); border-radius:6px; padding:0 4px 0 8px; height:30px; }
.pg-groupsel select { background:none; border:none; color:var(--pg-tx); font:inherit; outline:none; cursor:pointer; }
.pg-groupsel select option, .pg-ff select option, .pg-pager select option { background:var(--pg-hd); }
.pg-tb-btn { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:6px; border:1px solid var(--pg-bd2); background:var(--pg-bg); cursor:pointer; }
.pg-tb-btn:hover { border-color:var(--pg-ac); }
.pg-ext { display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 4px 0 9px; border-radius:13px; font-size:11px; color:#fff;
  background:rgba(91,163,235,0.22); border:1px solid rgba(91,163,235,0.55); }
.pg-ext[hidden] { display:none; }
.pg-ext.pg-ext-idle { background:transparent; border:1px dashed var(--pg-bd2); color:var(--pg-tx2); padding:0 10px; }
.pg-ext.pg-ext-idle .material-icons-outlined { color:var(--pg-tx2); }
.pg-ext .material-icons-outlined { font-size:14px; }
.pg-ext button { display:inline-flex; background:none; border:none; cursor:pointer; padding:2px; border-radius:50%; }
.pg-ext button:hover { background:rgba(255,255,255,0.15); }

/* table */
.pg-vp { overflow:auto; max-height:460px; }
.pg-table { border-collapse:separate; border-spacing:0; table-layout:fixed; min-width:100%; }
.pg-table th, .pg-table td { border-bottom:1px solid var(--pg-bd); border-right:1px solid transparent; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pg-hr th { position:sticky; top:0; z-index:3; background:var(--pg-hd); height:38px; padding:0; text-align:left;
  font-size:11px; font-weight:600; color:var(--pg-tx); letter-spacing:.02em; border-right:1px solid var(--pg-bd); }
.pg-fr th { position:sticky; top:38px; z-index:3; background:var(--pg-hd); padding:4px 6px; border-bottom:1px solid var(--pg-bd2); border-right:1px solid var(--pg-bd); }
.pg-table th.pg-pin, .pg-table td.pg-pin { position:sticky; z-index:2; }
.pg-hr th.pg-pin, .pg-fr th.pg-pin { z-index:4; }
.pg-table td.pg-pin { background:var(--pg-bg); box-shadow:inset -1px 0 0 var(--pg-bd2); }
.pg-th-in { display:flex; align-items:center; height:100%; padding:0 2px 0 10px; }
.pg-th-lbl { flex:1; min-width:0; display:flex; align-items:center; gap:3px; background:none; border:none; color:inherit; font:inherit; text-align:left; cursor:pointer; height:100%; overflow:hidden; white-space:nowrap; }
.pg-num .pg-th-lbl { justify-content:flex-end; }
.pg-th-lbl sup { font-size:9px; color:var(--pg-tx2); }
.pg-th-lbl .pg-sort-ic, .pg-th-lbl .pg-filt-ic { font-size:14px; }
.pg-menu-btn { display:inline-flex; background:none; border:none; cursor:pointer; padding:3px; border-radius:4px; opacity:0; transition:opacity .12s; }
.pg-th:hover .pg-menu-btn, .pg-menu-btn:focus-visible { opacity:1; }
.pg-menu-btn:hover { background:rgba(255,255,255,0.1); }
.pg-rsz { position:absolute; top:0; right:-3px; width:7px; height:100%; cursor:col-resize; z-index:5; }
.pg-rsz::after { content:''; position:absolute; left:3px; top:25%; height:50%; width:1px; background:var(--pg-bd2); }
.pg-rsz:hover::after, .pg-resizing .pg-rsz::after { background:var(--pg-ac); width:2px; }
.pg-hr th { position:sticky; }
.pg-th.pg-dragging { opacity:.45; }
.pg-th.pg-drop { box-shadow:inset 3px 0 0 var(--pg-ac); }
.pg-resizing { cursor:col-resize; user-select:none; }
.pg-ff input, .pg-ff select { width:100%; height:26px; background:var(--pg-bg); border:1px solid var(--pg-bd2); border-radius:4px; color:var(--pg-tx); font:inherit; font-size:11.5px; padding:0 7px; outline:none; }
.pg-ff input:focus, .pg-ff select:focus { border-color:var(--pg-ac); }
.pg-ff input::placeholder { color:var(--pg-tx3); }
.pg-table td { padding:0 10px; height:36px; }
.pg-table td.pg-num { text-align:right; font-family:var(--mono,'IBM Plex Mono',monospace); }
.pg-row:hover td { background:rgba(91,163,235,0.07); }
.pg-row:hover td.pg-pin { background:#1b232f; }
.pg-row td:first-child { color:var(--pg-tx); }
.pg-grp td { background:rgba(255,255,255,0.025); cursor:pointer; color:var(--pg-tx); }
.pg-grp:hover td { background:rgba(255,255,255,0.05); }
.pg-grp-in { display:inline-flex; align-items:center; gap:8px; position:sticky; left:10px; }
.pg-grp-n { font-family:var(--mono,monospace); font-size:10.5px; color:var(--pg-tx2); background:var(--pg-hd); border:1px solid var(--pg-bd2); border-radius:10px; padding:1px 7px; }
.pg-agg { font-size:11px; color:var(--pg-tx3); margin-left:6px; }
.pg-agg b { color:var(--pg-tx2); font-family:var(--mono,monospace); font-weight:500; }
.pg-row.pg-mark td { background:rgba(91,163,235,0.10); }
.pg-row.pg-mark td:first-child { box-shadow:inset 3px 0 0 var(--pg-ac); }
.pg-empty td { text-align:center; color:var(--pg-tx3); height:60px; }

/* status bar */
.pg-status { display:flex; align-items:center; gap:10px; padding:7px 12px; border-top:1px solid var(--pg-bd); background:var(--pg-hd); font-size:11.5px; flex-wrap:wrap; }
.pg-status b { color:var(--pg-tx); }
.pg-pager { display:flex; align-items:center; gap:8px; }
.pg-pager select { background:var(--pg-bg); border:1px solid var(--pg-bd2); border-radius:4px; color:var(--pg-tx); font:inherit; margin-left:4px; }
.pg-pager button { display:inline-flex; background:none; border:none; cursor:pointer; padding:2px; border-radius:4px; }
.pg-pager button:hover:not([disabled]) { background:rgba(255,255,255,0.1); }
.pg-pager button[disabled] { opacity:.3; cursor:default; }

/* popovers (column menu, column chooser) */
.pg-pop { position:absolute; z-index:9800; min-width:190px; background:var(--surface2,#19202b); border:1px solid var(--border2,#324157); border-radius:8px;
  box-shadow:0 12px 32px rgba(0,0,0,0.45); padding:5px; font-size:12.5px; color:var(--text,#d8e9fa); }
.pg-pop button, .pg-pop label { display:flex; align-items:center; gap:9px; width:100%; padding:7px 9px; background:none; border:none; color:inherit; font:inherit; text-align:left; border-radius:5px; cursor:pointer; }
.pg-pop button:hover, .pg-pop label:hover { background:rgba(255,255,255,0.07); }
.pg-pop .material-icons-outlined { font-size:16px; color:#fff; }
.pg-pop hr { border:none; border-top:1px solid var(--border,#273445); margin:4px 0; }
.pg-pop-h { font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--text3,#8b96a6); padding:6px 9px 4px; }
.pg-pop input[type=checkbox] { accent-color:var(--accent,#5ba3eb); }
