/* ABSENKI R12 — compact responsive density and native scroll behavior. */
:root{
  --ak-shadow:0 4px 16px rgba(30,48,82,.075);
  --ak-content:1440px;
}
html{scroll-behavior:auto!important;overscroll-behavior-y:auto}
body{overscroll-behavior-y:auto!important;-webkit-overflow-scrolling:touch}
.main-content{overflow:visible!important}
.card,.page-card,.modal-content,.dropdown-menu{box-shadow:var(--ak-shadow)!important}
.card-body{min-height:0}
.form-group{margin-bottom:.85rem}
.form-control,.custom-select,select{min-height:42px!important;height:auto}
.btn{min-height:42px}
.header.pb-6{padding-bottom:4.25rem!important}
.header .py-4{padding-top:.8rem!important;padding-bottom:.8rem!important}
.main-content>.container-fluid.mt--6{margin-top:-3.25rem!important}

/* Alerts remain readable without covering nearly the whole phone. */
.swal-modal{width:min(92vw,430px)!important;border-radius:18px!important}
.swal-icon{transform:scale(.72);margin:16px auto 4px!important}
.swal-title{font-size:1.35rem!important;padding:10px 18px 0!important}
.swal-text{font-size:.95rem!important;line-height:1.45!important;text-align:center!important;padding:0 20px!important}
.swal-footer{margin-top:14px!important;padding:10px 18px 18px!important}
.swal-button{min-width:88px!important;min-height:42px!important;padding:.55rem 1.1rem!important}

/* Admin forms and action collections. */
.admin-shell .card-header{padding:.85rem 1rem}
.admin-shell .card-body{padding:1rem}
.admin-shell .dashboard-action-card,.admin-shell .learning-stat{min-height:0!important}
.admin-shell .dashboard-action-card .action-desc{display:none}
.admin-shell .dashboard-action-card:not(.dashboard-access-action){display:flex!important;flex-direction:row!important;align-items:center!important;text-align:left!important;gap:.7rem;padding:.75rem!important}
.admin-shell .dashboard-action-card .dashboard-icon{width:40px!important;height:40px!important;min-width:40px!important;margin:0!important;border-radius:12px!important}
.admin-shell .dashboard-action-card .action-title{margin:0!important;font-size:.92rem!important}

/* Long feature pages: reduce decorative depth and expensive motion. */
.manual-hero,.manual-controls,.manual-page-intro,.dispensasi-card,.dispensasi-bulk-section,
.roster-shell,.journal-hero,.journal-filter-card{box-shadow:var(--ak-shadow)!important}
.manual-date-helper,.manual-applied-filter-note,.manual-page-intro p,
.dispensasi-info-box,.dispensasi-bulk-section>p{display:none!important}
.dispensasi-stat-card{padding:.75rem!important;min-height:0!important}
.dispensasi-stat-card .stat-number{font-size:1.35rem!important}
.dispensasi-bulk-section{padding:1rem!important}
.dispensasi-preview-box{padding:.85rem!important;margin-top:.65rem!important}
.dispensasi-form-group textarea.form-control{min-height:76px!important}

/* Avoid nested vertical scroll areas; tables may still scroll horizontally. */
.admin-shell .table-responsive{overflow-x:auto;overflow-y:visible}
.admin-shell .card-body,.admin-shell .page-card{overscroll-behavior:auto}

@media (hover:none),(pointer:coarse){
  .pressable:hover,.card:hover,.dashboard-action-card:hover,.manual-student-row:hover,
  .dispensasi-stat-card:hover,.dispensasi-target-option:hover{transform:none!important}
  .card,.btn,.pressable,.dashboard-action-card,.manual-student-row{transition:none!important}
  .ripple-effect{display:none!important}
  .sticky-actions{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}

@media(max-width:767.98px){
  :root{--ak-shadow:0 3px 12px rgba(30,48,82,.065)}
  body{font-size:14px}
  .main-content>.container-fluid,.main-content>.container{padding-inline:10px!important}
  .header.pb-6{padding-bottom:3.5rem!important}
  .main-content>.container-fluid.mt--6{margin-top:-2.75rem!important}
  .card,.page-card{border-radius:14px!important}
  .card-body,.card-header{padding:11px!important}
  .btn{min-height:40px;padding:.48rem .7rem}
  .form-control,.custom-select,select{min-height:40px!important;font-size:.9rem!important;padding-top:.45rem!important;padding-bottom:.45rem!important}
  .form-control-label,label{margin-bottom:.3rem}
  .modal-dialog{margin:8px!important}
  .modal-content{max-height:calc(100dvh - 16px)!important}
  .modal-header,.modal-footer{padding:.75rem 1rem!important}
  .modal-body{padding:1rem!important}

  /* Keep compact form fields in two columns where labels remain understandable. */
  .manual-filter-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:0!important;padding:0!important}
  .manual-filter-item,.manual-filter-item-wide{width:auto!important;min-width:0!important;padding:0!important;margin:0!important;max-width:none!important}
  .manual-filter-item-wide{grid-column:1/-1}
  .manual-controls{padding:.75rem!important}
  .manual-controls .form-group{margin-bottom:.45rem!important}
  .manual-controls .form-control,.manual-controls .input-group-text{min-height:40px!important;font-size:.84rem!important}
  .manual-controls-footer{padding:.55rem 0 0!important;gap:.5rem!important}
  .manual-page-intro{padding:.65rem!important}
  .manual-status-options .radio-button label{min-width:52px!important;min-height:38px!important;padding:.42rem .55rem!important}

  .dispensasi-card .card-body{padding:.75rem!important}
  .dispensasi-bulk-section .row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 .65rem!important}
  .dispensasi-bulk-section .row>[class*="col-"]{padding:0!important;max-width:none!important}
  .dispensasi-stat-card{height:100%;padding:.55rem .25rem!important;border-radius:12px!important}
  .dispensasi-stat-card .stat-number{font-size:1.15rem!important}
  .dispensasi-stat-card .stat-label{font-size:.65rem!important;line-height:1.2!important}
  .dispensasi-target-option{padding:.5rem!important;margin-bottom:.4rem!important}
  .dispensasi-target-option .target-text small{display:none}
  .dispensasi-bulk-btn{width:100%;min-height:42px!important}

  /* Scanner and public panels. */
  .scanner-card,.scanner-status-card,.scanner-info,.scan-card,.mode-card{box-shadow:var(--ak-shadow)!important}
  .scanner-card,.scan-card{padding:14px!important}
  .scanner-modal .modal-body{padding:12px!important}

  /* Login fits smaller screens without losing its primary action. */
  .login-panel{padding:1.15rem!important;border-radius:18px!important}
  .login-panel-logo{max-height:64px!important}
  .login-panel .form-group{margin-bottom:.8rem!important}
}

@media(max-width:390px){
  .manual-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .swal-icon{transform:scale(.64);margin:8px auto 0!important}
  .swal-title{font-size:1.2rem!important}
}

@media(min-width:768px) and (max-width:1199.98px){
  .admin-shell .card-body{padding:1rem 1.1rem}
  .manual-filter-item{flex-basis:calc(25% - 1rem)!important}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important}
}
