/* Muhima Digital: shared mobile-first presentation, compatible with existing Bootstrap. */
:root{--ab-blue:#244ac5;--ab-navy:#163789;--ab-ink:#17264b;--ab-muted:#75809a;--ab-bg:#f4f6fc;--ab-line:#e9edf7;--ab-shadow:0 8px 32px #21377608;--ab-radius:24px;--ab-bottom:82px}
body.ab-app{margin:0;background:var(--ab-bg)!important;color:var(--ab-ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh;padding-bottom:calc(var(--ab-bottom) + env(safe-area-inset-bottom,0px) + 24px);overflow-x:clip}
.ab-app *{box-sizing:border-box}
.ab-app [hidden]{display:none!important}
.ab-app button,.ab-app input,.ab-app select,.ab-app textarea{font:inherit}
.ab-app button,.ab-app a{-webkit-tap-highlight-color:transparent}
.ab-app a{text-decoration:none}
.ab-app button{cursor:pointer}
.ab-app :focus-visible{outline:3px solid #f2ae3d;outline-offset:4px}
.ab-icon{width:25px;height:25px;flex-shrink:0;vertical-align:middle}
.ab-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px 15px;max-width:1120px;margin:auto;padding-top:calc(20px + env(safe-area-inset-top,0px))}
.ab-brand{display:flex;align-items:center;gap:10px;color:var(--ab-ink);min-width:0}
.ab-brand img{width:42px;height:42px;object-fit:contain}
.ab-brand strong{display:block;font-size:17px;letter-spacing:-.5px}
.ab-brand-accent{color:var(--ab-blue)}
.ab-brand small{display:block;color:var(--ab-muted);font-size:9px;line-height:1.7;letter-spacing:.1px}
.ab-avatar-button,.ab-icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--ab-line);border-radius:15px;background:#fff;color:var(--ab-blue);flex-shrink:0}
.ab-avatar-button{border-radius:50%;background:#e7edff;border-color:#dbe5ff}
.ab-avatar-button .ab-icon{width:22px}
.ab-greeting{max-width:1120px;margin:12px auto 22px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.ab-greeting p{margin:0 0 5px;font-size:12px;color:var(--ab-muted)}
.ab-greeting h1{font-size:23px;line-height:1.3;margin:0 0 6px;font-weight:750;letter-spacing:-.7px;overflow-wrap:anywhere}
.ab-greeting span{font-size:12px;color:var(--ab-muted)}
.ab-bottom-nav{position:fixed;z-index:1030;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;height:calc(var(--ab-bottom) + env(safe-area-inset-bottom,0px));padding:8px max(8px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));background:#fffffff7;box-shadow:0 -5px 30px #172c6210;border-top:1px solid #ebeff8;border-radius:22px 22px 0 0;backdrop-filter:blur(18px)}
.ab-nav-item{color:#8b94aa;font-size:10px;font-weight:500;text-align:center;min-width:0;min-height:48px;display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-direction:column;position:relative;line-height:1.2}
.ab-nav-symbol{display:flex;align-items:center;justify-content:center;min-height:27px}
.ab-nav-item .ab-icon{width:24px;height:24px}
.ab-nav-item:hover,.ab-nav-item.is-active{color:var(--ab-blue)}
.ab-nav-item.is-active:not(.ab-nav-primary):after{content:"";position:absolute;bottom:-7px;width:4px;height:4px;border-radius:50%;background:var(--ab-blue)}
.ab-nav-primary{color:var(--ab-blue);font-weight:650}
.ab-nav-primary .ab-nav-symbol{width:61px;height:61px;min-height:61px;background:linear-gradient(145deg,#4169e9,#244ac5);border:5px solid var(--ab-bg);border-radius:50%;margin-top:-30px;color:white;box-shadow:0 6px 16px #244ac52b}
.ab-nav-primary .ab-icon{width:29px;height:29px}
.ab-more{padding:0;border:0;border-radius:28px 28px 0 0;background:white;color:var(--ab-ink);width:100%;max-width:760px;max-height:calc(100dvh - 108px - env(safe-area-inset-bottom,0px));margin:auto auto calc(89px + env(safe-area-inset-bottom,0px));overflow:hidden;box-shadow:0 20px 100px #111d3b40}
.ab-more::backdrop,.ab-install-dialog::backdrop{background:#0e173c66;backdrop-filter:blur(3px)}
.ab-more[open]{display:flex;flex-direction:column;animation:ab-slide .18s ease-out}
.ab-sheet-handle{width:36px;height:4px;border-radius:4px;background:#dfe4ee;margin:10px auto 0;flex-shrink:0}
.ab-sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 22px 12px;flex-shrink:0}
.ab-sheet-heading h2{font-size:16px;font-weight:700;margin:0 0 4px;letter-spacing:.1px}
.ab-sheet-heading p{font-size:10px;margin:0;color:var(--ab-muted)}
.ab-sheet-heading .ab-icon-button{width:38px;height:38px;border:0;background:#f4f6fc;color:var(--ab-muted)}
.ab-sheet-scroll{overflow-y:auto;overscroll-behavior:contain;padding:6px 12px 20px;min-height:0}
.ab-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 2px}
.ab-menu-tile{border:0;background:transparent;display:flex;align-items:center;justify-content:flex-start;flex-direction:column;gap:10px;min-width:0;min-height:106px;padding:19px 4px 11px;color:#465674;text-align:center;border-radius:16px;line-height:1.4;font-size:12px;font-weight:500}
.ab-menu-tile .ab-icon{width:28px;height:28px;color:#425572;stroke-width:1.5}
.ab-menu-tile small{font-size:8px;color:#9aa4b8;font-weight:400;margin-top:-6px;letter-spacing:.1px}
.ab-menu-tile:hover{background:#f1f5ff;color:var(--ab-blue)}
.ab-menu-tile:hover .ab-icon{color:var(--ab-blue)}
.ab-menu-tile span{max-width:115px;overflow-wrap:anywhere}
.ab-menu-caption{text-transform:uppercase;font-size:10px;letter-spacing:1.2px;color:#8a94a9;margin:15px 12px 6px;font-weight:650}
.ab-sheet-footer{padding:14px 10px 0;margin-top:12px;border-top:1px solid var(--ab-line)}
.ab-sheet-action{display:flex;align-items:center;gap:12px;text-align:left;border:0;background:none;color:var(--ab-ink);width:100%;min-height:54px;padding:10px 6px;font-size:12px}
.ab-sheet-action span{flex:1}.ab-sheet-action small{display:block;color:var(--ab-muted);font-size:10px;margin-top:3px}
.ab-sheet-action>.ab-icon:last-child{width:18px}.ab-signout{color:#d05a67}
.ab-quick-card{background:white;border-radius:var(--ab-radius);padding:20px 16px 10px;box-shadow:var(--ab-shadow);border:1px solid #eef1f8}
.ab-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 4px}
.ab-section-heading h2{font-size:15px;margin:0;font-weight:700}
.ab-section-heading button{background:none;border:0;padding:8px 0;color:var(--ab-blue);font-size:10px;min-height:36px}
.ab-section-heading .ab-icon{width:13px;height:13px}
.ab-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.ab-quick-grid .ab-menu-tile{min-height:96px;font-size:10px;gap:9px}
.ab-quick-grid .ab-icon{width:25px;height:25px;padding:10px;box-sizing:content-box;border-radius:16px;background:#eff3ff;color:var(--ab-blue)}
.ab-hero-actions{display:flex;gap:10px;margin-top:18px}
.ab-hero-actions a,.ab-hero-actions button{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid #ffffff38;border-radius:13px;background:#ffffffed;color:#234798;font-size:12px;font-weight:600;padding:10px 8px}
.ab-hero-actions .ab-icon{width:18px;height:18px}
.ab-hero-actions .ab-hero-secondary{background:#ffffff12;color:white}
.ab-history-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}
.ab-history-heading .attendance-title{margin:0!important}
.ab-history-link{font-size:11px;white-space:nowrap;color:var(--ab-blue);padding:10px 0}
.ab-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:0;border-radius:14px;padding:12px 24px;background:var(--ab-blue);color:white;font-weight:600;font-size:13px}
.ab-button:hover{background:var(--ab-navy);color:white}
.ab-text-button{display:block;background:transparent;border:0;color:var(--ab-muted);padding:12px;min-height:44px;margin:auto;font-size:13px}
.ab-feature-main{max-width:800px;margin:auto;padding:0 22px}
.ab-back{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ab-muted);min-height:44px;margin-bottom:12px}
.ab-back .ab-icon{width:17px;height:17px}
.ab-empty-state{text-align:center;border-radius:28px;background:white;padding:40px 24px;box-shadow:var(--ab-shadow)}
.ab-empty-icon{width:88px;height:88px;display:grid;place-items:center;border-radius:28px;background:#edf2ff;color:var(--ab-blue);margin:0 auto 24px}
.ab-empty-icon .ab-icon{width:40px;height:40px}
.ab-eyebrow{display:block;color:var(--ab-blue);font-size:10px;letter-spacing:2px;font-weight:700;margin-bottom:10px}
.ab-empty-state h1{font-size:25px;letter-spacing:-.6px;margin:0 0 14px}
.ab-empty-state p{font-size:14px;color:#65728b;margin-bottom:8px}
.ab-empty-state small{display:block;font-size:12px;color:#8a95aa;line-height:1.7;max-width:320px;margin:auto}
.ab-empty-state .ab-button{margin-top:28px}
.ab-install-dialog{position:fixed;max-width:370px;width:calc(100% - 40px);border:0;border-radius:26px;padding:30px 26px 15px;color:var(--ab-ink);text-align:center;box-shadow:0 12px 80px #111d3b33}
.ab-install-dialog img{width:70px;height:70px;border-radius:20px;margin:10px auto 20px;display:block}
.ab-install-dialog h2{font-size:21px;margin:0 0 14px;letter-spacing:-.5px}
.ab-install-dialog p{font-size:13px;line-height:1.8;color:#68758e;white-space:pre-line}
.ab-dialog-close{position:absolute;right:12px;top:12px;width:32px;height:32px;border:0;background:transparent}
.ab-dialog-close .ab-icon{width:19px;height:19px}
.ab-connection{position:fixed;bottom:calc(96px + env(safe-area-inset-bottom,0px));left:16px;right:16px;margin:auto;max-width:600px;padding:12px 16px;border-radius:14px;background:#fff5db;color:#785110;border:1px solid #ffe3a3;box-shadow:var(--ab-shadow);font-size:12px;text-align:center;z-index:1040}
.ab-personal>.navbar,.ab-personal>.d-md-none,.ab-personal>#tabPresensi,.ab-personal>.logout-btn{display:none!important}
.ab-personal .main-container{max-width:1120px!important;width:100%;margin:0 auto!important;padding:0 20px!important;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
.ab-personal .main-container>.time-display{display:none!important}
.ab-personal .main-container>.alert-message:empty,.ab-personal .main-container>.alert-message[style*="display: none"]{display:none}
.ab-personal .main-container>.profile-card,.ab-personal .main-container>.scanner-card{display:none}
.ab-personal .main-container>.attendance-card{order:1;position:relative;background:linear-gradient(128deg,#355bd4 0%,#2347b3 62%,#163789 100%)!important;border:0!important;border-radius:26px!important;padding:24px 21px!important;margin:0!important;box-shadow:0 12px 28px #244ac523;color:white;overflow:hidden}
.ab-personal .main-container>.attendance-card:before{content:"";position:absolute;right:-65px;top:-65px;width:190px;height:190px;border:30px solid #ffffff05;border-radius:50%;pointer-events:none}
.ab-personal .attendance-card .attendance-title{color:#ffffffc9!important;font-size:12px!important;border:0!important;letter-spacing:.5px;margin-bottom:22px!important;font-weight:500!important;text-transform:uppercase}
.ab-personal .ab-card-date{display:block;font-size:10px;color:#ffffff96;letter-spacing:0;text-transform:none;margin-top:7px;font-weight:400}
.ab-personal .attendance-card .status-row{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0!important;padding:0!important}
.ab-personal .attendance-card .status-box{border:0!important;border-radius:0!important;background:transparent!important;padding:0 12px 4px!important;color:#ffffffb8;position:relative;text-align:left!important;box-shadow:none!important}
.ab-personal .attendance-card .status-box:first-child{border-right:1px solid #ffffff25!important;padding-left:0!important}
.ab-personal .attendance-card .status-box:last-child{padding-left:25px!important}
.ab-personal .attendance-card .status-box>.text-muted{font-size:10px!important;text-transform:uppercase;letter-spacing:1.4px;color:#ffffffad!important}
.ab-personal .attendance-card .status-time{font-family:inherit!important;font-size:35px!important;line-height:1.25;margin:10px 0 6px!important;color:#fff!important;font-weight:650!important;letter-spacing:-1px}
.ab-personal .attendance-card .status-box>.small{font-size:10px;line-height:1.5;min-height:15px}
.ab-personal .attendance-card .status-indicator{display:none}
.ab-personal .attendance-card>.text-center{margin-top:15px!important;border-top:1px solid #ffffff20;padding-top:13px;display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left!important}
.ab-personal .attendance-card>.text-center .badge{font-size:9px;font-weight:500;padding:7px 9px;border-radius:8px;background:#ffffff15!important;color:#fff!important;white-space:normal;line-height:1.4}
.ab-personal .attendance-card>.text-center p{font-size:9px!important;color:#ffffffad!important;margin:0!important;max-width:135px}
.ab-personal .main-container>.ab-quick-card{order:2}
.ab-personal .main-container>.history-card{order:4;background:white!important;border:1px solid #eef1f8!important;border-radius:var(--ab-radius)!important;padding:21px 16px!important;margin:0!important;min-width:0;box-shadow:var(--ab-shadow)}
.ab-personal .history-card .attendance-title{font-size:13px!important;color:var(--ab-ink)!important}
.ab-personal .history-table{font-size:11px!important;min-width:500px;width:100%}
.ab-personal .history-table th{background:#f6f8fd!important;color:var(--ab-muted)!important;font-size:10px!important;font-weight:600;border:0!important;padding:12px 9px!important}
.ab-personal .history-table td{padding:14px 9px!important;border-color:#f0f3fa!important;color:#526180}
.ab-personal .history-table .badge{font-size:9px!important;font-weight:500}
.ab-personal[data-ab-view="beranda"] .history-table tbody tr:nth-child(n+4){display:none}
.ab-personal[data-ab-view="profil"] .main-container>.profile-card{display:block;order:1}
.ab-personal[data-ab-view="profil"] .main-container>:not(.profile-card):not(.alert-message){display:none!important}
.ab-personal[data-ab-view="riwayat"] .main-container>:not(.history-card):not(.alert-message){display:none!important}
.ab-personal[data-ab-view="presensi"] .main-container>.scanner-card{display:block;order:2}
.ab-personal[data-ab-view="presensi"] .ab-quick-card,.ab-personal[data-ab-view="presensi"] .history-card{display:none!important}
.ab-personal .scanner-card,.ab-personal .profile-card{border:1px solid #eef1f8!important;border-radius:var(--ab-radius)!important;padding:22px 16px!important;box-shadow:var(--ab-shadow)!important;margin:0!important;background:white!important;min-width:0}
.ab-personal .profile-header{gap:14px!important}
.ab-personal .profile-info h4{font-size:19px!important;color:var(--ab-ink)!important;overflow-wrap:anywhere}
.ab-personal .profile-info p{font-size:12px!important}
.ab-personal .scanner-card .attendance-title{font-size:15px;color:var(--ab-ink)}
.ab-personal .scanner-container{max-width:380px!important;width:100%!important;margin:auto}
.ab-personal .scanner-card .btn{font-size:12px;min-height:44px;border-radius:12px}
.ab-personal .manual-input-container{display:flex;gap:6px}.ab-personal .manual-token-input{min-width:0}
.ab-personal .control-buttons{gap:8px!important;flex-wrap:wrap}
.ab-personal .control-buttons .btn{flex:1 1 auto;min-width:110px}
.ab-personal .manual-submit-btn{position:static!important;flex-shrink:0}
.ab-personal #panelMengajar{max-width:1080px;margin:0 auto;padding:0 20px}
.ab-personal #panelMengajar .card-sesi{padding:14px;border-radius:20px;background:white}
.ab-personal #panelMengajar .btn-mengajar{min-height:44px;border-radius:12px}
.ab-personal .modal-dialog{margin:18px 12px}.ab-personal .modal-content{border:0!important;border-radius:24px!important}
.ab-personal .modal-header,.ab-personal .modal-body,.ab-personal .modal-footer{padding:18px}
.ab-admin .ab-bottom-nav{display:grid}
.ab-admin .main-content{background:var(--ab-bg)!important;min-width:0}
.ab-admin .content-wrapper{min-width:0}
.ab-admin .content-wrapper .card{border:1px solid #e9edf7!important;border-radius:20px!important;box-shadow:var(--ab-shadow)!important;min-width:0}
.ab-admin .content-wrapper .card-header{background:#fff!important;border-color:var(--ab-line)!important;color:var(--ab-ink)!important;border-radius:20px 20px 0 0!important;overflow-wrap:anywhere}
.ab-admin .content-wrapper .card-header.bg-primary,.ab-admin .content-wrapper .card-header.bg-success,.ab-admin .content-wrapper .card-header.bg-info,.ab-admin .content-wrapper .card-header.bg-warning{color:var(--ab-ink)!important}
.ab-admin .content-wrapper .table-responsive,.ab-admin .content-wrapper .dataTables_wrapper{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.ab-admin .content-wrapper .table{font-size:12px!important}
.ab-admin .content-wrapper .table th{font-size:11px;white-space:nowrap}
.ab-admin .content-wrapper .form-control,.ab-admin .content-wrapper .form-select,.ab-admin .modal .form-control,.ab-admin .modal .form-select{min-height:44px;border-radius:10px!important;font-size:13px!important}
.ab-admin .content-wrapper .btn,.ab-admin .modal .btn{border-radius:10px!important;min-height:38px}
.ab-admin .modal-dialog{max-width:min(96vw,900px)}
.ab-admin .modal-content{border:0;border-radius:22px;overflow:hidden}
.ab-admin .content-wrapper .stats-card{border-radius:20px!important}
.ab-auth .ab-auth-links{display:flex;justify-content:center;gap:16px;padding:15px 4px 4px;font-size:12px}
.ab-auth .ab-auth-links a{color:var(--ab-blue)}
.ab-auth .ab-auth-install{border:0;background:none;color:var(--ab-blue);min-height:44px;font-size:12px;display:block;margin:4px auto}
.ab-app.ab-auth{padding:24px 16px!important;background:radial-gradient(ellipse at top,#e3ebff,var(--ab-bg) 60%)!important;min-height:100dvh}
.ab-auth .login-container{border:1px solid #e8edf8;border-radius:28px!important;box-shadow:0 20px 70px #244ac516!important}
.ab-auth .login-container:hover{transform:none}
.ab-auth .login-header{background:linear-gradient(130deg,#355bd4,#163789)!important}
.ab-auth .login-header:after{display:none}
.ab-auth .btn-login{background:var(--ab-blue)!important;border-radius:14px!important;min-height:48px}
.ab-auth .input-container{border-radius:12px!important}
.ab-auth .input-container input,.ab-auth .input-container select{font-size:16px!important}
.ab-auth .login-footer{font-size:10px!important;color:var(--ab-muted)}
@media(max-width:1199px){
 .ab-admin>#sidebar,.ab-admin>#sidebarOverlay{display:none!important}
 .ab-admin .main-content,.ab-admin .main-content.expanded,.ab-admin .main-content.collapsed{margin-left:0!important;width:100%!important;padding:0!important}
 .ab-admin .navbar-custom{margin:0 20px 14px!important;padding:12px 15px!important;position:static!important;box-shadow:none!important;background:white!important;border:1px solid var(--ab-line)!important;border-radius:18px!important;height:auto!important}
 .ab-admin .navbar-content{min-height:36px;gap:10px}
 .ab-admin .page-title{font-size:14px!important;white-space:normal!important;line-height:1.4}
 .ab-admin #toggleSidebarNav{display:none!important}
 .ab-admin .navbar-custom .user-profile{display:none!important}
 .ab-admin .content-wrapper{padding:0 20px!important}
 .ab-admin .ab-greeting{margin-bottom:16px}
 .ab-admin .content-wrapper .row{--bs-gutter-x:16px;row-gap:12px}
 .ab-admin .content-wrapper .card-body{padding:16px!important}
 .ab-admin .content-wrapper .card-header{padding:15px!important;gap:10px;flex-wrap:wrap}
 .ab-admin .content-wrapper .card-header h4,.ab-admin .content-wrapper .card-header h5{font-size:15px!important;margin-bottom:0!important}
 .ab-admin .content-wrapper .card-header .btn{font-size:11px}
 .ab-admin .content-wrapper .dataTables_filter,.ab-admin .content-wrapper .dataTables_length{text-align:left!important;font-size:12px;margin-bottom:12px}
 .ab-admin .content-wrapper .dataTables_filter input{max-width:180px}
 .ab-admin .content-wrapper .pagination{flex-wrap:wrap;gap:3px}
}
@media(max-width:575px){
 .ab-admin .content-wrapper .row>[class*="col-md-"]{width:100%}
 .ab-admin .content-wrapper .row>[class*="col-md-3"],.ab-admin .content-wrapper .row>[class*="col-md-6"]{width:100%}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper>.row:first-of-type>.col-xl-3{width:50%!important;margin-bottom:0!important}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper>.row:first-of-type .card-stat{height:100%;min-height:145px}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper>.row:first-of-type .card-body{padding:16px 13px!important}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper>.row:first-of-type .col-auto{display:none}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper>.row:first-of-type .text-xs{font-size:10px;line-height:1.5;min-height:30px}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper>.row:first-of-type .h5{font-size:25px;margin-top:4px}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper>.row:first-of-type small,.ab-admin[data-ab-page="dashboard"] .content-wrapper>.row:first-of-type .small{font-size:9px}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper .col-md-3{width:50%!important}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper .col-md-3 .fa-3x{font-size:27px}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper .col-md-3 h6{font-size:12px}
 .ab-admin[data-ab-page="dashboard"] .content-wrapper .col-md-3 .small{font-size:10px}
 .ab-admin .content-wrapper .d-flex.justify-content-between{flex-wrap:wrap;gap:10px}
 .ab-admin .content-wrapper .btn-group{flex-wrap:wrap;gap:4px}
 .ab-admin .content-wrapper .table .btn-group{flex-wrap:nowrap}
 .ab-admin .content-wrapper .nav-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;padding-bottom:5px}
 .ab-admin .content-wrapper .nav-tabs .nav-link{padding:10px 12px!important;font-size:12px!important}
 .ab-admin .modal-dialog{margin:12px auto;width:calc(100% - 24px)}
 .ab-admin .modal .row>[class*="col-md-"]{width:100%;margin-bottom:10px}
 .ab-admin .modal .table{font-size:11px}
 .ab-admin .modal .modal-title{font-size:16px}
 .ab-admin .content-wrapper .table{min-width:560px}
 .ab-admin .content-wrapper .table td{max-width:250px;overflow-wrap:anywhere}
 .ab-personal .scanner-frame{width:210px!important;height:210px!important}
}
@media(min-width:768px){
 .ab-topbar{padding:28px 32px 18px}.ab-brand strong{font-size:21px}.ab-brand small{font-size:11px}.ab-brand img{width:48px;height:48px}
 .ab-greeting{padding:0 32px;margin:16px auto 28px}.ab-greeting h1{font-size:29px}.ab-greeting p,.ab-greeting span{font-size:13px}
 .ab-personal .main-container{padding:0 32px!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
 .ab-personal .main-container>.history-card{grid-column:1/-1}
 .ab-personal .main-container>.attendance-card{min-height:260px;padding:28px!important}
 .ab-personal .main-container>.ab-quick-card{min-height:260px;padding-top:27px}
 .ab-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}.ab-quick-grid .ab-menu-tile{min-height:89px}
 .ab-personal[data-ab-view="profil"] .profile-card,.ab-personal[data-ab-view="riwayat"] .history-card{grid-column:1/-1}
 .ab-personal[data-ab-view="presensi"] .main-container>.scanner-card{grid-column:2;grid-row:1}
 .ab-menu-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
 .ab-menu-tile{font-size:13px;min-height:116px}
 .ab-more{border-radius:28px;max-height:75dvh;margin:auto auto calc(104px + env(safe-area-inset-bottom,0px))}
 .ab-sheet-heading{padding:22px 28px 16px}.ab-sheet-heading h2{font-size:20px}.ab-sheet-heading p{font-size:12px}
 .ab-sheet-scroll{padding:6px 22px 24px}.ab-sheet-handle{display:none}
 .ab-bottom-nav{max-width:720px;left:50%;right:auto;transform:translateX(-50%);width:100%;border:1px solid var(--ab-line)}
 .ab-nav-item{font-size:11px}
 .ab-admin .content-wrapper{padding:0 32px!important}.ab-admin .navbar-custom{margin-left:32px!important;margin-right:32px!important}
}
@media(min-width:1200px){
 .ab-personal{padding-bottom:120px}.ab-personal .attendance-card .status-time{font-size:42px!important}
 .ab-admin>.ab-topbar,.ab-admin>.ab-greeting{display:none}
 .ab-admin .ab-bottom-nav{display:none}
 .ab-admin{padding-bottom:24px}
 .ab-admin .content-wrapper{padding:24px 28px!important}
 .ab-admin .sidebar{background:linear-gradient(165deg,#244ac5,#14317d)!important}
 .ab-admin .navbar-custom{border-radius:0!important}
 .ab-admin .ab-more{margin:auto;max-height:85dvh}
}
@media(max-width:350px){.ab-topbar{padding-left:16px;padding-right:16px}.ab-brand strong{font-size:15px}.ab-brand small{font-size:8px}.ab-brand img{width:35px;height:35px}.ab-greeting{padding:0 16px}.ab-greeting h1{font-size:21px}.ab-personal .main-container{padding:0 14px!important}.ab-nav-item{font-size:9px}.ab-nav-primary .ab-nav-symbol{width:56px;height:56px;min-height:56px}.ab-menu-tile{font-size:11px}.ab-sheet-heading{padding-left:18px}.ab-sheet-heading p{font-size:9px}}
@media(prefers-reduced-motion:reduce){.ab-app *{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
@media print{.ab-topbar,.ab-greeting,.ab-bottom-nav,.ab-more,.ab-connection{display:none!important}.ab-app{padding:0!important;background:white!important}.ab-admin .main-content{margin:0!important;width:100%!important}}
@keyframes ab-slide{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
