@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.btn{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;background:#1e3a8a;color:#fff}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary:hover:not(:disabled){background:#0f172a;transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;background:#f8f9fa;color:#2c3e50;border:1px solid #dee2e6}.btn-secondary:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-secondary:hover:not(:disabled){background:#e9ecef}.btn-outline{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;background:transparent;color:#1e3a8a;border:2px solid #1E3A8A}.btn-outline:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-outline:hover:not(:disabled){background:#1e3a8a;color:#fff;transform:translateY(-2px)}.btn-danger{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;background:#ef4444;color:#fff}.btn-danger:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-2px)}.btn-danger-critical{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;background:#ef4444;color:#fff;background:#eb1515;border-color:#eb1515;font-weight:700}.btn-danger-critical:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-danger-critical:hover:not(:disabled){background:#dc2626;transform:translateY(-2px)}.btn-danger-critical:hover:not(:disabled){background:#d41212;border-color:#d41212;transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.btn-danger-critical:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0000000d}.btn-warning{padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;background:#fcd34d;color:#92400e}.btn-warning:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-warning:hover:not(:disabled){background:#b45309;transform:translateY(-2px)}.btn-sm{padding:.5rem 1rem;font-size:.75rem}.card{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;padding:2rem;min-height:250px;margin:1rem 0}.card-hover{transition:transform .2s ease,box-shadow .2s ease}.card-hover:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.form-group{margin-bottom:1.5rem}.form-label{display:block;font-weight:600;color:#34495e;margin-bottom:.5rem}.form-control{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .3s ease}.form-control:focus{outline:none;border-color:#1e3a8a;box-shadow:0 0 0 3px #1e3a8a1a}.form-control.error{border-color:#ef4444}.form-error{color:#ef4444;font-size:.875rem;margin-top:.5rem}.radio-group{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.5rem}.radio-option{display:flex;align-items:center;gap:.5rem;padding:10px 16px;border:2px solid #ddd;border-radius:8px;cursor:pointer;transition:all .2s ease;min-width:130px;justify-content:center;font-size:1.3rem;font-weight:500}.radio-option:hover{border-color:#1e3a8a;background:#eff6ff;transform:scale(1.05)}.radio-option.selected{border-color:#1e3a8a;background:#dbeafe;color:#1e3a8a}.radio-option input{margin:0}.badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block}.badge.active{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#d1fae5;color:#065f46}.badge.inactive{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#fee2e2;color:#991b1b}.role-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block}.role-badge.admin{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#e3f2fd;color:#1565c0}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block}.status-badge.unbilled{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#fef3c7;color:#92400e}.status-badge.billed{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#dbeafe;color:#1e3a8a}.status-badge.paid{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#d1fae5;color:#065f46}.status-badge.overdue{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#fee2e2;color:#991b1b}.status-badge.draft{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#f0f0f0;color:#6c757d}.status-badge.cancelled{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#fee2e2;color:#991b1b}.status-badge.sent{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block;background:#dbeafe;color:#1e40af}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e0e0e0}.data-table th{font-weight:600;color:#34495e;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.data-table tbody tr{transition:background-color .2s ease}.data-table tbody tr:hover{background:#f0f4ff}.loading{display:flex;align-items:center;justify-content:center;padding:2rem}.spinner{width:40px;height:40px;border:4px solid #f0f0f0;border-top:4px solid #1E3A8A;border-radius:50%;animation:spin 1s linear infinite}.spinner-border{display:inline-block;width:.875rem;height:.875rem;border:.125rem solid #f0f0f0;border-top:.125rem solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border:.125rem solid #f0f0f0;border-top:.125rem solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.inline-spinner{display:inline-block;width:.875rem;height:.875rem;border:.125rem solid #f0f0f0;border-top:.125rem solid currentColor;border-radius:50%;animation:spin 1s linear infinite;margin-right:.5rem}.loading-spinner{width:40px;height:40px;border:4px solid #f0f0f0;border-top:4px solid #1E3A8A;border-radius:50%;animation:spin 1s linear infinite}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 30px #0000004d}.modal-content h3{color:#2c3e50;margin:0 0 1.5rem;font-size:1.5rem}.error,.error-message{padding:1rem;border-radius:6px;margin:1rem 0;display:flex;justify-content:space-between;align-items:center;color:#991b1b;background:#fee2e2;border:1px solid #fdc9c9}.error p,.error-message p{margin:0}.success,.success-message{padding:1rem;border-radius:6px;margin:1rem 0;display:flex;justify-content:space-between;align-items:center;color:#065f46;background:#d1fae5;border:1px solid #baf8d8}.success p,.success-message p{margin:0}.container{max-width:800px;margin:0 auto;padding:2rem}.text-center{text-align:center}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.me-2{margin-right:.5rem}.section-header{border-bottom:2px solid #1E3A8A;padding-bottom:1rem;margin-bottom:2rem}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a}.empty-state h3{color:#2c3e50;margin-bottom:1rem;font-size:1.5rem}.empty-state p{color:#6c757d;margin-bottom:2rem;font-size:1.125rem}.loading-state,.loading-container{text-align:center;padding:3rem 2rem}.loading-state .loading-spinner,.loading-container .loading-spinner{margin:0 auto 1rem}.loading-state .loading-text,.loading-state p,.loading-container .loading-text,.loading-container p{color:#6c757d;margin:0}.error-state{text-align:center;padding:4rem;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a}.error-state h2{color:#ef4444;margin-bottom:1rem}.error-state p{color:#6c757d;margin-bottom:2rem}.w-100{width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#f8f9fa;min-height:100vh;color:#2c3e50;line-height:1.6}@media (max-width: 768px){.container{padding:1rem}}@media print{body{background:#fff!important}.app-nav,.sidebar,nav{display:none!important}@page{margin:.75in;size:letter}}
