/* ============================================================
   AdminGrid — reusable enterprise data-grid design system
   (compact, premium, responsive; powers all admin list pages)
   ============================================================ */
.ag{display:flex;flex-direction:column}

/* toolbar + filters */
.ag__toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--gray-100)}
.ag__toolbar-left,.ag__toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ag__icon-btn{background:none;border:1px solid var(--gray-200);border-radius:8px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gray-500);font-size:15px;transition:all .15s}
.ag__icon-btn:hover{background:var(--gray-50);color:var(--navy);border-color:var(--gray-300)}
.ag__filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px 16px;padding:16px}
.ag__filters .fg{display:flex;flex-direction:column;gap:4px;min-width:0}
.ag__filters label{font-size:12px;font-weight:600;color:var(--gray-500)}
.ag__bulk{display:flex;align-items:center;gap:10px;background:#FFF7ED;border:1px solid #FED7AA;border-radius:var(--radius-sm,8px);padding:10px 14px;margin:12px 16px;flex-wrap:wrap}

/* table container — scroll inside only */
.ag__wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--gray-300) transparent}
.ag__wrap::-webkit-scrollbar{height:8px}
.ag__wrap::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}

/* the grid table */
.ag__table{width:100%;border-collapse:collapse;font-size:13px;min-width:720px}
.ag__table thead th{position:sticky;top:0;z-index:2;background:var(--gray-50);text-align:left;padding:9px 14px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-500);white-space:nowrap;box-shadow:inset 0 -1px 0 var(--gray-200)}
.ag__table th.is-sortable{cursor:pointer;user-select:none}
.ag__table th.is-sortable:hover{color:var(--orange)}
.ag__table td{padding:11px 14px;vertical-align:middle;border-bottom:1px solid var(--gray-100)}
.ag--compact .ag__table td{padding:7px 12px}
.ag__table tbody tr{transition:background .12s}
.ag__table tbody tr:nth-child(even){background:#fcfcfd}
.ag__table tbody tr.ag--clickable{cursor:pointer}
.ag__table tbody tr:hover{background:#f5f7fa}
.ag__table tbody tr.is-selected{background:#FFF7ED}
.ag-right{text-align:right}.ag-center{text-align:center}
.ag__sel{width:36px}
.ag__table td .ag-sub{font-size:11px;color:var(--gray-400);line-height:1.2}

/* sticky action column */
.ag__table th.ag__actions-col,.ag__table td.ag__actions{position:sticky;right:0;text-align:right;background:#fff;box-shadow:-7px 0 9px -7px rgba(15,23,42,.15);white-space:nowrap}
.ag__table thead th.ag__actions-col{background:var(--gray-50)}
.ag__table tbody tr:nth-child(even) td.ag__actions{background:#fcfcfd}
.ag__table tbody tr:hover td.ag__actions{background:#f5f7fa}
.ag__table tbody tr.is-selected td.ag__actions{background:#FFF7ED}

/* uniform pill badges inside grids */
.ag__table .status{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;font-size:11px;font-weight:600;border-radius:999px;white-space:nowrap;line-height:1}

/* avatar + name cell */
.ag-cell{display:flex;align-items:center;gap:9px;min-width:0}
.ag-avatar{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ag-name{font-weight:600;color:var(--navy);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.ag-clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}
.ag-amount{font-weight:700;color:var(--navy);white-space:nowrap}
.ag-nowrap{white-space:nowrap}
.ag-stack .t{display:block;font-size:11px;color:var(--gray-400)}

/* pagination */
.ag__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;font-size:13px;color:var(--gray-500);border-top:1px solid var(--gray-200);flex-wrap:wrap}
.ag__pager{display:flex;align-items:center;gap:4px}
.ag__pager button{min-width:30px;height:30px;border:1px solid var(--gray-200);background:#fff;border-radius:7px;cursor:pointer;color:var(--navy);font-size:13px}
.ag__pager button:hover:not(:disabled){background:var(--gray-50)}
.ag__pager button:disabled{opacity:.4;cursor:not-allowed}
.ag__pagesize{padding:5px 8px;border:1px solid var(--gray-200);border-radius:7px;font-size:12px}

/* skeleton + empty */
.ag-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:46px 16px;color:var(--gray-400)}
.ag-empty__icon{font-size:34px;opacity:.7}
.ag-empty__text{font-size:14px}
.ag-skel td{padding:12px 14px}
.ag-skel .skel{height:12px;display:block}

/* column picker list */
.ag-colpick{display:flex;flex-direction:column;gap:4px}
.ag-colpick label{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:14px;cursor:pointer}
.ag-colpick label:hover{background:var(--gray-50)}

/* ── responsive: tablet/mobile rows → cards ── */
@media(max-width:640px){
  .ag__table{min-width:0}
  .ag__table thead{display:none}
  .ag__table tbody,.ag__table tr,.ag__table td{display:block;width:100%}
  .ag__table tbody tr{border:1px solid var(--gray-200);border-radius:10px;margin:10px;background:#fff!important;overflow:hidden}
  .ag__table td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;border-bottom:1px solid var(--gray-100);padding:9px 14px;text-align:right}
  .ag__table td::before{content:attr(data-label);font-size:11px;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.4px;flex:0 0 auto;text-align:left}
  .ag__table td.ag__sel,.ag__table th.ag__sel{display:none}
  .ag__table td.ag__actions{position:static;box-shadow:none;border-bottom:0;background:#fff!important;justify-content:flex-end}
  .ag__table td.ag__actions::before{display:none}
  .ag-name{max-width:none}
  .ag-clamp2{-webkit-line-clamp:3}
}
