/* ============ Page-specific ============ */
.ap-card{background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:var(--ap-radius); box-shadow:var(--ap-shadow);}
.ap-card-head{padding:1.1rem 1.25rem; border-bottom:1px solid var(--ap-border);}
.ap-card-head p{font-size:.78rem; color:var(--ap-secondary); margin:.15rem 0 0;}
.ap-card-body{padding:1.25rem;}
.btn-ap-primary{background:var(--ap-primary); border-color:var(--ap-primary); color:#fff; font-weight:600; font-size:.85rem;}
.btn-ap-primary:hover{background:var(--ap-primary-600); border-color:var(--ap-primary-600); color:#fff;}
.btn-ap-light{background:var(--ap-bg); border-color:var(--ap-border); color:var(--ap-text-strong); font-weight:600; font-size:.85rem;}
.btn-ap-light:hover{background:var(--ap-border);}
.btn-ap-danger{background:var(--ap-danger); border-color:var(--ap-danger); color:#fff; font-weight:600; font-size:.85rem;}

.ap-filter-input, .ap-filter-select{background:var(--ap-bg); border:1px solid var(--ap-border); border-radius:var(--ap-radius-sm); font-size:.83rem; color:var(--ap-text-strong); padding:.5rem .75rem;}
.ap-filter-input:focus, .ap-filter-select:focus{outline:none; border-color:var(--ap-primary); background:var(--ap-surface);}

/* Table base */
.ap-table thead th{font-size:.72rem; color:var(--ap-secondary); font-weight:700; border-bottom:1px solid var(--ap-border); padding:.75rem .6rem; white-space:nowrap;}
.ap-table tbody td{padding:.75rem .6rem; border-bottom:1px solid var(--ap-border); vertical-align:middle; font-size:.85rem; color:var(--ap-text);}
.ap-table tbody tr:last-child td{border-bottom:none;}
.ap-table tbody tr:hover{background:var(--ap-bg);}
.ap-cell-strong{color:var(--ap-text-strong); font-weight:600;}
.ap-avatar{width:32px; height:32px; border-radius:50%; object-fit:cover;}
.ap-badge{font-size:.72rem; font-weight:700; padding:.32rem .6rem; border-radius:20px; display:inline-flex; align-items:center; gap:.3rem;}
.ap-badge.success{background:var(--ap-success-100); color:var(--ap-success);}
.ap-badge.warning{background:var(--ap-warning-100); color:var(--ap-warning);}
.ap-badge.danger{background:var(--ap-danger-100); color:var(--ap-danger);}
.ap-badge.info{background:var(--ap-info-100); color:var(--ap-info);}
.ap-badge .bi{font-size:.5rem;}
.ap-row-check{cursor:pointer;}
.ap-action-btn{width:32px; height:32px; border-radius:var(--ap-radius-sm); border:1px solid var(--ap-border); background:var(--ap-surface); color:var(--ap-secondary); display:inline-flex; align-items:center; justify-content:center;}
.ap-action-btn:hover{background:var(--ap-bg); color:var(--ap-text-strong);}
.ap-table thead th[data-sort]{cursor:pointer; user-select:none;}
.ap-table thead th[data-sort]:hover{color:var(--ap-text-strong);}
.ap-table thead th i{font-size:.65rem; margin-left:.15rem; color:var(--ap-secondary);}

/* Expandable rows */
.ap-expand-toggle{width:26px; height:26px; border-radius:6px; border:1px solid var(--ap-border); background:var(--ap-bg); color:var(--ap-secondary); display:inline-flex; align-items:center; justify-content:center; transition:transform .15s ease;}
.ap-expand-toggle.open{transform:rotate(90deg); color:var(--ap-primary); border-color:var(--ap-primary);}
.ap-expand-row{display:none; background:var(--ap-bg);}
.ap-expand-row.open{display:table-row;}
.ap-expand-row td{padding:1rem 1.5rem;}
.ap-expand-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1rem;}
.ap-expand-item .label{font-size:.7rem; color:var(--ap-secondary); text-transform:uppercase; letter-spacing:.03em; font-weight:700;}
.ap-expand-item .value{font-size:.85rem; color:var(--ap-text-strong); font-weight:600; margin-top:.15rem;}

/* Editable table */
.ap-editable-cell{cursor:text; border-radius:6px; padding:.25rem .4rem; margin:-.25rem -.4rem;}
.ap-editable-cell:hover{background:var(--ap-primary-100);}
.ap-editable-cell:focus{outline:2px solid var(--ap-primary); background:var(--ap-surface);}
.ap-editable-cell.editing{background:var(--ap-surface); outline:2px solid var(--ap-primary);}
.ap-row-saved{animation:apRowSaved 1s ease;}
@keyframes apRowSaved{ 0%{background:var(--ap-success-100);} 100%{background:transparent;} }

/* Sticky header table */
.ap-sticky-wrap{max-height:340px; overflow-y:auto; border-radius:var(--ap-radius-sm); border:1px solid var(--ap-border);}
.ap-sticky-wrap table{margin-bottom:0;}
.ap-sticky-wrap thead th{position:sticky; top:0; background:var(--ap-surface); z-index:2; box-shadow:0 1px 0 var(--ap-border);}

/* Responsive card table */
.ap-resp-table thead{display:table-header-group;}
@media (max-width: 767.98px){
  .ap-resp-table{border:0;}
  .ap-resp-table thead{display:none;}
  .ap-resp-table tbody, .ap-resp-table tr, .ap-resp-table td{display:block; width:100%;}
  .ap-resp-table tr{margin-bottom:1rem; border:1px solid var(--ap-border); border-radius:var(--ap-radius-sm); padding:.5rem .75rem; background:var(--ap-surface);}
  .ap-resp-table td{border-bottom:1px solid var(--ap-border); display:flex; justify-content:space-between; align-items:center; padding:.55rem 0; text-align:right;}
  .ap-resp-table td:last-child{border-bottom:0;}
  .ap-resp-table td::before{content:attr(data-label); font-size:.72rem; font-weight:700; color:var(--ap-secondary); text-align:left;}
}

.ap-col-toggle-menu{padding:.6rem .9rem; min-width:180px;}
.ap-col-toggle-menu .form-check{margin-bottom:.3rem;}
