638 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			CSS
		
	
	
	
		
		
			
		
	
	
			638 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			CSS
		
	
	
	
|  | /* Reset and Base Styles */ | ||
|  | * { | ||
|  |     margin: 0; | ||
|  |     padding: 0; | ||
|  |     box-sizing: border-box; | ||
|  | } | ||
|  | 
 | ||
|  | body { | ||
|  |     font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; | ||
|  |     line-height: 1.5; | ||
|  |     color: #111827; | ||
|  |     background-color: #f9fafb; | ||
|  | } | ||
|  | 
 | ||
|  | /* Utility Classes */ | ||
|  | .min-h-screen { | ||
|  |     min-height: 100vh; | ||
|  | } | ||
|  | 
 | ||
|  | .bg-gray-50 { | ||
|  |     background-color: #f9fafb; | ||
|  | } | ||
|  | 
 | ||
|  | .bg-green-700 { | ||
|  |     background-color: #15803d; | ||
|  | } | ||
|  | 
 | ||
|  | .bg-green-600 { | ||
|  |     background-color: #16a34a; | ||
|  | } | ||
|  | 
 | ||
|  | .bg-white { | ||
|  |     background-color: #ffffff; | ||
|  | } | ||
|  | 
 | ||
|  | .bg-gray-100 { | ||
|  |     background-color: #f3f4f6; | ||
|  | } | ||
|  | 
 | ||
|  | .bg-gray-200 { | ||
|  |     background-color: #e5e7eb; | ||
|  | } | ||
|  | 
 | ||
|  | .bg-gray-300 { | ||
|  |     background-color: #d1d5db; | ||
|  | } | ||
|  | 
 | ||
|  | .text-white { | ||
|  |     color: #ffffff; | ||
|  | } | ||
|  | 
 | ||
|  | .text-gray-500 { | ||
|  |     color: #6b7280; | ||
|  | } | ||
|  | 
 | ||
|  | .text-gray-600 { | ||
|  |     color: #4b5563; | ||
|  | } | ||
|  | 
 | ||
|  | .text-gray-700 { | ||
|  |     color: #374151; | ||
|  | } | ||
|  | 
 | ||
|  | .text-gray-900 { | ||
|  |     color: #111827; | ||
|  | } | ||
|  | 
 | ||
|  | .text-blue-500 { | ||
|  |     color: #3b82f6; | ||
|  | } | ||
|  | 
 | ||
|  | .text-green-600 { | ||
|  |     color: #16a34a; | ||
|  | } | ||
|  | 
 | ||
|  | .text-green-900 { | ||
|  |     color: #14532d; | ||
|  | } | ||
|  | 
 | ||
|  | .px-4 { | ||
|  |     padding-left: 1rem; | ||
|  |     padding-right: 1rem; | ||
|  | } | ||
|  | 
 | ||
|  | .py-3 { | ||
|  |     padding-top: 0.75rem; | ||
|  |     padding-bottom: 0.75rem; | ||
|  | } | ||
|  | 
 | ||
|  | .py-2 { | ||
|  |     padding-top: 0.5rem; | ||
|  |     padding-bottom: 0.5rem; | ||
|  | } | ||
|  | 
 | ||
|  | .py-2\.5 { | ||
|  |     padding-top: 0.625rem; | ||
|  |     padding-bottom: 0.625rem; | ||
|  | } | ||
|  | 
 | ||
|  | .py-4 { | ||
|  |     padding-top: 1rem; | ||
|  |     padding-bottom: 1rem; | ||
|  | } | ||
|  | 
 | ||
|  | .py-6 { | ||
|  |     padding-top: 1.5rem; | ||
|  |     padding-bottom: 1.5rem; | ||
|  | } | ||
|  | 
 | ||
|  | .px-3 { | ||
|  |     padding-left: 0.75rem; | ||
|  |     padding-right: 0.75rem; | ||
|  | } | ||
|  | 
 | ||
|  | .px-6 { | ||
|  |     padding-left: 1.5rem; | ||
|  |     padding-right: 1.5rem; | ||
|  | } | ||
|  | 
 | ||
|  | .p-2 { | ||
|  |     padding: 0.5rem; | ||
|  | } | ||
|  | 
 | ||
|  | .p-3 { | ||
|  |     padding: 0.75rem; | ||
|  | } | ||
|  | 
 | ||
|  | .p-6 { | ||
|  |     padding: 1.5rem; | ||
|  | } | ||
|  | 
 | ||
|  | .flex { | ||
|  |     display: flex; | ||
|  | } | ||
|  | 
 | ||
|  | .items-center { | ||
|  |     align-items: center; | ||
|  | } | ||
|  | 
 | ||
|  | .justify-between { | ||
|  |     justify-content: space-between; | ||
|  | } | ||
|  | 
 | ||
|  | .justify-center { | ||
|  |     justify-content: center; | ||
|  | } | ||
|  | 
 | ||
|  | .gap-2 { | ||
|  |     gap: 0.5rem; | ||
|  | } | ||
|  | 
 | ||
|  | .gap-3 { | ||
|  |     gap: 0.75rem; | ||
|  | } | ||
|  | 
 | ||
|  | .gap-4 { | ||
|  |     gap: 1rem; | ||
|  | } | ||
|  | 
 | ||
|  | .text-lg { | ||
|  |     font-size: 1.125rem; | ||
|  |     line-height: 1.75rem; | ||
|  | } | ||
|  | 
 | ||
|  | .text-sm { | ||
|  |     font-size: 0.875rem; | ||
|  |     line-height: 1.25rem; | ||
|  | } | ||
|  | 
 | ||
|  | .text-xs { | ||
|  |     font-size: 0.75rem; | ||
|  |     line-height: 1rem; | ||
|  | } | ||
|  | 
 | ||
|  | .font-medium { | ||
|  |     font-weight: 500; | ||
|  | } | ||
|  | 
 | ||
|  | .h-4 { | ||
|  |     height: 1rem; | ||
|  | } | ||
|  | 
 | ||
|  | .w-4 { | ||
|  |     width: 1rem; | ||
|  | } | ||
|  | 
 | ||
|  | .h-3 { | ||
|  |     height: 0.75rem; | ||
|  | } | ||
|  | 
 | ||
|  | .w-3 { | ||
|  |     width: 0.75rem; | ||
|  | } | ||
|  | 
 | ||
|  | .h-8 { | ||
|  |     height: 2rem; | ||
|  | } | ||
|  | 
 | ||
|  | .w-8 { | ||
|  |     width: 2rem; | ||
|  | } | ||
|  | 
 | ||
|  | .h-16 { | ||
|  |     height: 4rem; | ||
|  | } | ||
|  | 
 | ||
|  | .w-16 { | ||
|  |     width: 4rem; | ||
|  | } | ||
|  | 
 | ||
|  | .h-96 { | ||
|  |     height: 24rem; | ||
|  | } | ||
|  | 
 | ||
|  | .h-full { | ||
|  |     height: 100%; | ||
|  | } | ||
|  | 
 | ||
|  | .w-full { | ||
|  |     width: 100%; | ||
|  | } | ||
|  | 
 | ||
|  | .w-48 { | ||
|  |     width: 12rem; | ||
|  | } | ||
|  | 
 | ||
|  | .w-11 { | ||
|  |     width: 2.75rem; | ||
|  | } | ||
|  | 
 | ||
|  | .h-6 { | ||
|  |     height: 1.5rem; | ||
|  | } | ||
|  | 
 | ||
|  | .h-5 { | ||
|  |     height: 1.25rem; | ||
|  | } | ||
|  | 
 | ||
|  | .w-5 { | ||
|  |     width: 1.25rem; | ||
|  | } | ||
|  | 
 | ||
|  | .rounded-md { | ||
|  |     border-radius: 0.375rem; | ||
|  | } | ||
|  | 
 | ||
|  | .rounded-lg { | ||
|  |     border-radius: 0.5rem; | ||
|  | } | ||
|  | 
 | ||
|  | .rounded-full { | ||
|  |     border-radius: 9999px; | ||
|  | } | ||
|  | 
 | ||
|  | .border { | ||
|  |     border-width: 1px; | ||
|  | } | ||
|  | 
 | ||
|  | .border-r { | ||
|  |     border-right-width: 1px; | ||
|  | } | ||
|  | 
 | ||
|  | .border-b { | ||
|  |     border-bottom-width: 1px; | ||
|  | } | ||
|  | 
 | ||
|  | .border-l-2 { | ||
|  |     border-left-width: 2px; | ||
|  | } | ||
|  | 
 | ||
|  | .border-gray-200 { | ||
|  |     border-color: #e5e7eb; | ||
|  | } | ||
|  | 
 | ||
|  | .border-gray-100 { | ||
|  |     border-color: #f3f4f6; | ||
|  | } | ||
|  | 
 | ||
|  | .border-gray-300 { | ||
|  |     border-color: #d1d5db; | ||
|  | } | ||
|  | 
 | ||
|  | .border-green-500 { | ||
|  |     border-color: #22c55e; | ||
|  | } | ||
|  | 
 | ||
|  | .shadow-sm { | ||
|  |     box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); | ||
|  | } | ||
|  | 
 | ||
|  | .cursor-pointer { | ||
|  |     cursor: pointer; | ||
|  | } | ||
|  | 
 | ||
|  | .select-none { | ||
|  |     user-select: none; | ||
|  | } | ||
|  | 
 | ||
|  | .space-y-1 > * + * { | ||
|  |     margin-top: 0.25rem; | ||
|  | } | ||
|  | 
 | ||
|  | .flex-1 { | ||
|  |     flex: 1 1 0%; | ||
|  | } | ||
|  | 
 | ||
|  | .transition-transform { | ||
|  |     transition-property: transform; | ||
|  |     transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); | ||
|  |     transition-duration: 150ms; | ||
|  | } | ||
|  | 
 | ||
|  | .transition-colors { | ||
|  |     transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; | ||
|  |     transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); | ||
|  |     transition-duration: 150ms; | ||
|  | } | ||
|  | 
 | ||
|  | .rotate-180 { | ||
|  |     transform: rotate(180deg); | ||
|  | } | ||
|  | 
 | ||
|  | .ml-4 { | ||
|  |     margin-left: 1rem; | ||
|  | } | ||
|  | 
 | ||
|  | .mt-2 { | ||
|  |     margin-top: 0.5rem; | ||
|  | } | ||
|  | 
 | ||
|  | .mb-4 { | ||
|  |     margin-bottom: 1rem; | ||
|  | } | ||
|  | 
 | ||
|  | .mx-auto { | ||
|  |     margin-left: auto; | ||
|  |     margin-right: auto; | ||
|  | } | ||
|  | 
 | ||
|  | .text-center { | ||
|  |     text-align: center; | ||
|  | } | ||
|  | 
 | ||
|  | .text-left { | ||
|  |     text-align: left; | ||
|  | } | ||
|  | 
 | ||
|  | .uppercase { | ||
|  |     text-transform: uppercase; | ||
|  | } | ||
|  | 
 | ||
|  | .tracking-wider { | ||
|  |     letter-spacing: 0.05em; | ||
|  | } | ||
|  | 
 | ||
|  | .whitespace-nowrap { | ||
|  |     white-space: nowrap; | ||
|  | } | ||
|  | 
 | ||
|  | .overflow-x-auto { | ||
|  |     overflow-x: auto; | ||
|  | } | ||
|  | 
 | ||
|  | .divide-y > * + * { | ||
|  |     border-top-width: 1px; | ||
|  | } | ||
|  | 
 | ||
|  | .divide-gray-200 > * + * { | ||
|  |     border-color: #e5e7eb; | ||
|  | } | ||
|  | 
 | ||
|  | .sr-only { | ||
|  |     position: absolute; | ||
|  |     width: 1px; | ||
|  |     height: 1px; | ||
|  |     padding: 0; | ||
|  |     margin: -1px; | ||
|  |     overflow: hidden; | ||
|  |     clip: rect(0, 0, 0, 0); | ||
|  |     white-space: nowrap; | ||
|  |     border: 0; | ||
|  | } | ||
|  | 
 | ||
|  | .peer:checked ~ .peer-checked\:bg-green-600 { | ||
|  |     background-color: #16a34a; | ||
|  | } | ||
|  | 
 | ||
|  | .peer-checked\:after\:translate-x-full { | ||
|  |     content: ''; | ||
|  | } | ||
|  | 
 | ||
|  | .peer:checked ~ .peer-checked\:after\:translate-x-full::after { | ||
|  |     transform: translateX(100%); | ||
|  | } | ||
|  | 
 | ||
|  | .peer-checked\:after\:border-white::after { | ||
|  |     border-color: #ffffff; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:content-\[\'\'\]::after { | ||
|  |     content: ''; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:absolute::after { | ||
|  |     position: absolute; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:top-\[2px\]::after { | ||
|  |     top: 2px; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:left-\[2px\]::after { | ||
|  |     left: 2px; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:bg-white::after { | ||
|  |     background-color: #ffffff; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:border-gray-300::after { | ||
|  |     border-color: #d1d5db; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:border::after { | ||
|  |     border-width: 1px; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:rounded-full::after { | ||
|  |     border-radius: 9999px; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:h-5::after { | ||
|  |     height: 1.25rem; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:w-5::after { | ||
|  |     width: 1.25rem; | ||
|  | } | ||
|  | 
 | ||
|  | .after\:transition-all::after { | ||
|  |     transition-property: all; | ||
|  |     transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); | ||
|  |     transition-duration: 150ms; | ||
|  | } | ||
|  | 
 | ||
|  | .peer-focus\:outline-none:focus ~ .peer-focus\:outline-none { | ||
|  |     outline: 2px solid transparent; | ||
|  |     outline-offset: 2px; | ||
|  | } | ||
|  | 
 | ||
|  | .peer-focus\:ring-4:focus ~ .peer-focus\:ring-4 { | ||
|  |     box-shadow: 0 0 0 4px; | ||
|  | } | ||
|  | 
 | ||
|  | .peer-focus\:ring-green-300:focus ~ .peer-focus\:ring-green-300 { | ||
|  |     box-shadow: 0 0 0 4px rgba(134, 239, 172, 0.5); | ||
|  | } | ||
|  | 
 | ||
|  | .min-h-\[calc\(100vh-60px\)\] { | ||
|  |     min-height: calc(100vh - 60px); | ||
|  | } | ||
|  | 
 | ||
|  | .relative { | ||
|  |     position: relative; | ||
|  | } | ||
|  | 
 | ||
|  | .inline-flex { | ||
|  |     display: inline-flex; | ||
|  | } | ||
|  | 
 | ||
|  | .absolute { | ||
|  |     position: absolute; | ||
|  | } | ||
|  | 
 | ||
|  | .top-\[2px\] { | ||
|  |     top: 2px; | ||
|  | } | ||
|  | 
 | ||
|  | .left-\[2px\] { | ||
|  |     left: 2px; | ||
|  | } | ||
|  | 
 | ||
|  | .hidden { | ||
|  |     display: none; | ||
|  | } | ||
|  | 
 | ||
|  | /* Hover Effects */ | ||
|  | .hover\:bg-gray-50:hover { | ||
|  |     background-color: #f9fafb; | ||
|  | } | ||
|  | 
 | ||
|  | .hover\:bg-gray-100:hover { | ||
|  |     background-color: #f3f4f6; | ||
|  | } | ||
|  | 
 | ||
|  | .hover\:bg-green-600:hover { | ||
|  |     background-color: #16a34a; | ||
|  | } | ||
|  | 
 | ||
|  | .hover\:text-green-900:hover { | ||
|  |     color: #14532d; | ||
|  | } | ||
|  | 
 | ||
|  | /* Focus Effects */ | ||
|  | .focus\:border-green-500:focus { | ||
|  |     border-color: #22c55e; | ||
|  | } | ||
|  | 
 | ||
|  | .focus\:outline-none:focus { | ||
|  |     outline: 2px solid transparent; | ||
|  |     outline-offset: 2px; | ||
|  | } | ||
|  | 
 | ||
|  | /* Custom Toggle Switch Styles */ | ||
|  | .toggle-switch { | ||
|  |     position: relative; | ||
|  |     display: inline-block; | ||
|  |     width: 44px; | ||
|  |     height: 24px; | ||
|  | } | ||
|  | 
 | ||
|  | .toggle-switch input { | ||
|  |     opacity: 0; | ||
|  |     width: 0; | ||
|  |     height: 0; | ||
|  | } | ||
|  | 
 | ||
|  | .toggle-slider { | ||
|  |     position: absolute; | ||
|  |     cursor: pointer; | ||
|  |     top: 0; | ||
|  |     left: 0; | ||
|  |     right: 0; | ||
|  |     bottom: 0; | ||
|  |     background-color: #e5e7eb; | ||
|  |     transition: .4s; | ||
|  |     border-radius: 24px; | ||
|  | } | ||
|  | 
 | ||
|  | .toggle-slider:before { | ||
|  |     position: absolute; | ||
|  |     content: ""; | ||
|  |     height: 20px; | ||
|  |     width: 20px; | ||
|  |     left: 2px; | ||
|  |     top: 2px; | ||
|  |     background-color: white; | ||
|  |     transition: .4s; | ||
|  |     border-radius: 50%; | ||
|  |     border: 1px solid #d1d5db; | ||
|  | } | ||
|  | 
 | ||
|  | input:checked + .toggle-slider { | ||
|  |     background-color: #16a34a; | ||
|  | } | ||
|  | 
 | ||
|  | input:focus + .toggle-slider { | ||
|  |     box-shadow: 0 0 0 4px rgba(134, 239, 172, 0.3); | ||
|  | } | ||
|  | 
 | ||
|  | input:checked + .toggle-slider:before { | ||
|  |     transform: translateX(20px); | ||
|  |     border-color: white; | ||
|  | } | ||
|  | 
 | ||
|  | /* Table Styles */ | ||
|  | table { | ||
|  |     border-collapse: collapse; | ||
|  | } | ||
|  | 
 | ||
|  | thead th { | ||
|  |     background-color: #f9fafb; | ||
|  |     font-weight: 500; | ||
|  |     text-transform: uppercase; | ||
|  |     letter-spacing: 0.05em; | ||
|  |     font-size: 0.75rem; | ||
|  |     color: #6b7280; | ||
|  |     padding: 0.75rem 1.5rem; | ||
|  |     text-align: left; | ||
|  | } | ||
|  | 
 | ||
|  | tbody td { | ||
|  |     padding: 1rem 1.5rem; | ||
|  |     border-top: 1px solid #e5e7eb; | ||
|  |     font-size: 0.875rem; | ||
|  | } | ||
|  | 
 | ||
|  | tbody tr:hover { | ||
|  |     background-color: #f9fafb; | ||
|  | } | ||
|  | 
 | ||
|  | /* Button Styles */ | ||
|  | button { | ||
|  |     border: none; | ||
|  |     background: none; | ||
|  |     cursor: pointer; | ||
|  |     font-family: inherit; | ||
|  | } | ||
|  | 
 | ||
|  | /* Input Styles */ | ||
|  | input[type="text"] { | ||
|  |     border: 1px solid #e5e7eb; | ||
|  |     border-radius: 0.375rem; | ||
|  |     padding: 0.5rem 0.75rem; | ||
|  |     font-size: 0.875rem; | ||
|  |     width: 100%; | ||
|  |     transition: border-color 0.15s ease; | ||
|  | } | ||
|  | 
 | ||
|  | input[type="text"]:focus { | ||
|  |     outline: none; | ||
|  |     border-color: #22c55e; | ||
|  | } | ||
|  | 
 | ||
|  | /* Animation */ | ||
|  | @keyframes fadeIn { | ||
|  |     from { opacity: 0; } | ||
|  |     to { opacity: 1; } | ||
|  | } | ||
|  | 
 | ||
|  | .fade-in { | ||
|  |     animation: fadeIn 0.3s ease-in; | ||
|  | } | ||
|  | 
 | ||
|  | /* Responsive */ | ||
|  | @media (max-width: 768px) { | ||
|  |     .w-48 { | ||
|  |         width: 100%; | ||
|  |     } | ||
|  |      | ||
|  |     .flex { | ||
|  |         flex-direction: column; | ||
|  |     } | ||
|  |      | ||
|  |     .min-h-\[calc\(100vh-60px\)\] { | ||
|  |         min-height: auto; | ||
|  |     } | ||
|  | } |