Last active
June 23, 2025 07:51
-
-
Save jayc971/122dee43b6980d33c2049ab84c2b30a7 to your computer and use it in GitHub Desktop.
my gurst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| html { | |
| font-size: 16px; | |
| scroll-behavior: smooth; | |
| } | |
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; | |
| line-height: 1.6; | |
| color: #374151; | |
| background-color: #f9fafb; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| h1, h2, h3, h4, h5, h6 { | |
| font-weight: 600; | |
| line-height: 1.25; | |
| margin-bottom: 0.5rem; | |
| } | |
| h1 { font-size: 2.25rem; } | |
| h2 { font-size: 1.875rem; } | |
| h3 { font-size: 1.5rem; } | |
| h4 { font-size: 1.25rem; } | |
| h5 { font-size: 1.125rem; } | |
| h6 { font-size: 1rem; } | |
| p { | |
| margin-bottom: 1rem; | |
| } | |
| .container { | |
| max-width: 1200px; | |
| margin: 0 auto; | |
| padding: 0 1rem; | |
| } | |
| .flex { | |
| display: flex; | |
| } | |
| .flex-col { | |
| flex-direction: column; | |
| } | |
| .flex-wrap { | |
| flex-wrap: wrap; | |
| } | |
| .items-center { | |
| align-items: center; | |
| } | |
| .items-start { | |
| align-items: flex-start; | |
| } | |
| .justify-center { | |
| justify-content: center; | |
| } | |
| .justify-between { | |
| justify-content: space-between; | |
| } | |
| .justify-end { | |
| justify-content: flex-end; | |
| } | |
| .flex-1 { | |
| flex: 1; | |
| } | |
| .flex-shrink-0 { | |
| flex-shrink: 0; | |
| } | |
| .grid { | |
| display: grid; | |
| } | |
| .grid-cols-1 { | |
| grid-template-columns: repeat(1, minmax(0, 1fr)); | |
| } | |
| .grid-cols-2 { | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| } | |
| .grid-cols-3 { | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| } | |
| .grid-cols-4 { | |
| grid-template-columns: repeat(4, minmax(0, 1fr)); | |
| } | |
| .gap-2 { gap: 0.5rem; } | |
| .gap-3 { gap: 0.75rem; } | |
| .gap-4 { gap: 1rem; } | |
| .gap-6 { gap: 1.5rem; } | |
| .gap-8 { gap: 2rem; } | |
| .p-1 { padding: 0.25rem; } | |
| .p-2 { padding: 0.5rem; } | |
| .p-3 { padding: 0.75rem; } | |
| .p-4 { padding: 1rem; } | |
| .p-6 { padding: 1.5rem; } | |
| .p-8 { padding: 2rem; } | |
| .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; } | |
| .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; } | |
| .px-4 { padding-left: 1rem; padding-right: 1rem; } | |
| .px-6 { padding-left: 1.5rem; padding-right: 1.5rem; } | |
| .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; } | |
| .py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; } | |
| .py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; } | |
| .py-4 { padding-top: 1rem; padding-bottom: 1rem; } | |
| .py-8 { padding-top: 2rem; padding-bottom: 2rem; } | |
| .m-2 { margin: 0.5rem; } | |
| .m-4 { margin: 1rem; } | |
| .mx-auto { margin-left: auto; margin-right: auto; } | |
| .mb-2 { margin-bottom: 0.5rem; } | |
| .mb-4 { margin-bottom: 1rem; } | |
| .mb-6 { margin-bottom: 1.5rem; } | |
| .mb-8 { margin-bottom: 2rem; } | |
| .mt-1 { margin-top: 0.25rem; } | |
| .mt-2 { margin-top: 0.5rem; } | |
| .mt-4 { margin-top: 1rem; } | |
| .ml-2 { margin-left: 0.5rem; } | |
| .ml-4 { margin-left: 1rem; } | |
| .mr-2 { margin-right: 0.5rem; } | |
| .mr-4 { margin-right: 1rem; } | |
| .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-600 { color: #2563eb; } | |
| .text-blue-800 { color: #1e40af; } | |
| .text-red-600 { color: #dc2626; } | |
| .text-red-700 { color: #b91c1c; } | |
| .text-red-800 { color: #991b1b; } | |
| .text-green-600 { color: #16a34a; } | |
| .text-green-800 { color: #166534; } | |
| .text-yellow-600 { color: #ca8a04; } | |
| .text-yellow-800 { color: #92400e; } | |
| .bg-white { background-color: #ffffff; } | |
| .bg-gray-50 { background-color: #f9fafb; } | |
| .bg-gray-100 { background-color: #f3f4f6; } | |
| .bg-gray-200 { background-color: #e5e7eb; } | |
| .bg-gray-300 { background-color: #d1d5db; } | |
| .bg-blue-50 { background-color: #eff6ff; } | |
| .bg-blue-100 { background-color: #dbeafe; } | |
| .bg-blue-500 { background-color: #3b82f6; } | |
| .bg-blue-600 { background-color: #2563eb; } | |
| .bg-blue-700 { background-color: #1d4ed8; } | |
| .bg-red-100 { background-color: #fee2e2; } | |
| .bg-red-500 { background-color: #ef4444; } | |
| .bg-red-600 { background-color: #dc2626; } | |
| .bg-red-700 { background-color: #b91c1c; } | |
| .bg-green-100 { background-color: #dcfce7; } | |
| .bg-green-500 { background-color: #22c55e; } | |
| .bg-yellow-100 { background-color: #fef3c7; } | |
| .bg-yellow-500 { background-color: #eab308; } | |
| .border { border-width: 1px; } | |
| .border-b { border-bottom-width: 1px; } | |
| .border-l-4 { border-left-width: 4px; } | |
| .border-gray-200 { border-color: #e5e7eb; } | |
| .border-gray-300 { border-color: #d1d5db; } | |
| .border-blue-200 { border-color: #c3ddfd; } | |
| .border-blue-500 { border-color: #3b82f6; } | |
| .border-blue-600 { border-color: #2563eb; } | |
| .border-green-500 { border-color: #22c55e; } | |
| .border-red-400 { border-color: #f87171; } | |
| .border-transparent { border-color: transparent; } | |
| .rounded { border-radius: 0.25rem; } | |
| .rounded-md { border-radius: 0.375rem; } | |
| .rounded-lg { border-radius: 0.5rem; } | |
| .rounded-full { border-radius: 9999px; } | |
| .shadow { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); } | |
| .shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } | |
| .shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } | |
| .shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } | |
| .text-xs { font-size: 0.75rem; } | |
| .text-sm { font-size: 0.875rem; } | |
| .text-base { font-size: 1rem; } | |
| .text-lg { font-size: 1.125rem; } | |
| .text-xl { font-size: 1.25rem; } | |
| .text-2xl { font-size: 1.5rem; } | |
| .text-3xl { font-size: 1.875rem; } | |
| .text-6xl { font-size: 3.75rem; } | |
| .font-medium { font-weight: 500; } | |
| .font-semibold { font-weight: 600; } | |
| .font-bold { font-weight: 700; } | |
| .text-center { text-align: center; } | |
| .text-left { text-align: left; } | |
| .text-right { text-align: right; } | |
| .line-through { text-decoration: line-through; } | |
| .block { display: block; } | |
| .inline-block { display: inline-block; } | |
| .hidden { display: none; } | |
| .relative { position: relative; } | |
| .absolute { position: absolute; } | |
| .fixed { position: fixed; } | |
| .inset-0 { top: 0; right: 0; bottom: 0; left: 0; } | |
| .top-0 { top: 0; } | |
| .right-0 { right: 0; } | |
| .bottom-0 { bottom: 0; } | |
| .left-0 { left: 0; } | |
| .z-50 { z-index: 50; } | |
| .z-9999 { z-index: 9999; } | |
| .w-4 { width: 1rem; } | |
| .w-8 { width: 2rem; } | |
| .w-12 { width: 3rem; } | |
| .w-full { width: 100%; } | |
| .h-4 { height: 1rem; } | |
| .h-8 { height: 2rem; } | |
| .h-12 { height: 3rem; } | |
| .h-16 { height: 4rem; } | |
| .h-64 { height: 16rem; } | |
| .max-w-md { max-width: 28rem; } | |
| .max-w-lg { max-width: 32rem; } | |
| .max-w-4xl { max-width: 56rem; } | |
| .max-w-7xl { max-width: 80rem; } | |
| .min-h-screen { min-height: 100vh; } | |
| .max-h-90vh { max-height: 90vh; } | |
| .overflow-hidden { overflow: hidden; } | |
| .overflow-y-auto { overflow-y: auto; } | |
| .opacity-50 { opacity: 0.5; } | |
| .opacity-75 { opacity: 0.75; } | |
| .header { | |
| background-color: #ffffff; | |
| border-bottom: 1px solid #e5e7eb; | |
| box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1); | |
| } | |
| .header-container { | |
| max-width: 80rem; | |
| margin: 0 auto; | |
| padding: 0 1rem; | |
| } | |
| .header-content { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| height: 4rem; | |
| } | |
| .header-title { | |
| font-size: 1.25rem; | |
| font-weight: 700; | |
| color: #111827; | |
| } | |
| .header-user-info { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| } | |
| .header-username { | |
| font-size: 0.875rem; | |
| color: #374151; | |
| } | |
| .navigation { | |
| background-color: #f9fafb; | |
| border-bottom: 1px solid #e5e7eb; | |
| } | |
| .navigation-container { | |
| max-width: 80rem; | |
| margin: 0 auto; | |
| padding: 0 1rem; | |
| } | |
| .navigation-items { | |
| display: flex; | |
| gap: 2rem; | |
| } | |
| .navigation-item { | |
| padding: 1rem 0.25rem; | |
| border-bottom: 2px solid transparent; | |
| font-weight: 500; | |
| font-size: 0.875rem; | |
| color: #6b7280; | |
| text-decoration: none; | |
| cursor: pointer; | |
| background: none; | |
| border-left: none; | |
| border-right: none; | |
| border-top: none; | |
| transition: all 0.2s ease; | |
| } | |
| .navigation-item:hover { | |
| color: #374151; | |
| border-bottom-color: #d1d5db; | |
| } | |
| .navigation-item.active { | |
| color: #2563eb; | |
| border-bottom-color: #3b82f6; | |
| } | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 0.5rem 1rem; | |
| font-size: 0.875rem; | |
| font-weight: 500; | |
| border-radius: 0.375rem; | |
| border: 1px solid transparent; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| text-decoration: none; | |
| } | |
| .btn:focus { | |
| outline: 2px solid transparent; | |
| outline-offset: 2px; | |
| box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5); | |
| } | |
| .btn:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| .btn-primary { | |
| background-color: #2563eb; | |
| color: #ffffff; | |
| } | |
| .btn-primary:hover:not(:disabled) { | |
| background-color: #1d4ed8; | |
| } | |
| .btn-secondary { | |
| background-color: #d1d5db; | |
| color: #374151; | |
| } | |
| .btn-secondary:hover:not(:disabled) { | |
| background-color: #9ca3af; | |
| } | |
| .btn-danger { | |
| background-color: #dc2626; | |
| color: #ffffff; | |
| } | |
| .btn-danger:hover:not(:disabled) { | |
| background-color: #b91c1c; | |
| } | |
| .btn-sm { | |
| padding: 0.25rem 0.75rem; | |
| font-size: 0.75rem; | |
| } | |
| .btn-lg { | |
| padding: 0.75rem 1.5rem; | |
| font-size: 1.125rem; | |
| } | |
| .form-group { | |
| margin-bottom: 1rem; | |
| } | |
| .form-label { | |
| display: block; | |
| font-size: 0.875rem; | |
| font-weight: 500; | |
| color: #374151; | |
| margin-bottom: 0.25rem; | |
| } | |
| .form-input, | |
| .form-select, | |
| .form-textarea { | |
| display: block; | |
| width: 100%; | |
| padding: 0.5rem 0.75rem; | |
| font-size: 0.875rem; | |
| border: 1px solid #d1d5db; | |
| border-radius: 0.375rem; | |
| background-color: #ffffff; | |
| transition: border-color 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .form-input:focus, | |
| .form-select:focus, | |
| .form-textarea:focus { | |
| outline: none; | |
| border-color: #3b82f6; | |
| box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); | |
| } | |
| .form-textarea { | |
| resize: vertical; | |
| min-height: 4rem; | |
| } | |
| .form-checkbox { | |
| width: 1rem; | |
| height: 1rem; | |
| color: #2563eb; | |
| border: 1px solid #d1d5db; | |
| border-radius: 0.25rem; | |
| } | |
| .form-checkbox:focus { | |
| box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); | |
| } | |
| .card { | |
| background-color: #ffffff; | |
| border-radius: 0.5rem; | |
| box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1); | |
| overflow: hidden; | |
| } | |
| .card-header { | |
| padding: 1.5rem; | |
| border-bottom: 1px solid #e5e7eb; | |
| } | |
| .card-content { | |
| padding: 1.5rem; | |
| } | |
| .card-footer { | |
| padding: 1rem 1.5rem; | |
| background-color: #f9fafb; | |
| border-top: 1px solid #e5e7eb; | |
| } | |
| .task-item { | |
| background-color: #ffffff; | |
| border-radius: 0.5rem; | |
| box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); | |
| padding: 1rem; | |
| border-left: 4px solid #3b82f6; | |
| transition: transform 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .task-item:hover { | |
| transform: translateY(-1px); | |
| box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); | |
| } | |
| .task-item.completed { | |
| border-left-color: #22c55e; | |
| opacity: 0.75; | |
| } | |
| .task-item.priority-high { | |
| border-left-color: #ef4444; | |
| } | |
| .task-item.priority-medium { | |
| border-left-color: #f59e0b; | |
| } | |
| .task-item.priority-low { | |
| border-left-color: #10b981; | |
| } | |
| .task-header { | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: space-between; | |
| margin-bottom: 0.5rem; | |
| } | |
| .task-title-section { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| flex: 1; | |
| } | |
| .task-title { | |
| font-size: 1.125rem; | |
| font-weight: 600; | |
| color: #111827; | |
| } | |
| .task-title.completed { | |
| text-decoration: line-through; | |
| color: #6b7280; | |
| } | |
| .task-description { | |
| color: #4b5563; | |
| margin-bottom: 0.5rem; | |
| } | |
| .task-description.completed { | |
| text-decoration: line-through; | |
| } | |
| .task-meta { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| font-size: 0.875rem; | |
| color: #6b7280; | |
| } | |
| .task-actions { | |
| display: flex; | |
| gap: 0.5rem; | |
| margin-left: 1rem; | |
| } | |
| .task-action-btn { | |
| font-size: 0.875rem; | |
| font-weight: 500; | |
| color: #2563eb; | |
| background: none; | |
| border: none; | |
| cursor: pointer; | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 0.25rem; | |
| transition: background-color 0.2s ease; | |
| } | |
| .task-action-btn:hover { | |
| background-color: #eff6ff; | |
| } | |
| .task-action-btn.danger { | |
| color: #dc2626; | |
| } | |
| .task-action-btn.danger:hover { | |
| background-color: #fee2e2; | |
| } | |
| .priority-badge { | |
| padding: 0.125rem 0.5rem; | |
| font-size: 0.75rem; | |
| font-weight: 500; | |
| border-radius: 9999px; | |
| } | |
| .priority-badge.high { | |
| background-color: #fee2e2; | |
| color: #991b1b; | |
| } | |
| .priority-badge.medium { | |
| background-color: #fef3c7; | |
| color: #92400e; | |
| } | |
| .priority-badge.low { | |
| background-color: #dcfce7; | |
| color: #166534; | |
| } | |
| .modal-backdrop { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background-color: rgba(0, 0, 0, 0.5); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 50; | |
| backdrop-filter: blur(4px); | |
| } | |
| .modal { | |
| background-color: #ffffff; | |
| border-radius: 0.5rem; | |
| box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); | |
| max-width: 28rem; | |
| width: 100%; | |
| margin: 1rem; | |
| max-height: 90vh; | |
| overflow-y: auto; | |
| } | |
| .modal-large { | |
| max-width: 32rem; | |
| } | |
| .modal-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 1.5rem; | |
| border-bottom: 1px solid #e5e7eb; | |
| } | |
| .modal-title { | |
| font-size: 1.25rem; | |
| font-weight: 600; | |
| color: #111827; | |
| } | |
| .modal-close { | |
| color: #9ca3af; | |
| font-size: 1.5rem; | |
| font-weight: 700; | |
| background: none; | |
| border: none; | |
| cursor: pointer; | |
| padding: 0; | |
| width: 2rem; | |
| height: 2rem; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 0.25rem; | |
| transition: color 0.2s ease; | |
| } | |
| .modal-close:hover { | |
| color: #4b5563; | |
| } | |
| .modal-body { | |
| padding: 1.5rem; | |
| } | |
| .filter-section { | |
| background-color: #ffffff; | |
| border-radius: 0.5rem; | |
| box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1); | |
| padding: 1.5rem; | |
| margin-bottom: 1.5rem; | |
| } | |
| .filter-grid { | |
| display: grid; | |
| grid-template-columns: 1fr; | |
| gap: 1rem; | |
| margin-bottom: 1rem; | |
| } | |
| .filter-controls { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 1rem; | |
| } | |
| .custom-filters { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .filter-tag { | |
| padding: 0.25rem 0.75rem; | |
| font-size: 0.75rem; | |
| font-weight: 500; | |
| border-radius: 9999px; | |
| background-color: #f3f4f6; | |
| color: #374151; | |
| cursor: pointer; | |
| transition: background-color 0.2s ease; | |
| } | |
| .filter-tag:hover { | |
| background-color: #e5e7eb; | |
| } | |
| .filter-tag.active { | |
| background-color: #dbeafe; | |
| color: #1e40af; | |
| } | |
| .filter-tag .remove-btn { | |
| margin-left: 0.25rem; | |
| color: #dc2626; | |
| font-weight: 700; | |
| } | |
| .filter-tag .remove-btn:hover { | |
| color: #991b1b; | |
| } | |
| .dashboard-stats { | |
| display: grid; | |
| grid-template-columns: 1fr; | |
| gap: 1.5rem; | |
| margin-bottom: 2rem; | |
| } | |
| .stat-card { | |
| background-color: #ffffff; | |
| border-radius: 0.5rem; | |
| box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1); | |
| padding: 1.5rem; | |
| } | |
| .stat-card-content { | |
| display: flex; | |
| align-items: center; | |
| } | |
| .stat-icon { | |
| width: 2rem; | |
| height: 2rem; | |
| border-radius: 50%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: #ffffff; | |
| font-weight: 700; | |
| font-size: 0.875rem; | |
| flex-shrink: 0; | |
| } | |
| .stat-icon.blue { background-color: #3b82f6; } | |
| .stat-icon.green { background-color: #22c55e; } | |
| .stat-icon.yellow { background-color: #eab308; } | |
| .stat-icon.red { background-color: #ef4444; } | |
| .stat-info { | |
| margin-left: 1rem; | |
| } | |
| .stat-label { | |
| font-size: 0.875rem; | |
| font-weight: 500; | |
| color: #6b7280; | |
| } | |
| .stat-value { | |
| font-size: 1.5rem; | |
| font-weight: 600; | |
| color: #111827; | |
| } | |
| .loading-container { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| height: 16rem; | |
| } | |
| .loading-spinner { | |
| width: 3rem; | |
| height: 3rem; | |
| border: 2px solid #f3f4f6; | |
| border-top: 2px solid #2563eb; | |
| border-radius: 50%; | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| 0% { transform: rotate(0deg); } | |
| 100% { transform: rotate(360deg); } | |
| } | |
| .empty-state { | |
| text-align: center; | |
| padding: 3rem 0; | |
| } | |
| .empty-state-icon { | |
| font-size: 3.75rem; | |
| color: #9ca3af; | |
| margin-bottom: 1rem; | |
| } | |
| .empty-state-title { | |
| font-size: 1.125rem; | |
| font-weight: 500; | |
| color: #111827; | |
| margin-bottom: 0.5rem; | |
| } | |
| .empty-state-description { | |
| color: #4b5563; | |
| margin-bottom: 1rem; | |
| } | |
| .alert { | |
| padding: 1rem; | |
| border-radius: 0.375rem; | |
| margin-bottom: 1rem; | |
| } | |
| .alert-error { | |
| background-color: #fee2e2; | |
| border: 1px solid #f87171; | |
| color: #b91c1c; | |
| } | |
| .alert-success { | |
| background-color: #dcfce7; | |
| border: 1px solid #4ade80; | |
| color: #166534; | |
| } | |
| .alert-info { | |
| background-color: #dbeafe; | |
| border: 1px solid #60a5fa; | |
| color: #1e40af; | |
| } | |
| .fade-in { | |
| animation: fadeIn 0.3s ease-in-out; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .slide-up { | |
| animation: slideUp 0.3s ease-out; | |
| } | |
| @keyframes slideUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .hover-lift:hover { | |
| transform: translateY(-2px); | |
| transition: transform 0.2s ease; | |
| } | |
| .hover-scale:hover { | |
| transform: scale(1.02); | |
| transition: transform 0.2s ease; | |
| } | |
| .focus-ring:focus { | |
| outline: 2px solid transparent; | |
| outline-offset: 2px; | |
| box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5); | |
| } | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: #f1f5f9; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: #cbd5e1; | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: #94a3b8; | |
| } | |
| @media (min-width: 640px) { | |
| .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; } | |
| .sm\:text-sm { font-size: 0.875rem; } | |
| .filter-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| } | |
| .dashboard-stats { | |
| grid-template-columns: repeat(2, 1fr); | |
| } | |
| } | |
| @media (min-width: 768px) { | |
| .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } | |
| .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } | |
| .filter-grid { | |
| grid-template-columns: repeat(3, 1fr); | |
| } | |
| } | |
| @media (min-width: 1024px) { | |
| .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; } | |
| .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } | |
| .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } | |
| .filter-grid { | |
| grid-template-columns: repeat(4, 1fr); | |
| } | |
| .dashboard-stats { | |
| grid-template-columns: repeat(4, 1fr); | |
| } | |
| .navigation-items { | |
| gap: 2rem; | |
| } | |
| } | |
| @media (min-width: 1280px) { | |
| .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } | |
| } | |
| @media (max-width: 639px) { | |
| .container { | |
| padding: 0 0.75rem; | |
| } | |
| .header-content { | |
| padding: 0 0.75rem; | |
| } | |
| .navigation-items { | |
| gap: 1rem; | |
| overflow-x: auto; | |
| padding-bottom: 0.5rem; | |
| } | |
| .navigation-item { | |
| white-space: nowrap; | |
| padding: 0.75rem 0.5rem; | |
| } | |
| .modal { | |
| margin: 0.5rem; | |
| max-height: 95vh; | |
| } | |
| .modal-header, | |
| .modal-body { | |
| padding: 1rem; | |
| } | |
| .task-item { | |
| padding: 0.75rem; | |
| } | |
| .task-header { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 0.5rem; | |
| } | |
| .task-actions { | |
| margin-left: 0; | |
| margin-top: 0.5rem; | |
| } | |
| .filter-controls { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| } | |
| .custom-filters { | |
| flex-wrap: wrap; | |
| } | |
| .btn { | |
| width: 100%; | |
| justify-content: center; | |
| } | |
| .btn-group .btn { | |
| width: auto; | |
| } | |
| } | |
| @media print { | |
| .no-print, | |
| .header, | |
| .navigation, | |
| .btn, | |
| .modal-backdrop { | |
| display: none !important; | |
| } | |
| .task-item { | |
| break-inside: avoid; | |
| margin-bottom: 1rem; | |
| } | |
| body { | |
| background: white; | |
| } | |
| } | |
| @media (prefers-color-scheme: dark) { | |
| .dark-mode { | |
| background-color: #1f2937; | |
| color: #f9fafb; | |
| } | |
| .dark-mode .card, | |
| .dark-mode .modal { | |
| background-color: #374151; | |
| border-color: #4b5563; | |
| } | |
| .dark-mode .form-input, | |
| .dark-mode .form-select, | |
| .dark-mode .form-textarea { | |
| background-color: #4b5563; | |
| border-color: #6b7280; | |
| color: #f9fafb; | |
| } | |
| } | |
| .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; | |
| } | |
| .truncate { | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .pointer-events-none { | |
| pointer-events: none; | |
| } | |
| .select-none { | |
| user-select: none; | |
| } | |
| .animate-pulse { | |
| animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: .5; | |
| } | |
| } | |
| .animate-bounce { | |
| animation: bounce 1s infinite; | |
| } | |
| @keyframes bounce { | |
| 0%, 100% { | |
| transform: translateY(-25%); | |
| animation-timing-function: cubic-bezier(0.8, 0, 1, 1); | |
| } | |
| 50% { | |
| transform: none; | |
| animation-timing-function: cubic-bezier(0, 0, 0.2, 1); | |
| } | |
| } | |
| @media (prefers-contrast: high) { | |
| .btn { | |
| border: 2px solid currentColor; | |
| } | |
| .form-input, | |
| .form-select, | |
| .form-textarea { | |
| border: 2px solid currentColor; | |
| } | |
| .task-item { | |
| border: 2px solid currentColor; | |
| } | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| *, | |
| *::before, | |
| *::after { | |
| animation-duration: 0.01ms !important; | |
| animation-iteration-count: 1 !important; | |
| transition-duration: 0.01ms !important; | |
| scroll-behavior: auto !important; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment