/* SLCB full-system responsive stability patch. */
html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}.min-w-0{min-width:0!important}.w-100-mobile{width:auto}
img,svg,canvas,video{max-width:100%;height:auto}.slcb-content{overflow-x:hidden}.slcb-page-card,.slcb-card,.card,.modal-content{max-width:100%}
.table-responsive,.dataTables_wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.dataTables_wrapper .row{margin-left:0;margin-right:0}.dataTables_wrapper .col-sm-12{padding-left:0;padding-right:0}
table.dataTable,table.table{width:100%!important}.dataTables_length label,.dataTables_filter label{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.dataTables_filter input{max-width:100%}
.btn,.btn-sm,.btn-xs{white-space:normal!important;line-height:1.25;display:inline-flex;align-items:center;justify-content:center;gap:.25rem}.btn-group,.btn-toolbar,.slcb-hero-actions,.rbac-module-actions,.modal-footer{display:flex;flex-wrap:wrap;gap:.45rem}.btn-group>.btn{border-radius:.45rem!important;margin:0!important}.modal-footer{justify-content:flex-end}.modal-header{align-items:center;gap:.5rem}.modal-title{min-width:0;word-break:break-word}.modal-body{overflow-x:auto}.modal-dialog{max-width:min(96vw,1200px);margin:1rem auto}.modal-dialog.modal-xl{max-width:min(96vw,1320px)}.modal-dialog.modal-lg{max-width:min(96vw,980px)}
.form-row{row-gap:.75rem}.form-control,select.form-control,textarea.form-control{max-width:100%}.input-group{flex-wrap:nowrap}.input-group>.form-control{min-width:0}.input-group-append .btn,.input-group-prepend .btn{height:auto}
.slcb-toolbar{display:flex;gap:.6rem;flex-wrap:wrap}.slcb-toolbar .form-control{min-width:220px;flex:1 1 240px}.slcb-page-hero,.slcb-template-hero{gap:1rem;flex-wrap:wrap}.slcb-page-hero h1,.slcb-template-hero h1{overflow-wrap:anywhere}.slcb-system-title span{overflow:hidden;text-overflow:ellipsis}.slcb-topbar-left{min-width:0}.slcb-topbar{gap:.75rem}.slcb-sidebar-link span{overflow-wrap:anywhere}
#attendanceModal .modal-dialog,#attendanceRecordsModal .modal-dialog,#Modal_Curriculum .modal-dialog{max-width:min(96vw,1280px)}
#attendanceModal .modal-content,#attendanceRecordsModal .modal-content,#Modal_Curriculum .modal-content{overflow:hidden}#attendanceModal .modal-body,#attendanceRecordsModal .modal-body,#Modal_Curriculum .modal-body{max-height:calc(100vh - 150px);overflow:auto;-webkit-overflow-scrolling:touch}
#attendanceModal table,#attendanceRecordsModal table,#Modal_Curriculum table{min-width:760px}.rbac-perm-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))!important}.rbac-perm{min-width:0}.rbac-page .slcb-page-hero{align-items:flex-start}.rbac-page .slcb-hero-actions{justify-content:flex-end}
@media(max-width:991.98px){
  :root{--slcb-sidebar-width:280px}.slcb-content{padding:16px 10px!important}.slcb-topbar{padding:0 12px!important}.slcb-system-title{font-size:16px!important;min-width:0}.slcb-system-title img{width:32px!important;height:32px!important}.slcb-page-hero,.slcb-template-hero{padding:18px 16px!important;display:flex!important}.slcb-hero-actions,.slcb-template-hero-meta{width:100%;text-align:left}.modal-dialog{max-width:calc(100vw - 16px)!important;margin:.5rem auto!important}.modal-footer{position:sticky;bottom:0;background:#fff;z-index:4;border-top:1px solid #e5edf8}.btn{min-height:38px}.slcb-toolbar{display:block}.slcb-toolbar .form-control{width:100%;margin-bottom:.5rem}.rbac-page .row>[class*="col-"]{padding-left:8px;padding-right:8px}
}
@media(max-width:575.98px){
  .slcb-content{padding:12px 8px!important}.slcb-topbar-date{display:none!important}.slcb-page-hero,.slcb-template-hero{border-radius:14px!important}.slcb-page-hero h1,.slcb-template-hero h1{font-size:22px!important}.modal-header,.modal-footer{padding:.75rem}.modal-body{padding:.75rem}.modal-footer .btn{flex:1 1 100%;width:100%}.btn-group{display:flex;flex-direction:column;width:100%}.btn-group>.btn{width:100%}.input-group{flex-wrap:wrap}.input-group>.form-control{flex:1 1 100%;margin-bottom:.35rem}.input-group-append,.input-group-prepend{width:100%;margin-left:0}.input-group-append .btn,.input-group-prepend .btn{width:100%}.rbac-perm-grid{grid-template-columns:1fr!important}.rbac-module-actions{width:100%;justify-content:flex-start}.dataTables_length label,.dataTables_filter label{align-items:flex-start;flex-direction:column}.dataTables_filter input{width:100%!important;margin-left:0!important}
}
@media print{.slcb-sidebar,.slcb-topbar,.slcb-sidebar-overlay,.slcb-mobile-menu-btn,.slcb-sidebar-desktop-toggle{display:none!important}.slcb-main{margin-left:0!important}.slcb-content{padding:0!important;overflow:visible!important}.modal-footer,.no-print{display:none!important}.table-responsive,.modal-body{overflow:visible!important}}


/* RBAC disabled-looking actions remain clickable so the system can show the privilege warning. */
.slcb-rbac-disabled-action{opacity:.52!important;filter:grayscale(.35);cursor:not-allowed!important;box-shadow:none!important;}
.slcb-rbac-disabled-action:hover{opacity:.65!important;}

/* DataTables toolbar alignment fix 20260711.
   Keeps Show entries on the left and Search on the right on desktop.
   On mobile, both controls stack full-width for readability. */
.dataTables_wrapper > .row:first-child,
.table-responsive > .dataTables_wrapper > .row:first-child{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:.75rem!important;
}
.dataTables_wrapper > .row:first-child > [class^="col-"],
.dataTables_wrapper > .row:first-child > [class*=" col-"],
.table-responsive > .dataTables_wrapper > .row:first-child > [class^="col-"],
.table-responsive > .dataTables_wrapper > .row:first-child > [class*=" col-"]{
  width:auto!important;
  max-width:none!important;
  flex:0 0 auto!important;
}
.dataTables_wrapper > .row:first-child > [class^="col-"]:last-child,
.dataTables_wrapper > .row:first-child > [class*=" col-"]:last-child,
.table-responsive > .dataTables_wrapper > .row:first-child > [class^="col-"]:last-child,
.table-responsive > .dataTables_wrapper > .row:first-child > [class*=" col-"]:last-child{
  margin-left:auto!important;
  display:flex!important;
  justify-content:flex-end!important;
}
.dataTables_wrapper .dataTables_filter,
.table-responsive .dataTables_wrapper .dataTables_filter{
  width:auto!important;
  text-align:right!important;
}
.dataTables_wrapper .dataTables_filter label,
.table-responsive .dataTables_wrapper .dataTables_filter label{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:.45rem!important;
  margin-bottom:0!important;
  white-space:nowrap!important;
}
.dataTables_wrapper .dataTables_filter input,
.table-responsive .dataTables_wrapper .dataTables_filter input{
  width:220px!important;
  max-width:36vw!important;
  margin-left:.35rem!important;
}
@media(max-width:767.98px){
  .dataTables_wrapper > .row:first-child,
  .table-responsive > .dataTables_wrapper > .row:first-child{
    display:block!important;
  }
  .dataTables_wrapper > .row:first-child > [class^="col-"],
  .dataTables_wrapper > .row:first-child > [class*=" col-"],
  .table-responsive > .dataTables_wrapper > .row:first-child > [class^="col-"],
  .table-responsive > .dataTables_wrapper > .row:first-child > [class*=" col-"]{
    width:100%!important;
    max-width:100%!important;
    display:block!important;
  }
  .dataTables_wrapper .dataTables_filter,
  .table-responsive .dataTables_wrapper .dataTables_filter{
    width:100%!important;
    text-align:left!important;
  }
  .dataTables_wrapper .dataTables_filter label,
  .table-responsive .dataTables_wrapper .dataTables_filter label{
    width:100%!important;
    display:block!important;
    white-space:normal!important;
  }
  .dataTables_wrapper .dataTables_filter input,
  .table-responsive .dataTables_wrapper .dataTables_filter input{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-top:.25rem!important;
  }
}
