:root{--ds-ease:cubic-bezier(.4, 0, .2, 1);--ds-spring:cubic-bezier(.34, 1.56, .64, 1);--ds-fast:.15s;--ds-base:.25s;--ds-slow:.4s;--ds-ring:0 0 0 3px #10b98133}html{scroll-behavior:smooth}body{font-family:var(--font-utama,"Plus Jakarta Sans", sans-serif);background:var(--bg-page,#f8fafc);color:var(--text-main,#0f172a);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,a,input,select,textarea,[class*=btn],[class*=card],[class*=tab-],[class*=badge]{transition:background-color var(--ds-base) var(--ds-ease), border-color var(--ds-base) var(--ds-ease), color var(--ds-base) var(--ds-ease), box-shadow var(--ds-base) var(--ds-ease), transform var(--ds-fast) var(--ds-ease)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:var(--ds-ring);outline:none}button:not(:disabled):active{transform:scale(.97)}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cbd5e1 padding-box content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#94a3b8 padding-box content-box}@keyframes ds-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes ds-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ds-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes ds-shimmer{0%{background-position:-450px 0}to{background-position:450px 0}}.ds-fade-up{animation:ds-fade-up var(--ds-slow) var(--ds-ease) both}.ds-fade-in{animation:ds-fade-in var(--ds-base) var(--ds-ease) both}.ds-pop{animation:ds-pop var(--ds-base) var(--ds-spring) both}.ds-skeleton{background:linear-gradient(90deg,#eef2f7 25%,#e2e8f0 37%,#eef2f7 63%) 0 0/800px 100%;border-radius:8px;animation:1.4s linear infinite ds-shimmer}.modal-overlay{transition:opacity var(--ds-base) var(--ds-ease), visibility var(--ds-base) var(--ds-ease)}.page-enter-active,.page-leave-active{transition:opacity .22s var(--ds-ease), transform .22s var(--ds-ease)}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-8px)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media print{*,:before,:after{transition:none!important;animation:none!important}}html{-webkit-text-size-adjust:100%}body{-webkit-tap-highlight-color:transparent}img,svg,video,canvas{max-width:100%}::selection{background:#10b98138}button:disabled,[class*=btn]:disabled{cursor:not-allowed;opacity:.6}[class*=btn]:not(:disabled):hover{filter:brightness(1.03)}[class*=card]{transition:box-shadow var(--ds-base) var(--ds-ease), transform var(--ds-fast) var(--ds-ease)}.ds-spinner{border:4px solid #e2e8f0;border-top-color:var(--primary,#10b981);border-radius:50%;width:38px;height:38px;margin:0 auto;animation:.8s linear infinite ds-spin}@keyframes ds-spin{to{transform:rotate(360deg)}}.ds-empty{text-align:center;color:#94a3b8;padding:44px 20px}.ds-empty i{color:#cbd5e1;margin-bottom:12px;font-size:42px;display:block}.ds-empty p{margin:0;font-size:14px;font-weight:600}.modal-box,.modal-content{will-change:transform}@media (width<=640px){.table-scroll,.table-wrap,[class*=table-scroll]{-webkit-overflow-scrolling:touch;overflow-x:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--primary:#059669;--primary-dark:#047857;--primary-light:#10b981;--primary-soft:#ecfdf5;--primary-border:#a7f3d0;--navy:#0f172a;--navy-2:#1e293b;--header-bg:linear-gradient(135deg, #0f172a 0%, #1e293b 100%);--bg-page:#f8fafc;--bg-card:#fff;--border:#e2e8f0;--text-main:#0f172a;--text-body:#334155;--text-muted:#64748b;--text-faint:#94a3b8;--success:#059669;--success-soft:#f0fdf4;--warning:#d97706;--warning-soft:#fffbeb;--danger:#ef4444;--danger-dark:#dc2626;--danger-soft:#fef2f2;--info:#2563eb;--info-soft:#eff6ff;--print-maroon:#7a1726;--print-blue:#1f4e96;--print-amber:#b45309;--radius-sm:8px;--radius:12px;--radius-lg:20px;--shadow-sm:0 4px 6px #0f172a0a;--shadow:0 10px 25px #0f172a14;--shadow-lg:0 25px 50px -12px #0f172a40;--font-utama:"Plus Jakarta Sans", sans-serif}.swal2-popup{border-radius:20px!important;padding:28px!important;font-family:Plus Jakarta Sans,sans-serif!important;box-shadow:0 25px 60px -12px #0f172a59!important}.swal2-title{color:var(--navy,#0f172a)!important;font-size:22px!important;font-weight:800!important}.swal2-html-container{color:var(--text-muted,#64748b)!important;font-size:14px!important;font-weight:500!important}.swal2-confirm{border-radius:12px!important;padding:12px 28px!important;font-size:14px!important;font-weight:700!important;transition:transform .2s!important;box-shadow:0 8px 20px -5px #05966966!important}.swal2-confirm:hover{transform:translateY(-2px)!important}.swal2-cancel{border-radius:12px!important;padding:12px 28px!important;font-size:14px!important;font-weight:700!important}.swal2-icon{animation:.5s cubic-bezier(.34,1.56,.64,1) swalIconPop!important}@keyframes swalIconPop{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.swal2-show{animation:.4s cubic-bezier(.16,1,.3,1) swalSlideIn!important}@keyframes swalSlideIn{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.swal2-hide{animation:.25s forwards swalFadeOut!important}@keyframes swalFadeOut{to{opacity:0;transform:scale(.9)}}.swal2-timer-progress-bar{background:var(--primary,#059669)!important}.swal2-toast{border-radius:14px!important;box-shadow:0 10px 30px -8px #0f172a40!important}.swal2-icon.swal2-success{animation:.5s cubic-bezier(.34,1.56,.64,1) swalIconPop!important}.halaman-enter-active,.halaman-leave-active{transition:opacity .2s,transform .2s}.halaman-enter-from{opacity:0;transform:translateY(8px)}.halaman-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){.halaman-enter-active,.halaman-leave-active{transition:none}.halaman-enter-from,.halaman-leave-to{opacity:1;transform:none}}
