*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #1976d2;--primary-dark: #1565c0;--primary-light: #42a5f5;--accent-color: #ff9800;--success-color: #4caf50;--warning-color: #ff9800;--error-color: #f44336;--text-primary: #212121;--text-secondary: #757575;--background: #f5f5f5;--surface: #ffffff;--border-color: #e0e0e0;--shadow: 0 2px 4px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .15)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--background);color:var(--text-primary);line-height:1.6}h1,h2,h3,h4,h5,h6{font-weight:600;margin-bottom:.5em}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1rem}h6{font-size:.875rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;border-radius:4px;border:none;cursor:pointer;transition:all .2s ease;text-decoration:none;gap:.5rem}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-dark)}.btn-secondary{background-color:transparent;color:var(--primary-color);border:1px solid var(--primary-color)}.btn-secondary:hover{background-color:#1976d214}.btn-danger{background-color:var(--error-color);color:#fff}.btn-danger:hover{background-color:#d32f2f}.btn:disabled{opacity:.6;cursor:not-allowed}.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.875rem;color:var(--text-secondary)}.form-control{width:100%;padding:.75rem;font-size:1rem;border:1px solid var(--border-color);border-radius:4px;transition:border-color .2s ease,box-shadow .2s ease}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #1976d21a}.form-control.error{border-color:var(--error-color)}.error-message{color:var(--error-color);font-size:.75rem;margin-top:.25rem}.card{background:var(--surface);border-radius:8px;box-shadow:var(--shadow);padding:1.5rem}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.card-title{font-size:1.125rem;font-weight:600;margin:0}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:8px;overflow:hidden}th,td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}th{background:#fafafa;font-weight:600;font-size:.875rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}tr:hover{background:#fafafa}.container{max-width:1400px;margin:0 auto;padding:0 1.5rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-title{font-size:1.75rem;font-weight:600}.grid{display:grid;gap:1.5rem}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.kpi-card{background:var(--surface);border-radius:8px;box-shadow:var(--shadow);padding:1.5rem;display:flex;flex-direction:column}.kpi-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem;font-size:1.5rem;color:#fff}.kpi-icon.blue{background:linear-gradient(135deg,#1976d2,#42a5f5)}.kpi-icon.green{background:linear-gradient(135deg,#4caf50,#81c784)}.kpi-icon.orange{background:linear-gradient(135deg,#ff9800,#ffb74d)}.kpi-icon.purple{background:linear-gradient(135deg,#9c27b0,#ba68c8)}.kpi-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.kpi-label{font-size:.875rem;color:var(--text-secondary)}.chart-container{background:var(--surface);border-radius:8px;box-shadow:var(--shadow);padding:1.5rem}.chart-header{margin-bottom:1rem}.chart-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.loading{display:flex;justify-content:center;align-items:center;padding:3rem}.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alert{padding:1rem;border-radius:4px;margin-bottom:1rem}.alert-success{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}.alert-error{background:#ffebee;color:#c62828;border:1px solid #ef9a9a}.alert-warning{background:#fff3e0;color:#ef6c00;border:1px solid #ffcc80}.badge{display:inline-block;padding:.25rem .75rem;font-size:.75rem;font-weight:500;border-radius:100px}.badge-success{background:#e8f5e9;color:#2e7d32}.badge-warning{background:#fff3e0;color:#ef6c00}.badge-error{background:#ffebee;color:#c62828}.badge-info{background:#e3f2fd;color:#1565c0}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:90%;max-height:80vh;overflow-y:auto}.modal-sm{max-width:400px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.modal-body{padding:1.5rem}.modal-footer{display:flex;gap:1rem;padding:1.5rem;border-top:1px solid #e0e0e0;justify-content:flex-end}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group.checkbox label{display:flex;align-items:center;gap:.5rem;margin-bottom:0;font-weight:400}.form-group.checkbox input{margin:0;cursor:pointer}.btn-icon{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem;transition:transform .2s}.btn-icon:hover{transform:scale(1.2)}.btn-icon.danger:hover{color:#d32f2f}.actions-cell{display:flex;gap:.5rem;align-items:center}.text-muted{color:#757575;font-size:.875rem}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}
