/* ABSENKI V8 — lapisan desain produksi bersama untuk aplikasi siswa dan admin. */
:root{
  --ak-primary:#5b43ea;--ak-primary-dark:#4430c6;--ak-primary-soft:#f0edff;
  --ak-success:#078b65;--ak-danger:#d93d59;--ak-warning:#b76808;
  --ak-bg:#f4f7fb;--ak-surface:#fff;--ak-text:#182338;--ak-muted:#607089;
  --ak-border:#dce4ef;--ak-radius-sm:10px;--ak-radius:16px;--ak-radius-lg:22px;
  --ak-shadow:0 10px 32px rgba(30,48,82,.09);--ak-content:1580px;
}
html{scroll-behavior:smooth;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{color:var(--ak-text);background-color:var(--ak-bg);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;overflow-x:hidden}
body,button,input,select,textarea{font-feature-settings:"kern" 1,"liga" 1}
a,button,.btn,[role="button"],input,select,textarea{min-height:44px}
button,.btn,[role="button"]{touch-action:manipulation}
:focus-visible{outline:3px solid rgba(91,67,234,.34)!important;outline-offset:2px!important}
.container,.container-fluid{width:min(100%,var(--ak-content));margin-inline:auto}
.main-content>.container-fluid,.main-content>.container{padding-inline:clamp(14px,2vw,30px)}
.card,.modal-content,.dropdown-menu{border-color:var(--ak-border)!important;border-radius:var(--ak-radius)!important;box-shadow:var(--ak-shadow)}
.card-header{border-bottom-color:var(--ak-border);background:linear-gradient(180deg,#fff,#fbfcff);border-radius:var(--ak-radius) var(--ak-radius) 0 0!important}
.form-control,.custom-select,select,textarea{border:1px solid #cbd6e4;border-radius:var(--ak-radius-sm)!important;color:var(--ak-text);background:#fff}
.form-control:focus,.custom-select:focus,select:focus,textarea:focus{border-color:var(--ak-primary);box-shadow:0 0 0 4px rgba(91,67,234,.12)!important}
.btn{border-radius:11px!important;font-weight:700;letter-spacing:.005em;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}
.btn-primary{background:linear-gradient(135deg,var(--ak-primary),#7959ef)!important;border-color:transparent!important;box-shadow:0 8px 20px rgba(91,67,234,.2)}
.btn-danger{background-color:var(--ak-danger);border-color:var(--ak-danger)}
.table-responsive{border-radius:var(--ak-radius);border:1px solid var(--ak-border);background:#fff;overflow:auto;-webkit-overflow-scrolling:touch}
.table{margin-bottom:0;color:var(--ak-text)}
.table thead th{position:sticky;top:0;z-index:1;background:#f7f9fd;color:#40516b;font-size:.72rem;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--ak-border)}
.table td{vertical-align:middle;border-color:#e8edf4}
.badge{border-radius:999px;padding:.42em .72em;font-weight:700}
.appHeader,.admin-topbar{background:linear-gradient(135deg,#5038d8 0%,#7658ee 100%)!important}
.appBottomMenu{padding-bottom:max(6px,env(safe-area-inset-bottom));box-shadow:0 -8px 28px rgba(29,43,69,.1);border-top:1px solid var(--ak-border)}
.appBottomMenu .item{min-width:0;min-height:58px;padding:6px 3px}
.appBottomMenu .item strong{font-size:10px;line-height:1.15;white-space:normal;text-align:center}
.admin-page-title{line-height:1.25;letter-spacing:-.02em}
.login-panel{max-width:480px;margin-inline:auto}
.login-hero-title{max-width:680px;text-wrap:balance}
img{max-width:100%}
@media(min-width:768px){
  .main-content{min-width:0}
  .main-content>.container-fluid,.main-content>.container{padding-inline:clamp(20px,2.2vw,38px)}
  .card-body{padding:clamp(1.15rem,1.6vw,1.75rem)}
}
@media(max-width:767.98px){
  :root{--ak-radius:14px;--ak-radius-lg:18px}
  body{font-size:15px}
  .main-content>.container-fluid,.main-content>.container{padding-inline:12px}
  .card-body,.card-header{padding:14px!important}
  .modal-dialog{margin:10px}
  .modal-content{max-height:calc(100dvh - 20px);overflow:auto}
  .table td,.table th{padding:.72rem .65rem}
  .admin-page-kicker{display:none}
  .admin-page-title{font-size:1rem!important;max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .login-shell-container{padding-inline:12px!important}
}
@media(max-width:390px){
  .appBottomMenu .item strong{font-size:9px}
  .btn{padding-inline:.75rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
