@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}body,h1,h2,h3,h4,h5,h6,p,span,div,input,select,button,textarea,label{font-family:Plus Jakarta Sans,sans-serif!important}body{color:#1e293b;background-color:#f8fafc;padding-top:68px}.app-nav{z-index:1050;background:#fff;border-bottom:1px solid #e6e8ef;width:100%;position:fixed;top:0;left:0;box-shadow:0 1px 3px #0f172a0f}.card{background:#fff;border:1px solid #e6e8ef;border-radius:10px;margin-bottom:16px;overflow:hidden;box-shadow:0 1px 3px #0f172a0d}.card-header{color:#0f172a;background:#f8fafc;border-bottom:1px solid #e6e8ef;border-radius:6px 6px 0 0;padding:10px 16px;font-size:13px;font-weight:700}.card-body{background-color:#fff;border-radius:0 0 6px 6px;padding:16px}.ri-table{border-collapse:collapse;width:100%;font-size:12px}.ri-table th{color:#334155;text-align:center;white-space:nowrap;z-index:2;background-color:#f1f5f9;border:1px solid #e2e8f0;padding:7px 10px;font-weight:700;position:sticky;top:0}.ri-table td{white-space:nowrap;text-align:center;border:1px solid #eef2f6;padding:4px 10px}.ri-table tbody tr:nth-child(2n){background-color:#fafafa}.ri-table tbody tr:hover{background-color:#eef2ff}.table-wrap{width:100%;overflow-x:auto}.btn{cursor:pointer;white-space:nowrap;border:1px solid #ccc;border-radius:5px;align-items:center;gap:4px;padding:4px 12px;font-size:11px;font-weight:600;line-height:1.6;transition:all .2s;display:inline-flex}.btn-primary{color:#fff;background:#0d6efd;border-color:#0d6efd}.btn-primary:hover{background:#0b5ed7}.btn-accent{color:#fff;background:#4f46e5;border-color:#4f46e5}.btn-accent:hover{background:#4338ca}.btn-secondary{color:#fff;background:#6c757d;border-color:#6c757d}.btn-secondary:hover{background:#5a6268}.btn-success{color:#fff;background:#198754;border-color:#198754}.btn-danger{color:#fff;background:#dc3545;border-color:#dc3545}.btn-warning{color:#000;background:#ffc107;border-color:#ffc107}.btn-outline{color:#333;background:#fff;border-color:#ced4da}.btn-outline:hover{background:#f1f1f1}.btn-sm{padding:2px 8px;font-size:11px}.form-control{background:#fff;border:1px solid #ced4da;border-radius:4px;outline:none;width:100%;height:30px;padding:4px 8px;font-size:11px;transition:border-color .2s;display:block}.form-control:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f133}textarea.form-control{resize:vertical;height:auto;min-height:60px}select.form-control{cursor:pointer}.input-group{align-items:stretch;display:flex}.input-group-text{color:#495057;white-space:nowrap;background:#e9ecef;border:1px solid #ced4da;border-right:none;border-radius:4px 0 0 4px;flex-shrink:0;align-items:center;padding:0 10px;font-size:11px;font-weight:600;display:flex}.input-group .form-control{border-radius:0 4px 4px 0;flex:1}.form-label{color:#374151;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.page-title{color:#0f172a;letter-spacing:-.3px;margin-bottom:14px;font-size:22px;font-weight:800}.modal-overlay{z-index:9999;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:10px;flex-direction:column;width:500px;max-width:95vw;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000040}.modal-box.modal-lg{width:760px}.modal-header{color:#0f172a;background:#f8fafc;border-bottom:1px solid #e6e8ef;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;font-weight:700;display:flex}.modal-body{background:#fff;flex:1;padding:16px;overflow-y:auto}.modal-footer{background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0;justify-content:flex-end;gap:8px;padding:10px 16px;display:flex}.modal-close-btn{cursor:pointer;color:#666;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.modal-close-btn:hover{color:#dc3545}.alert{border-radius:6px;margin-bottom:10px;padding:8px 14px;font-size:12px}.alert-success{color:#065f46;background:#d1fae5;border:1px solid #6ee7b7}.alert-danger{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.alert-info{color:#1e40af;background:#dbeafe;border:1px solid #93c5fd}.badge{border-radius:20px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.badge-success{color:#065f46;background:#d1fae5}.badge-danger{color:#991b1b;background:#fee2e2}.badge-info{color:#1e40af;background:#dbeafe}.badge-warn{color:#92400e;background:#fef3c7}.spinner{border:3px solid #e5e7eb;border-top-color:#6366f1;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite ri-spin;display:inline-block}.spinner-lg{border-width:4px;width:40px;height:40px}@keyframes ri-spin{to{transform:rotate(360deg)}}.loading-center{justify-content:center;padding:60px 0;display:flex}.ri-pagination{flex-wrap:wrap;align-items:center;gap:4px;margin-top:10px;font-size:12px;display:flex}.ri-pagination button{cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:4px;padding:3px 9px;font-size:11px;transition:all .15s}.ri-pagination button.active{color:#fff;background:#4f46e5;border-color:#4f46e5;font-weight:700}.ri-pagination button:hover:not(.active):not(:disabled){background:#f1f6fe}.ri-pagination button:disabled{opacity:.4;cursor:not-allowed}.ri-pagination .pg-info{color:#6b7280;margin-left:6px;font-size:11px}.row{flex-wrap:wrap;margin:0 -8px;display:flex}.col{flex:1;min-width:0;padding:0 8px}.col-2{flex:0 0 16.66%;max-width:16.66%;padding:0 8px}.col-3{flex:0 0 25%;max-width:25%;padding:0 8px}.col-4{flex:0 0 33.33%;max-width:33.33%;padding:0 8px}.col-6{flex:0 0 50%;max-width:50%;padding:0 8px}.col-12{flex:0 0 100%;max-width:100%;padding:0 8px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.ms-2{margin-left:8px}.me-2{margin-right:8px}.gap-2{gap:8px}.d-flex{display:flex}.flex-wrap{flex-wrap:wrap}.align-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.text-center{text-align:center}.text-right{text-align:right}.text-success{color:#198754}.text-danger{color:#dc3545}.fw-bold{font-weight:700}.w-100{width:100%}
