@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;color:#1e293b;background:#f8fafc}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-spinner{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:btn-spin .7s linear infinite;flex-shrink:0}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;border:none;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.btn-primary{background:#6366f1;color:#fff}.btn.btn-primary:hover:not(:disabled){background:#4f46e5}.btn.btn-secondary{background:#e2e8f0;color:#475569}.btn.btn-secondary:hover:not(:disabled){background:#cbd5e1}.btn.btn-danger{background:#ef4444;color:#fff}.btn.btn-danger:hover:not(:disabled){background:#dc2626}.btn.btn-success{background:#22c55e;color:#fff}.btn.btn-success:hover:not(:disabled){background:#16a34a}.btn.btn-sm{padding:4px 10px;font-size:12px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:4px;font-size:13px;font-weight:500;color:#475569}.form-group .form-control{width:100%;padding:8px 12px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px;background:#fff;color:#1e293b;transition:border-color .15s}.form-group .form-control:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.form-group .form-control:disabled{background:#f1f5f9;color:#94a3b8}.form-group .form-control.is-invalid{border-color:#ef4444}.form-group .error-msg{font-size:12px;color:#ef4444;margin-top:4px}.page{padding:24px 28px}.page .page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:24px}.page .page-header h2{margin:0;font-size:22px;font-weight:700;color:#1e293b}@media (max-width: 1023px){.page{padding:20px}}@media (max-width: 480px){.page{padding:12px}.page .page-header{flex-direction:column;align-items:flex-start}}.card{background:#fff;border-radius:10px;border:1px solid #e2e8f0;padding:24px;margin-bottom:20px;overflow-x:auto}.card .card-title{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #f1f5f9}@media (max-width: 480px){.card{padding:16px}}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{padding:10px 12px;text-align:left;background:#f8fafc;font-weight:600;color:#64748b;border-bottom:1px solid #e2e8f0;white-space:nowrap}.data-table td{padding:12px;border-bottom:1px solid #f1f5f9;color:#374151}.data-table tr:hover td{background:#f8fafc}.data-table .actions{display:flex;gap:6px}.data-table .text-right{text-align:right}.data-table .text-center{text-align:center}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}@media (max-width: 600px){.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}}@media (max-width: 360px){.kpi-grid{grid-template-columns:1fr}}.kpi-card{background:#fff;border-radius:10px;border:1px solid #e2e8f0;padding:20px}.kpi-card .kpi-label{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.kpi-card .kpi-value{font-size:26px;font-weight:700;color:#1e293b;margin-top:6px}.kpi-card .kpi-sub{font-size:12px;color:#94a3b8;margin-top:4px}.kpi-card .export-icon{font-size:36px;display:block}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;align-items:flex-end}.filters .form-control{width:auto;min-width:160px}@media (max-width: 480px){.filters{flex-direction:column;gap:8px}.filters .form-control{width:100%;min-width:unset}}.empty-state{text-align:center;padding:60px 20px;color:#94a3b8}.empty-state .empty-icon{font-size:48px;margin-bottom:12px}.empty-state p{margin:0;font-size:15px}.text-muted{color:#94a3b8}.text-danger{color:#ef4444}.text-success{color:#22c55e}.fw-600{font-weight:600}.d-flex{display:flex}.align-center{align-items:center}.gap-8{gap:8px}@media (max-width: 480px){.page-header .d-flex,.page-header>div{flex-wrap:wrap;gap:6px}.btn{font-size:13px;padding:7px 12px}.btn.btn-sm{font-size:11px;padding:4px 8px}}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 768px){.data-table{min-width:540px}}@media (max-width: 600px){.kpi-card .kpi-value{font-size:20px}.kpi-card{padding:14px}}
