/* Fallback offline untuk komponen antarmuka utama. Dipakai jika CDN tidak tersedia. */
:root{--bs-primary:#245a96;--bs-primary-rgb:36,90,150;--bs-danger:#dc3545;--bs-success:#198754;--bs-warning:#ffc107;--bs-info:#0dcaf0;--bs-secondary:#6c757d;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-border-color:#dee2e6;--bs-body-color:#212529;--bs-body-bg:#fff}
*,*::before,*::after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;line-height:1.5}a{color:#245a96}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,h4,h5,h6{margin:0 0 .5rem;font-weight:500;line-height:1.2}p{margin:0 0 1rem}small,.small{font-size:.875em}.text-center{text-align:center!important}.text-end{text-align:right!important}.text-muted,.muted{color:#6c757d!important}.text-white{color:#fff!important}.text-primary{color:#245a96!important}.text-success{color:#198754!important}.text-danger{color:#dc3545!important}.text-warning{color:#997404!important}.text-info{color:#087990!important}.bg-white{background:#fff!important}.bg-light{background:#f8f9fa!important}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-flex{display:inline-flex!important}.d-flex{display:flex!important}.flex-column{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.justify-content-between{justify-content:space-between!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}.align-items-end{align-items:flex-end!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.w-100{width:100%!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.ms-2{margin-left:.5rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.px-3{padding-left:1rem!important;padding-right:1rem!important}.fs-2{font-size:2rem!important}.h2{font-size:2rem}.h3{font-size:1.75rem}.h4{font-size:1.5rem}.h5{font-size:1.25rem}.h6{font-size:1rem}.fw-bold{font-weight:700!important}.rounded{border-radius:.375rem!important}.shadow-sm{box-shadow:0 .125rem .25rem #00000013!important}
.container,.container-fluid{width:100%;margin:auto;padding:0 12px}.row{display:flex;flex-wrap:wrap;margin:0 -6px}.row>*{padding:0 6px;min-width:0;max-width:100%;flex-shrink:0;width:100%}.col-12{width:100%}.col-md-2,.col-md-3,.col-md-4,.col-md-6,.col-md-8,.col-md-9,.col-xl-3{width:100%}@media(min-width:768px){.col-md-2{width:16.6667%}.col-md-3{width:25%}.col-md-4{width:33.3333%}.col-md-6{width:50%}.col-md-8{width:66.6667%}.col-md-9{width:75%}}@media(min-width:1200px){.col-xl-3{width:25%}}
.form-label{display:inline-block;margin-bottom:.5rem;font-weight:500}.form-control,.form-select{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#212529;background:#fff;border:1px solid #ced4da;border-radius:.375rem;transition:border-color .15s,box-shadow .15s}.form-control:focus,.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .2rem #0d6efd25}.form-control:disabled{background:#e9ecef;opacity:1}.form-control-sm{padding:.25rem .5rem;font-size:.875rem}.form-select{padding-right:2rem}.form-text{margin-top:.25rem;color:#6c757d;font-size:.875rem}.input-group{display:flex;width:100%}.input-group>*{border-radius:0}.input-group>*:first-child{border-radius:.375rem 0 0 .375rem}.input-group>*:last-child{border-radius:0 .375rem .375rem 0}
.btn{display:inline-block;padding:.375rem .75rem;border:1px solid transparent;border-radius:.375rem;text-align:center;text-decoration:none;vertical-align:middle;font-weight:400;line-height:1.5;background:transparent;color:#212529}.btn:hover{filter:brightness(.94)}.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}.btn-primary{background:#245a96;border-color:#245a96;color:#fff}.btn-success{background:#198754;border-color:#198754;color:#fff}.btn-danger{background:#dc3545;border-color:#dc3545;color:#fff}.btn-warning{background:#ffc107;border-color:#ffc107;color:#212529}.btn-info{background:#0dcaf0;border-color:#0dcaf0;color:#000}.btn-secondary{background:#6c757d;border-color:#6c757d;color:#fff}.btn-light{background:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-outline-primary{border-color:#245a96;color:#245a96}.btn-outline-secondary{border-color:#6c757d;color:#6c757d}.btn-outline-danger{border-color:#dc3545;color:#dc3545}.btn-outline-warning{border-color:#b58100;color:#997404}.btn-outline-light{border-color:#f8f9fa;color:#fff}.btn-link{color:#245a96;text-decoration:underline}.btn:disabled{opacity:.65;pointer-events:none}
.card,.modal-content{background:#fff;border:1px solid #dee2e6;border-radius:.5rem}.card{margin-bottom:1rem}.card-body{padding:1rem}.card-header{padding:.75rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}.alert{padding:1rem;border:1px solid transparent;border-radius:.375rem;margin-bottom:1rem}.alert-success{color:#0f5132;background:#d1e7dd;border-color:#badbcc}.alert-danger{color:#842029;background:#f8d7da;border-color:#f5c2c7}.alert-warning{color:#664d03;background:#fff3cd;border-color:#ffecb5}.alert-info{color:#055160;background:#cff4fc;border-color:#b6effb}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;border-radius:.375rem}.text-bg-primary{background:#245a96;color:#fff}.text-bg-secondary{background:#6c757d;color:#fff}.text-bg-success{background:#198754;color:#fff}.text-bg-danger{background:#dc3545;color:#fff}.text-bg-warning{background:#ffc107;color:#212529}.text-bg-info{background:#0dcaf0;color:#000}
.table-responsive{width:100%;overflow-x:auto}.table{width:100%;margin-bottom:1rem;border-collapse:collapse;color:inherit}.table th,.table td{padding:.5rem .5rem;border-bottom:1px solid #dee2e6;text-align:left}.table thead th{background:#f8f9fa;font-weight:600}.table-striped tbody tr:nth-child(odd){background:#00000005}.table-hover tbody tr:hover{background:#00000008}.table-sm th,.table-sm td{padding:.25rem}.nav{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0}.nav-link{display:block;padding:.5rem 1rem;text-decoration:none}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{border:1px solid transparent;border-radius:.375rem .375rem 0 0}.nav-tabs .nav-link.active{border-color:#dee2e6 #dee2e6 #fff;background:#fff}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.pagination{display:flex;list-style:none;padding:0;gap:.25rem}.page-link{display:block;padding:.375rem .75rem;border:1px solid #dee2e6;text-decoration:none}.page-item.active .page-link{background:#245a96;color:#fff}.dropdown-menu{display:none;position:absolute;background:white;border:1px solid #ddd;border-radius:.375rem;padding:.5rem;z-index:1000}.dropdown-menu.show{display:block}.dropdown-item{display:block;padding:.35rem .75rem;text-decoration:none;color:#212529}
.modal{display:none;position:fixed;inset:0;z-index:1055;overflow:auto;background:#0008;padding:4vh 1rem}.modal.show{display:block}.modal-dialog{max-width:700px;margin:0 auto}.modal-content{box-shadow:0 1rem 3rem #0003}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6}.modal-footer{border-top:1px solid #dee2e6;border-bottom:0;justify-content:flex-end;gap:.5rem}.modal-body{padding:1rem}.btn-close{border:0;background:transparent;font-size:1.5rem}.spinner-border{display:inline-block;width:1rem;height:1rem;border:.2em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.d-grid{display:grid}.list-group{padding:0;margin:0;list-style:none}.list-group-item{padding:.75rem 1rem;border:1px solid #dee2e6}.alert-dismissible{padding-right:3rem}.text-decoration-none{text-decoration:none!important}.border{border:1px solid #dee2e6!important}.rounded-3{border-radius:.75rem!important}.shadow{box-shadow:0 .5rem 1rem #00000015!important}
@media print{.no-print,.app-sidebar,.sidebar,.btn{display:none!important}.app-main,.main-content{margin:0!important;padding:0!important}.panel,.topbar{box-shadow:none!important}}
