Spaces:
Running
Running
| /* Inter Font & Base */ | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| background-color: #f8fafc; | |
| } | |
| /* Custom Scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: #f1f5f9; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: #cbd5e1; | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: #94a3b8; | |
| } | |
| /* Animations */ | |
| @keyframes fade-up { | |
| from { | |
| opacity: 0; | |
| transform: translateY(4px) scale(0.98); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| @keyframes slide-up { | |
| from { | |
| opacity: 0; | |
| transform: translateX(-50%) translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(-50%) translateY(0); | |
| } | |
| } | |
| .animate-fade-up { | |
| animation: fade-up 150ms ease-out forwards; | |
| } | |
| .animate-slide-up { | |
| animation: slide-up 200ms ease-out forwards; | |
| } | |
| /* Patient Row Hover Effects */ | |
| .patient-row { | |
| transition: all 150ms ease; | |
| position: relative; | |
| } | |
| .patient-row:hover { | |
| box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); | |
| border-color: #dbeafe; | |
| z-index: 10; | |
| } | |
| .patient-row.selected { | |
| background-color: #eff6ff; | |
| border-left: 3px solid #2563eb; | |
| } | |
| .patient-row.selected::before { | |
| content: ''; | |
| position: absolute; | |
| left: 0; | |
| top: 0; | |
| bottom: 0; | |
| width: 3px; | |
| background-color: #2563eb; | |
| } | |
| /* Status Indicators on Avatars */ | |
| .avatar-status { | |
| position: absolute; | |
| bottom: 0; | |
| right: 0; | |
| width: 10px; | |
| height: 10px; | |
| border-radius: 50%; | |
| border: 2px solid white; | |
| } | |
| .avatar-status.active { background-color: #22c55e; } | |
| .avatar-status.pending { background-color: #eab308; } | |
| .avatar-status.expired { background-color: #ef4444; } | |
| .avatar-status.archived { background-color: #9ca3af; } | |
| .avatar-status.approved { background-color: #3b82f6; } | |
| /* Status Chips */ | |
| .status-chip { | |
| display: inline-flex; | |
| align-items: center; | |
| padding: 4px 10px; | |
| border-radius: 9999px; | |
| font-size: 12px; | |
| font-weight: 500; | |
| line-height: 1; | |
| } | |
| .status-chip.active { | |
| background-color: #dcfce7; | |
| color: #166534; | |
| } | |
| .status-chip.pending { | |
| background-color: #fef9c3; | |
| color: #854d0e; | |
| } | |
| .status-chip.approved { | |
| background-color: #dbeafe; | |
| color: #1d4ed8; | |
| } | |
| .status-chip.expired { | |
| background-color: #fee2e2; | |
| color: #991b1b; | |
| } | |
| .status-chip.archived { | |
| background-color: #f3f4f6; | |
| color: #374151; | |
| } | |
| /* Expiration Date Styles */ | |
| .expiration-warning { | |
| color: #d97706; | |
| font-weight: 500; | |
| } | |
| .expiration-danger { | |
| color: #dc2626; | |
| font-weight: 500; | |
| } | |
| /* Checkbox Focus */ | |
| input[type="checkbox"]:focus { | |
| ring: 2px; | |
| ring-color: #2563eb; | |
| ring-offset: 2px; | |
| } | |
| /* Dropdown Positioning */ | |
| .dropdown-menu { | |
| position: absolute; | |
| right: 0; | |
| top: 100%; | |
| margin-top: 4px; | |
| z-index: 50; | |
| } | |
| /* Loading Shimmer */ | |
| .shimmer { | |
| background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); | |
| background-size: 200% 100%; | |
| animation: shimmer 1.5s infinite; | |
| } | |
| @keyframes shimmer { | |
| 0% { background-position: 200% 0; } | |
| 100% { background-position: -200% 0; } | |
| } | |
| /* Responsive Adjustments */ | |
| @media (max-width: 1024px) { | |
| .patient-row .col-span-2, | |
| .patient-row .col-span-1 { | |
| font-size: 13px; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .grid-cols-12 { | |
| grid-template-columns: repeat(4, 1fr); | |
| } | |
| .patient-row .col-span-4, | |
| .patient-row .col-span-2, | |
| .patient-row .col-span-1 { | |
| grid-column: span 4; | |
| } | |
| .patient-row { | |
| padding-top: 16px; | |
| padding-bottom: 16px; | |
| } | |
| } | |
| /* Focus Ring Accessibility */ | |
| *:focus-visible { | |
| outline: 2px solid #2563eb; | |
| outline-offset: 2px; | |
| } | |
| button:focus-visible, | |
| input:focus-visible, | |
| select:focus-visible { | |
| outline: 2px solid #2563eb; | |
| outline-offset: 2px; | |
| } |