:root{--primary:#3b82f6;--primary-light:#eff6ff;--success:#10b981;--success-light:#ecfdf5;--warning:#f59e0b;--warning-light:#fffbeb;--danger:#ef4444;--danger-light:#fef2f2;--purple:#8b5cf6;--purple-light:#f5f3ff;--dark:#1e293b;--light:#f8fafc;--gray-50:#f9fafb;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-400:#94a3b8;--gray-600:#475569;--border:#f1f5f9;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--radius:12px}body{-webkit-font-smoothing:antialiased;background-color:#fcfdfe;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:.9375rem;line-height:1.6;margin:0}.header,body{color:#1e293b;color:var(--dark)}.header{background-color:#fff;border-bottom:1px solid #f1f5f9;border-bottom:1px solid var(--gray-100);justify-content:space-between;padding:1rem 2rem}.header,.header-title-group{align-items:center;display:flex}.header-title-group{gap:1rem}.header h1{font-size:1.125rem;font-weight:700;letter-spacing:-.01em;margin:0}.header-subtitle{color:#94a3b8;color:var(--gray-400);font-size:.8125rem;font-weight:500}.container{margin:0 auto;max-width:1440px;padding:2rem}.kpi-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(4,1fr);margin-bottom:2rem}.kpi-card{background:#fff;border:1px solid #f1f5f9;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);padding:1.25rem;position:relative;transition:transform .2s ease,box-shadow .2s ease}.kpi-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow);transform:translateY(-2px)}.kpi-label{color:#475569;color:var(--gray-600);font-size:.75rem;font-weight:700;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.kpi-value{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.kpi-icon-wrapper{align-items:center;border-radius:10px;display:flex;justify-content:center;padding:.5rem;position:absolute;right:1.25rem;top:1.25rem}.charts-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1.8fr 1fr;margin-bottom:2rem}.chart-card{background:#fff;border:1px solid #f1f5f9;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);padding:1.5rem}.chart-card h3{color:#1e293b;color:var(--dark);font-size:1rem;font-weight:700;margin-bottom:1.5rem;margin-top:0}.table-card{background:#fff;border:1px solid #f1f5f9;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);margin-bottom:2rem;padding:1.5rem}.table-header-group{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.table-card h3{color:#1e293b;color:var(--dark);font-size:1rem;font-weight:700;margin:0}.table-subheader{align-items:center;background:#f9fafb;background:var(--gray-50);border-radius:8px;display:flex;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.client-count{color:#475569;color:var(--gray-600);font-size:.875rem;font-weight:500}.client-count strong{color:#3b82f6;color:var(--primary);font-weight:700}.filter-group{align-items:center;display:flex;flex-wrap:wrap;gap:.375rem}.filter-label{color:#94a3b8;color:var(--gray-400);font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-right:.5rem;text-transform:uppercase}.filter-group button{background:#fff;border:1px solid #f1f5f9;border:1px solid var(--gray-100);border-radius:8px;color:#475569;color:var(--gray-600);cursor:pointer;font-size:.8125rem;font-weight:500;padding:.375rem .875rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.filter-group button:hover{background:#f9fafb;background:var(--gray-50);border-color:#e2e8f0;border-color:var(--gray-200);color:#1e293b;color:var(--dark)}.filter-group button.active{background:#3b82f6;background:var(--primary);border-color:#3b82f6;border-color:var(--primary);box-shadow:0 4px 10px -2px #3b82f64d;color:#fff}table{border-collapse:initial;border-spacing:0;width:100%}th{background-color:#f9fafb;background-color:var(--gray-50);border-bottom:1px solid #f1f5f9;border-bottom:1px solid var(--gray-100);color:#475569;color:var(--gray-600);cursor:pointer;font-size:.75rem;font-weight:700;letter-spacing:.05em;padding:.75rem;text-align:left;text-transform:uppercase}td{border-bottom:1px solid #f9fafb;border-bottom:1px solid var(--gray-50);color:#1e293b;color:var(--dark);font-size:.875rem;font-weight:500;padding:.625rem .75rem}tr:hover td{background-color:#f9fafb;background-color:var(--gray-50)}.badge{border-radius:20px;padding:.25rem .75rem}.badge,.status-pill{font-size:.75rem;font-weight:600}.status-pill{border-radius:6px;padding:.25rem .625rem}.status-pill.full{background:#ecfdf5;background:var(--success-light);color:#166534}.status-pill.partial{background:#fffbeb;background:var(--warning-light);color:#92400e}.status-pill.none{background:#fef2f2;background:var(--danger-light);color:#991b1b}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a66;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border:1px solid #f1f5f9;border:1px solid var(--border);border-radius:12px;border-radius:var(--radius);box-shadow:0 25px 50px -12px #00000040;display:flex;flex-direction:column;max-height:90vh;max-width:95vw;overflow:hidden;width:860px}.modal-header{align-items:center;background:#fff;border-bottom:1px solid #f1f5f9;border-bottom:1px solid var(--gray-100);color:#1e293b;color:var(--dark);display:flex;justify-content:space-between;padding:1.25rem 2rem}.modal-header h2{font-size:1.25rem;font-weight:700;letter-spacing:-.01em;margin:0}.modal-body{overflow-y:auto;padding:2rem}.upload-btn-outline{background:#3b82f6;background:var(--primary);border:none;border-radius:8px;box-shadow:0 4px 10px -2px #3b82f64d;color:#fff;cursor:pointer;font-size:.8125rem;font-weight:600;padding:.5rem 1.25rem;transition:all .2s}.upload-btn-outline:hover{background:#2563eb;transform:translateY(-1px)}.no-data{align-items:center;color:#94a3b8;color:var(--gray-400);display:flex;font-style:italic;font-weight:500;height:250px;justify-content:center}.zero-val{color:#e2e8f0;color:var(--gray-200)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spin{animation:spin 1s linear infinite}
/*# sourceMappingURL=main.9b9d430d.css.map*/