/* DataTables Bootstrap 5 and local fallback presentation. */
.app-datatable-host{width:100%;overflow:visible!important}
.app-datatable-source{width:100%!important}

/* Official DataTables */
div.dt-container{width:100%;font-family:inherit}
div.dt-container .dt-layout-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0}
div.dt-container .dt-layout-cell{min-width:0}
div.dt-container .dt-search{display:flex;align-items:center;gap:8px}
div.dt-container .dt-search input{min-width:220px}
div.dt-container .dt-length select{min-width:75px}
div.dt-container table.dataTable{width:100%!important;margin:0!important}
div.dt-container .pagination{margin:0;gap:4px;flex-wrap:wrap}
div.dt-container .page-link{border-radius:.45rem!important}
table.dataTable.dtr-inline.collapsed>tbody>tr>td.dtr-control:before,
table.dataTable.dtr-inline.collapsed>tbody>tr>th.dtr-control:before{background-color:#ff5b1f!important}

/* Local fallback when the external DataTables CDN is unavailable. */
.app-dt-fallback-host{overflow:visible!important}
.app-dt-fallback-top,.app-dt-fallback-bottom{font-family:inherit}
.app-dt-length{width:auto;min-width:80px}
.app-dt-search{width:min(100%,280px)}
.app-dt-page-btn{border:1px solid #d7dde5!important;min-width:38px}
.app-dt-info{color:#667281;font-size:.92rem}
.app-dt-sortable{cursor:pointer;position:relative;padding-right:28px!important;user-select:none}
.app-dt-sortable:after{content:'↕';position:absolute;right:10px;color:#aab2bc;font-size:.8em}
.app-dt-sortable[data-sort-direction="asc"]:after{content:'↑';color:#ff5b1f}
.app-dt-sortable[data-sort-direction="desc"]:after{content:'↓';color:#ff5b1f}
.app-dt-fallback-table tr[hidden]{display:none!important}

@media(max-width:767.98px){
  div.dt-container .dt-layout-row{flex-direction:column;align-items:stretch}
  div.dt-container .dt-layout-cell{width:100%}
  div.dt-container .dt-search{width:100%}
  div.dt-container .dt-search input{width:100%;min-width:0;margin:0!important}
  div.dt-container .dt-length{display:flex;align-items:center;gap:8px}

  .app-dt-search-label{align-items:stretch!important;flex-direction:column}
  .app-dt-search{width:100%}
  .app-dt-fallback-bottom{text-align:center}
  .app-dt-pagination{justify-content:center!important;margin-top:.5rem}

  /* Responsive card view for fallback engine. */
  .app-dt-fallback-table{min-width:0!important;border:0!important}
  .app-dt-fallback-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .app-dt-fallback-table tbody,.app-dt-fallback-table tr,.app-dt-fallback-table td{display:block;width:100%}
  .app-dt-fallback-table tbody tr{margin:0 0 1rem;border:1px solid #dfe4ea;border-radius:.75rem;overflow:hidden;background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.05)}
  .app-dt-fallback-table tbody td{display:grid;grid-template-columns:minmax(105px,38%) 1fr;gap:.75rem;align-items:start;padding:.7rem .85rem!important;border-bottom:1px solid #edf0f3!important;text-align:left!important;min-height:42px}
  .app-dt-fallback-table tbody td:last-child{border-bottom:0!important}
  .app-dt-fallback-table tbody td:before{content:attr(data-label);font-weight:600;color:#465365;overflow-wrap:anywhere}
  .app-dt-fallback-table tbody td.actions{display:flex;flex-wrap:wrap;gap:.4rem}
  .app-dt-fallback-table tbody td.actions:before{width:100%;flex:0 0 100%}
}
