diff --git a/fzjgact/huodong/__pycache__/models.cpython-311.pyc b/fzjgact/huodong/__pycache__/models.cpython-311.pyc index 83e022f..a949681 100644 Binary files a/fzjgact/huodong/__pycache__/models.cpython-311.pyc and b/fzjgact/huodong/__pycache__/models.cpython-311.pyc differ diff --git a/fzjgact/huodong/static/huodong/input.css b/fzjgact/huodong/static/huodong/input.css index bd6213e..23d4f37 100644 --- a/fzjgact/huodong/static/huodong/input.css +++ b/fzjgact/huodong/static/huodong/input.css @@ -1,3 +1,37 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; \ No newline at end of file +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer components { + .card-gradient { + @apply bg-gradient-to-br from-white via-blue-50/30 to-blue-100/50; + } + + .card-gradient-early { + @apply bg-gradient-to-br from-emerald-50 via-white to-teal-100/50; + } + + .card-gradient-latest { + @apply bg-gradient-to-br from-amber-50 via-white to-orange-100/50; + } + + .table-header-gradient { + @apply bg-gradient-to-r from-blue-600 via-blue-700 to-indigo-700; + } + + .hover-lift { + @apply transition-all duration-300 hover:-translate-y-1 hover:shadow-xl; + } + + .timeline-dot { + @apply absolute top-1/2 w-5 h-5 rounded-full transform -translate-y-1/2 border-4 border-white shadow-lg; + } + + .glass-effect { + @apply backdrop-blur-sm bg-white/80; + } + + .section-divider { + @apply h-1 my-8 rounded-full bg-gradient-to-r from-transparent via-blue-400 to-transparent; + } +} \ No newline at end of file diff --git a/fzjgact/huodong/static/huodong/output.css b/fzjgact/huodong/static/huodong/output.css index 7fe32b9..ca607a7 100644 --- a/fzjgact/huodong/static/huodong/output.css +++ b/fzjgact/huodong/static/huodong/output.css @@ -612,6 +612,97 @@ video { } } +.card-gradient { + background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); + --tw-gradient-from: #fff var(--tw-gradient-from-position); + --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); + --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), rgb(239 246 255 / 0.3) var(--tw-gradient-via-position), var(--tw-gradient-to); + --tw-gradient-to: rgb(219 234 254 / 0.5) var(--tw-gradient-to-position); +} + +.card-gradient-early { + background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); + --tw-gradient-from: #ecfdf5 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); + --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to); + --tw-gradient-to: rgb(204 251 241 / 0.5) var(--tw-gradient-to-position); +} + +.card-gradient-latest { + background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); + --tw-gradient-from: #fffbeb var(--tw-gradient-from-position); + --tw-gradient-to: rgb(255 251 235 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); + --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to); + --tw-gradient-to: rgb(255 237 213 / 0.5) var(--tw-gradient-to-position); +} + +.table-header-gradient { + background-image: linear-gradient(to right, var(--tw-gradient-stops)); + --tw-gradient-from: #2563eb var(--tw-gradient-from-position); + --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); + --tw-gradient-to: rgb(29 78 216 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #1d4ed8 var(--tw-gradient-via-position), var(--tw-gradient-to); + --tw-gradient-to: #4338ca var(--tw-gradient-to-position); +} + +.hover-lift { + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 300ms; +} + +.hover-lift:hover { + --tw-translate-y: -0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.timeline-dot { + position: absolute; + top: 50%; + height: 1.25rem; + width: 1.25rem; + --tw-translate-y: -50%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + border-radius: 9999px; + border-width: 4px; + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity)); + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.glass-effect { + background-color: rgb(255 255 255 / 0.8); + --tw-backdrop-blur: blur(4px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); +} + +.section-divider { + margin-top: 2rem; + margin-bottom: 2rem; + height: 0.25rem; + border-radius: 9999px; + background-image: linear-gradient(to right, var(--tw-gradient-stops)); + --tw-gradient-from: transparent var(--tw-gradient-from-position); + --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); + --tw-gradient-to: rgb(96 165 250 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #60a5fa var(--tw-gradient-via-position), var(--tw-gradient-to); + --tw-gradient-to: transparent var(--tw-gradient-to-position); +} + .visible { visibility: visible; } @@ -688,6 +779,14 @@ video { top: 1rem; } +.top-3 { + top: 0.75rem; +} + +.left-4 { + left: 1rem; +} + .z-10 { z-index: 10; } @@ -709,6 +808,11 @@ video { margin-right: 0.25rem; } +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} + .mx-4 { margin-left: 1rem; margin-right: 1rem; @@ -724,11 +828,6 @@ video { margin-bottom: 2rem; } -.mx-2 { - margin-left: 0.5rem; - margin-right: 0.5rem; -} - .mb-1 { margin-bottom: 0.25rem; } @@ -753,10 +852,18 @@ video { margin-bottom: 2rem; } +.ml-1 { + margin-left: 0.25rem; +} + .ml-2 { margin-left: 0.5rem; } +.ml-auto { + margin-left: auto; +} + .mr-1 { margin-right: 0.25rem; } @@ -765,6 +872,14 @@ video { margin-right: 0.375rem; } +.mr-2 { + margin-right: 0.5rem; +} + +.mr-3 { + margin-right: 0.75rem; +} + .mt-1 { margin-top: 0.25rem; } @@ -781,6 +896,32 @@ video { margin-top: 1rem; } +.mt-auto { + margin-top: auto; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.line-clamp-2 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.line-clamp-3 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; +} + .block { display: block; } @@ -813,8 +954,20 @@ video { height: 0px; } -.h-0\.5 { - height: 0.125rem; +.h-1 { + height: 0.25rem; +} + +.h-1\.5 { + height: 0.375rem; +} + +.h-10 { + height: 2.5rem; +} + +.h-12 { + height: 3rem; } .h-2 { @@ -829,6 +982,10 @@ video { height: 0.75rem; } +.h-3\.5 { + height: 0.875rem; +} + .h-4 { height: 1rem; } @@ -837,10 +994,18 @@ video { height: 12rem; } +.h-5 { + height: 1.25rem; +} + .h-6 { height: 1.5rem; } +.h-8 { + height: 2rem; +} + .h-\[100px\] { height: 100px; } @@ -857,6 +1022,26 @@ video { height: 1px; } +.h-16 { + height: 4rem; +} + +.h-\[180px\] { + height: 180px; +} + +.h-24 { + height: 6rem; +} + +.h-\[80px\] { + height: 80px; +} + +.max-h-32 { + max-height: 8rem; +} + .max-h-60 { max-height: 15rem; } @@ -877,6 +1062,14 @@ video { width: 33.333333%; } +.w-10 { + width: 2.5rem; +} + +.w-12 { + width: 3rem; +} + .w-2 { width: 0.5rem; } @@ -889,6 +1082,10 @@ video { width: 0.75rem; } +.w-3\.5 { + width: 0.875rem; +} + .w-4 { width: 1rem; } @@ -897,12 +1094,20 @@ video { width: 12rem; } +.w-5 { + width: 1.25rem; +} + .w-6 { width: 1.5rem; } -.w-\[calc\(50\%-2rem\)\] { - width: calc(50% - 2rem); +.w-8 { + width: 2rem; +} + +.w-\[calc\(50\%-2\.5rem\)\] { + width: calc(50% - 2.5rem); } .w-auto { @@ -913,6 +1118,22 @@ video { width: 100%; } +.w-16 { + width: 4rem; +} + +.min-w-0 { + min-width: 0px; +} + +.min-w-\[2\.5rem\] { + min-width: 2.5rem; +} + +.min-w-\[2rem\] { + min-width: 2rem; +} + .min-w-full { min-width: 100%; } @@ -925,6 +1146,10 @@ video { max-width: 56rem; } +.max-w-5xl { + max-width: 64rem; +} + .max-w-\[90\%\] { max-width: 90%; } @@ -937,6 +1162,14 @@ video { max-width: 28rem; } +.max-w-6xl { + max-width: 72rem; +} + +.max-w-7xl { + max-width: 80rem; +} + .flex-1 { flex: 1 1 0%; } @@ -945,6 +1178,14 @@ video { flex: none; } +.flex-shrink-0 { + flex-shrink: 0; +} + +.flex-shrink { + flex-shrink: 1; +} + .flex-grow { flex-grow: 1; } @@ -953,6 +1194,11 @@ video { border-collapse: collapse; } +.-translate-x-1\/2 { + --tw-translate-x: -50%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + .-translate-y-1 { --tw-translate-y: -0.25rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); @@ -963,11 +1209,32 @@ video { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } +.translate-x-1\/2 { + --tw-translate-x: 50%; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.-translate-x-1 { + --tw-translate-x: -0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.translate-x-1 { + --tw-translate-x: 0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + .rotate-180 { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } +.scale-105 { + --tw-scale-x: 1.05; + --tw-scale-y: 1.05; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + .transform { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } @@ -1012,6 +1279,10 @@ video { flex-wrap: nowrap; } +.items-start { + align-items: flex-start; +} + .items-end { align-items: flex-end; } @@ -1032,10 +1303,18 @@ video { justify-content: space-between; } +.gap-1 { + gap: 0.25rem; +} + .gap-2 { gap: 0.5rem; } +.gap-3 { + gap: 0.75rem; +} + .gap-4 { gap: 1rem; } @@ -1044,16 +1323,10 @@ video { gap: 1.5rem; } -.space-y-3 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); -} - -.space-y-8 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(2rem * var(--tw-space-y-reverse)); +.space-x-3 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.75rem * var(--tw-space-x-reverse)); + margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); } .space-y-2 > :not([hidden]) ~ :not([hidden]) { @@ -1062,12 +1335,41 @@ video { margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); } +.space-y-3 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); +} + +.space-y-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1rem * var(--tw-space-y-reverse)); +} + +.space-y-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2rem * var(--tw-space-y-reverse)); +} + +.space-y-1 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); +} + .divide-y > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); } +.divide-gray-100 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(243 244 246 / var(--tw-divide-opacity)); +} + .divide-gray-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(229 231 235 / var(--tw-divide-opacity)); @@ -1102,6 +1404,10 @@ video { border-radius: 0.25rem; } +.rounded-2xl { + border-radius: 1rem; +} + .rounded-full { border-radius: 9999px; } @@ -1136,6 +1442,10 @@ video { border-width: 0px; } +.border-2 { + border-width: 2px; +} + .border-4 { border-width: 4px; } @@ -1144,6 +1454,10 @@ video { border-bottom-width: 1px; } +.border-b-2 { + border-bottom-width: 2px; +} + .border-l-0 { border-left-width: 0px; } @@ -1160,20 +1474,57 @@ video { border-top-width: 1px; } +.border-t-2 { + border-top-width: 2px; +} + +.border-l { + border-left-width: 1px; +} + +.border-r { + border-right-width: 1px; +} + .border-solid { border-style: solid; } +.border-amber-100 { + --tw-border-opacity: 1; + border-color: rgb(254 243 199 / var(--tw-border-opacity)); +} + +.border-amber-500 { + --tw-border-opacity: 1; + border-color: rgb(245 158 11 / var(--tw-border-opacity)); +} + .border-black { --tw-border-opacity: 1; border-color: rgb(0 0 0 / var(--tw-border-opacity)); } +.border-blue-100 { + --tw-border-opacity: 1; + border-color: rgb(219 234 254 / var(--tw-border-opacity)); +} + +.border-blue-200 { + --tw-border-opacity: 1; + border-color: rgb(191 219 254 / var(--tw-border-opacity)); +} + .border-blue-500 { --tw-border-opacity: 1; border-color: rgb(59 130 246 / var(--tw-border-opacity)); } +.border-emerald-100 { + --tw-border-opacity: 1; + border-color: rgb(209 250 229 / var(--tw-border-opacity)); +} + .border-gray-100 { --tw-border-opacity: 1; border-color: rgb(243 244 246 / var(--tw-border-opacity)); @@ -1194,14 +1545,84 @@ video { border-color: rgb(55 65 81 / var(--tw-border-opacity)); } +.border-gray-800 { + --tw-border-opacity: 1; + border-color: rgb(31 41 55 / var(--tw-border-opacity)); +} + +.border-indigo-100 { + --tw-border-opacity: 1; + border-color: rgb(224 231 255 / var(--tw-border-opacity)); +} + +.border-orange-100 { + --tw-border-opacity: 1; + border-color: rgb(255 237 213 / var(--tw-border-opacity)); +} + +.border-purple-100 { + --tw-border-opacity: 1; + border-color: rgb(243 232 255 / var(--tw-border-opacity)); +} + +.border-teal-100 { + --tw-border-opacity: 1; + border-color: rgb(204 251 241 / var(--tw-border-opacity)); +} + +.border-teal-200 { + --tw-border-opacity: 1; + border-color: rgb(153 246 228 / var(--tw-border-opacity)); +} + .border-white { --tw-border-opacity: 1; border-color: rgb(255 255 255 / var(--tw-border-opacity)); } -.border-gray-800 { +.border-cyan-100 { --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity)); + border-color: rgb(207 250 254 / var(--tw-border-opacity)); +} + +.border-purple-500 { + --tw-border-opacity: 1; + border-color: rgb(168 85 247 / var(--tw-border-opacity)); +} + +.border-indigo-200 { + --tw-border-opacity: 1; + border-color: rgb(199 210 254 / var(--tw-border-opacity)); +} + +.border-rose-100 { + --tw-border-opacity: 1; + border-color: rgb(255 228 230 / var(--tw-border-opacity)); +} + +.border-rose-200 { + --tw-border-opacity: 1; + border-color: rgb(254 205 211 / var(--tw-border-opacity)); +} + +.border-violet-100 { + --tw-border-opacity: 1; + border-color: rgb(237 233 254 / var(--tw-border-opacity)); +} + +.border-violet-200 { + --tw-border-opacity: 1; + border-color: rgb(221 214 254 / var(--tw-border-opacity)); +} + +.bg-amber-100 { + --tw-bg-opacity: 1; + background-color: rgb(254 243 199 / var(--tw-bg-opacity)); +} + +.bg-amber-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 251 235 / var(--tw-bg-opacity)); } .bg-black { @@ -1229,6 +1650,26 @@ video { background-color: rgb(59 130 246 / var(--tw-bg-opacity)); } +.bg-blue-600 { + --tw-bg-opacity: 1; + background-color: rgb(37 99 235 / var(--tw-bg-opacity)); +} + +.bg-blue-900 { + --tw-bg-opacity: 1; + background-color: rgb(30 58 138 / var(--tw-bg-opacity)); +} + +.bg-emerald-100 { + --tw-bg-opacity: 1; + background-color: rgb(209 250 229 / var(--tw-bg-opacity)); +} + +.bg-emerald-50 { + --tw-bg-opacity: 1; + background-color: rgb(236 253 245 / var(--tw-bg-opacity)); +} + .bg-gray-100 { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); @@ -1244,6 +1685,11 @@ video { background-color: rgb(209 213 219 / var(--tw-bg-opacity)); } +.bg-gray-400 { + --tw-bg-opacity: 1; + background-color: rgb(156 163 175 / var(--tw-bg-opacity)); +} + .bg-gray-50 { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); @@ -1259,6 +1705,61 @@ video { background-color: rgb(31 41 55 / var(--tw-bg-opacity)); } +.bg-gray-900 { + --tw-bg-opacity: 1; + background-color: rgb(17 24 39 / var(--tw-bg-opacity)); +} + +.bg-green-100 { + --tw-bg-opacity: 1; + background-color: rgb(220 252 231 / var(--tw-bg-opacity)); +} + +.bg-green-50 { + --tw-bg-opacity: 1; + background-color: rgb(240 253 244 / var(--tw-bg-opacity)); +} + +.bg-green-500 { + --tw-bg-opacity: 1; + background-color: rgb(34 197 94 / var(--tw-bg-opacity)); +} + +.bg-indigo-500 { + --tw-bg-opacity: 1; + background-color: rgb(99 102 241 / var(--tw-bg-opacity)); +} + +.bg-indigo-600 { + --tw-bg-opacity: 1; + background-color: rgb(79 70 229 / var(--tw-bg-opacity)); +} + +.bg-orange-100 { + --tw-bg-opacity: 1; + background-color: rgb(255 237 213 / var(--tw-bg-opacity)); +} + +.bg-orange-500 { + --tw-bg-opacity: 1; + background-color: rgb(249 115 22 / var(--tw-bg-opacity)); +} + +.bg-purple-50 { + --tw-bg-opacity: 1; + background-color: rgb(250 245 255 / var(--tw-bg-opacity)); +} + +.bg-purple-600 { + --tw-bg-opacity: 1; + background-color: rgb(147 51 234 / var(--tw-bg-opacity)); +} + +.bg-red-100 { + --tw-bg-opacity: 1; + background-color: rgb(254 226 226 / var(--tw-bg-opacity)); +} + .bg-red-500 { --tw-bg-opacity: 1; background-color: rgb(239 68 68 / var(--tw-bg-opacity)); @@ -1269,6 +1770,20 @@ video { background-color: rgb(185 28 28 / var(--tw-bg-opacity)); } +.bg-slate-50\/50 { + background-color: rgb(248 250 252 / 0.5); +} + +.bg-teal-100 { + --tw-bg-opacity: 1; + background-color: rgb(204 251 241 / var(--tw-bg-opacity)); +} + +.bg-teal-500 { + --tw-bg-opacity: 1; + background-color: rgb(20 184 166 / var(--tw-bg-opacity)); +} + .bg-transparent { background-color: transparent; } @@ -1278,14 +1793,71 @@ video { background-color: rgb(255 255 255 / var(--tw-bg-opacity)); } -.bg-blue-900 { - --tw-bg-opacity: 1; - background-color: rgb(30 58 138 / var(--tw-bg-opacity)); +.bg-white\/20 { + background-color: rgb(255 255 255 / 0.2); } -.bg-gray-900 { +.bg-orange-50 { --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); + background-color: rgb(255 247 237 / var(--tw-bg-opacity)); +} + +.bg-slate-50 { + --tw-bg-opacity: 1; + background-color: rgb(248 250 252 / var(--tw-bg-opacity)); +} + +.bg-teal-50 { + --tw-bg-opacity: 1; + background-color: rgb(240 253 250 / var(--tw-bg-opacity)); +} + +.bg-pink-100 { + --tw-bg-opacity: 1; + background-color: rgb(252 231 243 / var(--tw-bg-opacity)); +} + +.bg-purple-100 { + --tw-bg-opacity: 1; + background-color: rgb(243 232 255 / var(--tw-bg-opacity)); +} + +.bg-indigo-100 { + --tw-bg-opacity: 1; + background-color: rgb(224 231 255 / var(--tw-bg-opacity)); +} + +.bg-indigo-50 { + --tw-bg-opacity: 1; + background-color: rgb(238 242 255 / var(--tw-bg-opacity)); +} + +.bg-rose-100 { + --tw-bg-opacity: 1; + background-color: rgb(255 228 230 / var(--tw-bg-opacity)); +} + +.bg-rose-50\/30 { + background-color: rgb(255 241 242 / 0.3); +} + +.bg-rose-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 241 242 / var(--tw-bg-opacity)); +} + +.bg-violet-100 { + --tw-bg-opacity: 1; + background-color: rgb(237 233 254 / var(--tw-bg-opacity)); +} + +.bg-violet-50\/30 { + background-color: rgb(245 243 255 / 0.3); +} + +.bg-violet-50 { + --tw-bg-opacity: 1; + background-color: rgb(245 243 255 / var(--tw-bg-opacity)); } .bg-opacity-50 { @@ -1300,30 +1872,499 @@ video { --tw-bg-opacity: 0.8; } +.bg-gradient-to-br { + background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); +} + .bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); } +.from-amber-400 { + --tw-gradient-from: #fbbf24 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-amber-50 { + --tw-gradient-from: #fffbeb var(--tw-gradient-from-position); + --tw-gradient-to: rgb(255 251 235 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + .from-blue-50 { --tw-gradient-from: #eff6ff var(--tw-gradient-from-position); --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } +.from-blue-600 { + --tw-gradient-from: #2563eb var(--tw-gradient-from-position); + --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-emerald-400 { + --tw-gradient-from: #34d399 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(52 211 153 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-emerald-50 { + --tw-gradient-from: #ecfdf5 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-gray-700 { + --tw-gradient-from: #374151 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(55 65 81 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-indigo-50 { + --tw-gradient-from: #eef2ff var(--tw-gradient-from-position); + --tw-gradient-to: rgb(238 242 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-indigo-500 { + --tw-gradient-from: #6366f1 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-orange-500 { + --tw-gradient-from: #f97316 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-purple-400 { + --tw-gradient-from: #c084fc var(--tw-gradient-from-position); + --tw-gradient-to: rgb(192 132 252 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + .from-purple-50 { --tw-gradient-from: #faf5ff var(--tw-gradient-from-position); --tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } +.from-purple-600 { + --tw-gradient-from: #9333ea var(--tw-gradient-from-position); + --tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-red-400 { + --tw-gradient-from: #f87171 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(248 113 113 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-slate-50 { + --tw-gradient-from: #f8fafc var(--tw-gradient-from-position); + --tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-teal-400 { + --tw-gradient-from: #2dd4bf var(--tw-gradient-from-position); + --tw-gradient-to: rgb(45 212 191 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-teal-50 { + --tw-gradient-from: #f0fdfa var(--tw-gradient-from-position); + --tw-gradient-to: rgb(240 253 250 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-teal-500 { + --tw-gradient-from: #14b8a6 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(20 184 166 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-transparent { + --tw-gradient-from: transparent var(--tw-gradient-from-position); + --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-white { + --tw-gradient-from: #fff var(--tw-gradient-from-position); + --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-cyan-500 { + --tw-gradient-from: #06b6d4 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-emerald-500 { + --tw-gradient-from: #10b981 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-amber-500 { + --tw-gradient-from: #f59e0b var(--tw-gradient-from-position); + --tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-indigo-600 { + --tw-gradient-from: #4f46e5 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-red-500 { + --tw-gradient-from: #ef4444 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-teal-600 { + --tw-gradient-from: #0d9488 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(13 148 136 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-rose-50 { + --tw-gradient-from: #fff1f2 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(255 241 242 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-rose-600 { + --tw-gradient-from: #e11d48 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(225 29 72 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-cyan-600 { + --tw-gradient-from: #0891b2 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-gray-100 { + --tw-gradient-from: #f3f4f6 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(243 244 246 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-violet-50 { + --tw-gradient-from: #f5f3ff var(--tw-gradient-from-position); + --tw-gradient-to: rgb(245 243 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-violet-600 { + --tw-gradient-from: #7c3aed var(--tw-gradient-from-position); + --tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.from-emerald-600 { + --tw-gradient-from: #059669 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(5 150 105 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.via-blue-400 { + --tw-gradient-to: rgb(96 165 250 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #60a5fa var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-blue-50\/30 { + --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), rgb(239 246 255 / 0.3) var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-blue-500 { + --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #3b82f6 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-blue-700 { + --tw-gradient-to: rgb(29 78 216 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #1d4ed8 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-gray-300 { + --tw-gradient-to: rgb(209 213 219 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #d1d5db var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-indigo-400 { + --tw-gradient-to: rgb(129 140 248 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #818cf8 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-indigo-600 { + --tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #4f46e5 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-orange-400 { + --tw-gradient-to: rgb(251 146 60 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #fb923c var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-orange-600 { + --tw-gradient-to: rgb(234 88 12 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #ea580c var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-purple-400 { + --tw-gradient-to: rgb(192 132 252 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #c084fc var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-purple-700 { + --tw-gradient-to: rgb(126 34 206 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #7e22ce var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-teal-400 { + --tw-gradient-to: rgb(45 212 191 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #2dd4bf var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-teal-600 { + --tw-gradient-to: rgb(13 148 136 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #0d9488 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-white { + --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-blue-50 { + --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #eff6ff var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-cyan-400 { + --tw-gradient-to: rgb(34 211 238 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #22d3ee var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-cyan-600 { + --tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #0891b2 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-emerald-400 { + --tw-gradient-to: rgb(52 211 153 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #34d399 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-emerald-600 { + --tw-gradient-to: rgb(5 150 105 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #059669 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-amber-400 { + --tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #fbbf24 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-amber-600 { + --tw-gradient-to: rgb(217 119 6 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #d97706 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-indigo-500 { + --tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #6366f1 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-indigo-700 { + --tw-gradient-to: rgb(67 56 202 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #4338ca var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-teal-500 { + --tw-gradient-to: rgb(20 184 166 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #14b8a6 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-teal-700 { + --tw-gradient-to: rgb(15 118 110 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #0f766e var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-rose-400 { + --tw-gradient-to: rgb(251 113 133 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #fb7185 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-rose-500 { + --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #f43f5e var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-rose-700 { + --tw-gradient-to: rgb(190 18 60 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #be123c var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-cyan-500 { + --tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #06b6d4 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-cyan-700 { + --tw-gradient-to: rgb(14 116 144 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #0e7490 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-violet-400 { + --tw-gradient-to: rgb(167 139 250 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #a78bfa var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-violet-500 { + --tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #8b5cf6 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-violet-700 { + --tw-gradient-to: rgb(109 40 217 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #6d28d9 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-emerald-500 { + --tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #10b981 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.via-emerald-700 { + --tw-gradient-to: rgb(4 120 87 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), #047857 var(--tw-gradient-via-position), var(--tw-gradient-to); +} + +.to-amber-400 { + --tw-gradient-to: #fbbf24 var(--tw-gradient-to-position); +} + +.to-cyan-50 { + --tw-gradient-to: #ecfeff var(--tw-gradient-to-position); +} + +.to-cyan-600 { + --tw-gradient-to: #0891b2 var(--tw-gradient-to-position); +} + +.to-emerald-600 { + --tw-gradient-to: #059669 var(--tw-gradient-to-position); +} + +.to-gray-100 { + --tw-gradient-to: #f3f4f6 var(--tw-gradient-to-position); +} + +.to-gray-900 { + --tw-gradient-to: #111827 var(--tw-gradient-to-position); +} + .to-indigo-50 { --tw-gradient-to: #eef2ff var(--tw-gradient-to-position); } +.to-indigo-700 { + --tw-gradient-to: #4338ca var(--tw-gradient-to-position); +} + +.to-orange-500 { + --tw-gradient-to: #f97316 var(--tw-gradient-to-position); +} + .to-pink-50 { --tw-gradient-to: #fdf2f8 var(--tw-gradient-to-position); } +.to-purple-50 { + --tw-gradient-to: #faf5ff var(--tw-gradient-to-position); +} + +.to-purple-600 { + --tw-gradient-to: #9333ea var(--tw-gradient-to-position); +} + +.to-red-600 { + --tw-gradient-to: #dc2626 var(--tw-gradient-to-position); +} + +.to-teal-500 { + --tw-gradient-to: #14b8a6 var(--tw-gradient-to-position); +} + +.to-teal-600 { + --tw-gradient-to: #0d9488 var(--tw-gradient-to-position); +} + +.to-transparent { + --tw-gradient-to: transparent var(--tw-gradient-to-position); +} + +.to-blue-700 { + --tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position); +} + +.to-orange-600 { + --tw-gradient-to: #ea580c var(--tw-gradient-to-position); +} + +.to-purple-700 { + --tw-gradient-to: #7e22ce var(--tw-gradient-to-position); +} + +.to-cyan-700 { + --tw-gradient-to: #0e7490 var(--tw-gradient-to-position); +} + +.to-teal-700 { + --tw-gradient-to: #0f766e var(--tw-gradient-to-position); +} + +.to-pink-700 { + --tw-gradient-to: #be185d var(--tw-gradient-to-position); +} + +.to-rose-700 { + --tw-gradient-to: #be123c var(--tw-gradient-to-position); +} + +.to-blue-600 { + --tw-gradient-to: #2563eb var(--tw-gradient-to-position); +} + +.to-gray-200 { + --tw-gradient-to: #e5e7eb var(--tw-gradient-to-position); +} + +.to-violet-700 { + --tw-gradient-to: #6d28d9 var(--tw-gradient-to-position); +} + +.to-emerald-700 { + --tw-gradient-to: #047857 var(--tw-gradient-to-position); +} + +.to-teal-50 { + --tw-gradient-to: #f0fdfa var(--tw-gradient-to-position); +} + .object-cover { -o-object-fit: cover; object-fit: cover; @@ -1353,11 +2394,20 @@ video { padding: 2rem; } +.p-2\.5 { + padding: 0.625rem; +} + .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; } +.px-2\.5 { + padding-left: 0.625rem; + padding-right: 0.625rem; +} + .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; @@ -1373,11 +2423,26 @@ video { padding-right: 1.5rem; } +.py-0 { + padding-top: 0px; + padding-bottom: 0px; +} + +.py-0\.5 { + padding-top: 0.125rem; + padding-bottom: 0.125rem; +} + .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; } +.py-1\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; +} + .py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; @@ -1418,6 +2483,16 @@ video { padding-bottom: 2rem; } +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + .pl-4 { padding-left: 1rem; } @@ -1426,6 +2501,14 @@ video { padding-right: 2.5rem; } +.pt-3 { + padding-top: 0.75rem; +} + +.pl-12 { + padding-left: 3rem; +} + .text-left { text-align: left; } @@ -1510,6 +2593,10 @@ video { text-transform: uppercase; } +.normal-case { + text-transform: none; +} + .italic { font-style: italic; } @@ -1535,11 +2622,41 @@ video { letter-spacing: 0.05em; } +.text-amber-400 { + --tw-text-opacity: 1; + color: rgb(251 191 36 / var(--tw-text-opacity)); +} + +.text-amber-600 { + --tw-text-opacity: 1; + color: rgb(217 119 6 / var(--tw-text-opacity)); +} + +.text-amber-700 { + --tw-text-opacity: 1; + color: rgb(180 83 9 / var(--tw-text-opacity)); +} + +.text-black { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity)); +} + +.text-blue-200 { + --tw-text-opacity: 1; + color: rgb(191 219 254 / var(--tw-text-opacity)); +} + .text-blue-300 { --tw-text-opacity: 1; color: rgb(147 197 253 / var(--tw-text-opacity)); } +.text-blue-400 { + --tw-text-opacity: 1; + color: rgb(96 165 250 / var(--tw-text-opacity)); +} + .text-blue-500 { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity)); @@ -1565,6 +2682,26 @@ video { color: rgb(30 58 138 / var(--tw-text-opacity)); } +.text-emerald-600 { + --tw-text-opacity: 1; + color: rgb(5 150 105 / var(--tw-text-opacity)); +} + +.text-emerald-700 { + --tw-text-opacity: 1; + color: rgb(4 120 87 / var(--tw-text-opacity)); +} + +.text-gray-200 { + --tw-text-opacity: 1; + color: rgb(229 231 235 / var(--tw-text-opacity)); +} + +.text-gray-300 { + --tw-text-opacity: 1; + color: rgb(209 213 219 / var(--tw-text-opacity)); +} + .text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); @@ -1595,6 +2732,21 @@ video { color: rgb(17 24 39 / var(--tw-text-opacity)); } +.text-green-500 { + --tw-text-opacity: 1; + color: rgb(34 197 94 / var(--tw-text-opacity)); +} + +.text-green-700 { + --tw-text-opacity: 1; + color: rgb(21 128 61 / var(--tw-text-opacity)); +} + +.text-indigo-400 { + --tw-text-opacity: 1; + color: rgb(129 140 248 / var(--tw-text-opacity)); +} + .text-indigo-600 { --tw-text-opacity: 1; color: rgb(79 70 229 / var(--tw-text-opacity)); @@ -1605,6 +2757,16 @@ video { color: rgb(67 56 202 / var(--tw-text-opacity)); } +.text-indigo-800 { + --tw-text-opacity: 1; + color: rgb(55 48 163 / var(--tw-text-opacity)); +} + +.text-orange-700 { + --tw-text-opacity: 1; + color: rgb(194 65 12 / var(--tw-text-opacity)); +} + .text-purple-600 { --tw-text-opacity: 1; color: rgb(147 51 234 / var(--tw-text-opacity)); @@ -1615,11 +2777,36 @@ video { color: rgb(126 34 206 / var(--tw-text-opacity)); } +.text-red-500 { + --tw-text-opacity: 1; + color: rgb(239 68 68 / var(--tw-text-opacity)); +} + +.text-red-700 { + --tw-text-opacity: 1; + color: rgb(185 28 28 / var(--tw-text-opacity)); +} + .text-red-900 { --tw-text-opacity: 1; color: rgb(127 29 29 / var(--tw-text-opacity)); } +.text-teal-600 { + --tw-text-opacity: 1; + color: rgb(13 148 136 / var(--tw-text-opacity)); +} + +.text-teal-700 { + --tw-text-opacity: 1; + color: rgb(15 118 110 / var(--tw-text-opacity)); +} + +.text-teal-800 { + --tw-text-opacity: 1; + color: rgb(17 94 89 / var(--tw-text-opacity)); +} + .text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); @@ -1630,29 +2817,74 @@ video { color: rgb(234 179 8 / var(--tw-text-opacity)); } -.text-gray-300 { +.text-red-800 { --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); + color: rgb(153 27 27 / var(--tw-text-opacity)); } -.text-blue-200 { +.text-green-600 { --tw-text-opacity: 1; - color: rgb(191 219 254 / var(--tw-text-opacity)); + color: rgb(22 163 74 / var(--tw-text-opacity)); } -.text-blue-400 { +.text-teal-500 { --tw-text-opacity: 1; - color: rgb(96 165 250 / var(--tw-text-opacity)); + color: rgb(20 184 166 / var(--tw-text-opacity)); } -.text-gray-200 { +.text-orange-600 { --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); + color: rgb(234 88 12 / var(--tw-text-opacity)); } -.text-indigo-400 { +.text-pink-600 { --tw-text-opacity: 1; - color: rgb(129 140 248 / var(--tw-text-opacity)); + color: rgb(219 39 119 / var(--tw-text-opacity)); +} + +.text-purple-800 { + --tw-text-opacity: 1; + color: rgb(107 33 168 / var(--tw-text-opacity)); +} + +.text-amber-800 { + --tw-text-opacity: 1; + color: rgb(146 64 14 / var(--tw-text-opacity)); +} + +.text-indigo-500 { + --tw-text-opacity: 1; + color: rgb(99 102 241 / var(--tw-text-opacity)); +} + +.text-rose-500 { + --tw-text-opacity: 1; + color: rgb(244 63 94 / var(--tw-text-opacity)); +} + +.text-rose-600 { + --tw-text-opacity: 1; + color: rgb(225 29 72 / var(--tw-text-opacity)); +} + +.text-rose-700 { + --tw-text-opacity: 1; + color: rgb(190 18 60 / var(--tw-text-opacity)); +} + +.text-cyan-500 { + --tw-text-opacity: 1; + color: rgb(6 182 212 / var(--tw-text-opacity)); +} + +.text-violet-500 { + --tw-text-opacity: 1; + color: rgb(139 92 246 / var(--tw-text-opacity)); +} + +.text-violet-700 { + --tw-text-opacity: 1; + color: rgb(109 40 217 / var(--tw-text-opacity)); } .underline { @@ -1692,10 +2924,26 @@ video { outline-style: solid; } +.blur { + --tw-blur: blur(8px); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + .filter { filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); } +.backdrop-blur-sm { + --tw-backdrop-blur: blur(4px); + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); +} + +.backdrop-filter { + -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); + backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); +} + .transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; @@ -1728,6 +2976,10 @@ video { transition-duration: 150ms; } +.duration-150 { + transition-duration: 150ms; +} + .duration-200 { transition-duration: 200ms; } @@ -1736,6 +2988,41 @@ video { transition-duration: 300ms; } +.duration-500 { + transition-duration: 500ms; +} + +.ease-in-out { + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} + +.hover\:-translate-y-1:hover { + --tw-translate-y: -0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.hover\:-translate-y-2:hover { + --tw-translate-y: -0.5rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.hover\:scale-105:hover { + --tw-scale-x: 1.05; + --tw-scale-y: 1.05; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.hover\:scale-110:hover { + --tw-scale-x: 1.1; + --tw-scale-y: 1.1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.hover\:bg-blue-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(239 246 255 / var(--tw-bg-opacity)); +} + .hover\:bg-blue-600:hover { --tw-bg-opacity: 1; background-color: rgb(37 99 235 / var(--tw-bg-opacity)); @@ -1761,6 +3048,178 @@ video { background-color: rgb(249 250 251 / var(--tw-bg-opacity)); } +.hover\:bg-orange-50\/50:hover { + background-color: rgb(255 247 237 / 0.5); +} + +.hover\:bg-orange-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(234 88 12 / var(--tw-bg-opacity)); +} + +.hover\:bg-purple-50\/50:hover { + background-color: rgb(250 245 255 / 0.5); +} + +.hover\:bg-purple-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(107 33 168 / var(--tw-bg-opacity)); +} + +.hover\:bg-red-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(220 38 38 / var(--tw-bg-opacity)); +} + +.hover\:bg-teal-50\/50:hover { + background-color: rgb(240 253 250 / 0.5); +} + +.hover\:bg-teal-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(13 148 136 / var(--tw-bg-opacity)); +} + +.hover\:bg-blue-50\/50:hover { + background-color: rgb(239 246 255 / 0.5); +} + +.hover\:bg-amber-50\/50:hover { + background-color: rgb(255 251 235 / 0.5); +} + +.hover\:bg-indigo-50\/50:hover { + background-color: rgb(238 242 255 / 0.5); +} + +.hover\:bg-indigo-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(79 70 229 / var(--tw-bg-opacity)); +} + +.hover\:bg-teal-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(240 253 250 / var(--tw-bg-opacity)); +} + +.hover\:bg-white:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.hover\:bg-rose-50\/50:hover { + background-color: rgb(255 241 242 / 0.5); +} + +.hover\:bg-cyan-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(236 254 255 / var(--tw-bg-opacity)); +} + +.hover\:bg-violet-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(245 243 255 / var(--tw-bg-opacity)); +} + +.hover\:bg-violet-50\/50:hover { + background-color: rgb(245 243 255 / 0.5); +} + +.hover\:bg-emerald-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(236 253 245 / var(--tw-bg-opacity)); +} + +.hover\:from-gray-800:hover { + --tw-gradient-from: #1f2937 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:from-blue-700:hover { + --tw-gradient-from: #1d4ed8 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(29 78 216 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:from-purple-700:hover { + --tw-gradient-from: #7e22ce var(--tw-gradient-from-position); + --tw-gradient-to: rgb(126 34 206 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:from-red-600:hover { + --tw-gradient-from: #dc2626 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(220 38 38 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:from-teal-700:hover { + --tw-gradient-from: #0f766e var(--tw-gradient-from-position); + --tw-gradient-to: rgb(15 118 110 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:from-rose-700:hover { + --tw-gradient-from: #be123c var(--tw-gradient-from-position); + --tw-gradient-to: rgb(190 18 60 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:from-cyan-700:hover { + --tw-gradient-from: #0e7490 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(14 116 144 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:from-violet-700:hover { + --tw-gradient-from: #6d28d9 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(109 40 217 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:from-emerald-700:hover { + --tw-gradient-from: #047857 var(--tw-gradient-from-position); + --tw-gradient-to: rgb(4 120 87 / 0) var(--tw-gradient-to-position); + --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); +} + +.hover\:to-black:hover { + --tw-gradient-to: #000 var(--tw-gradient-to-position); +} + +.hover\:to-blue-800:hover { + --tw-gradient-to: #1e40af var(--tw-gradient-to-position); +} + +.hover\:to-purple-800:hover { + --tw-gradient-to: #6b21a8 var(--tw-gradient-to-position); +} + +.hover\:to-red-700:hover { + --tw-gradient-to: #b91c1c var(--tw-gradient-to-position); +} + +.hover\:to-teal-800:hover { + --tw-gradient-to: #115e59 var(--tw-gradient-to-position); +} + +.hover\:to-rose-800:hover { + --tw-gradient-to: #9f1239 var(--tw-gradient-to-position); +} + +.hover\:to-cyan-800:hover { + --tw-gradient-to: #155e75 var(--tw-gradient-to-position); +} + +.hover\:to-violet-800:hover { + --tw-gradient-to: #5b21b6 var(--tw-gradient-to-position); +} + +.hover\:to-emerald-800:hover { + --tw-gradient-to: #065f46 var(--tw-gradient-to-position); +} + .hover\:text-blue-800:hover { --tw-text-opacity: 1; color: rgb(30 64 175 / var(--tw-text-opacity)); @@ -1776,12 +3235,34 @@ video { color: rgb(255 255 255 / var(--tw-text-opacity)); } +.hover\:text-cyan-600:hover { + --tw-text-opacity: 1; + color: rgb(8 145 178 / var(--tw-text-opacity)); +} + +.hover\:text-emerald-800:hover { + --tw-text-opacity: 1; + color: rgb(6 95 70 / var(--tw-text-opacity)); +} + +.hover\:shadow-2xl:hover { + --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); + --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + .hover\:shadow-lg:hover { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } +.hover\:shadow-md:hover { + --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + .hover\:shadow-xl:hover { --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); @@ -1793,6 +3274,31 @@ video { border-color: rgb(59 130 246 / var(--tw-border-opacity)); } +.focus\:border-teal-500:focus { + --tw-border-opacity: 1; + border-color: rgb(20 184 166 / var(--tw-border-opacity)); +} + +.focus\:border-rose-500:focus { + --tw-border-opacity: 1; + border-color: rgb(244 63 94 / var(--tw-border-opacity)); +} + +.focus\:border-cyan-500:focus { + --tw-border-opacity: 1; + border-color: rgb(6 182 212 / var(--tw-border-opacity)); +} + +.focus\:border-violet-500:focus { + --tw-border-opacity: 1; + border-color: rgb(139 92 246 / var(--tw-border-opacity)); +} + +.focus\:border-emerald-500:focus { + --tw-border-opacity: 1; + border-color: rgb(16 185 129 / var(--tw-border-opacity)); +} + .focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; @@ -1820,6 +3326,78 @@ video { --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity)); } +.focus\:ring-teal-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(94 234 212 / var(--tw-ring-opacity)); +} + +.focus\:ring-teal-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity)); +} + +.focus\:ring-rose-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(253 164 175 / var(--tw-ring-opacity)); +} + +.focus\:ring-cyan-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity)); +} + +.focus\:ring-violet-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity)); +} + +.focus\:ring-emerald-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity)); +} + +.group:hover .group-hover\:translate-x-1 { + --tw-translate-x: 0.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:scale-105 { + --tw-scale-x: 1.05; + --tw-scale-y: 1.05; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.group:hover .group-hover\:text-amber-700 { + --tw-text-opacity: 1; + color: rgb(180 83 9 / var(--tw-text-opacity)); +} + +.group:hover .group-hover\:text-emerald-700 { + --tw-text-opacity: 1; + color: rgb(4 120 87 / var(--tw-text-opacity)); +} + +.group:hover .group-hover\:text-purple-700 { + --tw-text-opacity: 1; + color: rgb(126 34 206 / var(--tw-text-opacity)); +} + +.group:hover .group-hover\:text-red-800 { + --tw-text-opacity: 1; + color: rgb(153 27 27 / var(--tw-text-opacity)); +} + +.group:hover .group-hover\:text-teal-700 { + --tw-text-opacity: 1; + color: rgb(15 118 110 / var(--tw-text-opacity)); +} + +.group:hover .group-hover\:shadow-md { + --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + @media (min-width: 640px) { .sm\:flex { display: flex; @@ -1832,6 +3410,14 @@ video { .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } + + .sm\:flex-row { + flex-direction: row; + } + + .sm\:items-start { + align-items: flex-start; + } } @media (min-width: 768px) { @@ -1839,6 +3425,10 @@ video { height: 150px; } + .md\:w-1\/2 { + width: 50%; + } + .md\:w-1\/3 { width: 33.333333%; } @@ -1878,6 +3468,12 @@ video { } } +@media (min-width: 1280px) { + .xl\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } +} + @media (prefers-color-scheme: dark) { .dark\:divide-gray-700 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; @@ -1889,11 +3485,6 @@ video { border-color: rgb(55 65 81 / var(--tw-border-opacity)); } - .dark\:border-gray-800 { - --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity)); - } - .dark\:bg-gray-700 { --tw-bg-opacity: 1; background-color: rgb(55 65 81 / var(--tw-bg-opacity)); @@ -1909,16 +3500,6 @@ video { background-color: rgb(185 28 28 / var(--tw-bg-opacity)); } - .dark\:bg-blue-900 { - --tw-bg-opacity: 1; - background-color: rgb(30 58 138 / var(--tw-bg-opacity)); - } - - .dark\:bg-gray-900 { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); - } - .dark\:text-blue-300 { --tw-text-opacity: 1; color: rgb(147 197 253 / var(--tw-text-opacity)); @@ -1934,41 +3515,6 @@ video { color: rgb(255 255 255 / var(--tw-text-opacity)); } - .dark\:text-blue-200 { - --tw-text-opacity: 1; - color: rgb(191 219 254 / var(--tw-text-opacity)); - } - - .dark\:text-blue-400 { - --tw-text-opacity: 1; - color: rgb(96 165 250 / var(--tw-text-opacity)); - } - - .dark\:text-gray-200 { - --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); - } - - .dark\:text-gray-300 { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); - } - - .dark\:text-gray-500 { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); - } - - .dark\:text-gray-600 { - --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity)); - } - - .dark\:text-indigo-400 { - --tw-text-opacity: 1; - color: rgb(129 140 248 / var(--tw-text-opacity)); - } - .dark\:hover\:bg-gray-700:hover { --tw-bg-opacity: 1; background-color: rgb(55 65 81 / var(--tw-bg-opacity)); diff --git a/fzjgact/huodong/templates/branch_all.html b/fzjgact/huodong/templates/branch_all.html index 63de525..1973787 100644 --- a/fzjgact/huodong/templates/branch_all.html +++ b/fzjgact/huodong/templates/branch_all.html @@ -2,304 +2,479 @@ {% load custom_filters %} {% block content %} -
-
- -
+ +
+
+ +
-
- -
+
+ +
+
+
-
-
最初活动
-

{{ earliest_act.branch }}{{ earliest_act.name }}

-

- {{ earliest_act.description }} -

-
-
- - +
+ + - {{ earliest_act.start_time|format_chinese_full_date }} + 最初活动
-
-
- - -
- - - -
- - -
-
-
-
最后活动
-

{{ latest_act.branch }}{{ latest_act.name }}

-

- {{ latest_act.description }} -

-
-
- +

{{ earliest_act.branch }}{{ earliest_act.name }}

+

+ {{ earliest_act.description }} +

+
+ - + - {{ latest_act.start_time|format_chinese_full_date }} + {{ earliest_act.start_time|format_chinese_full_date }} +
- -
-
+ +
+ + + +
+ + +
+
+
+
+
+ + + + + + 最后活动 +
+

{{ latest_act.branch }}{{ latest_act.name }}

+

+ {{ latest_act.description }} +

+
+ + + + + {{ latest_act.start_time|format_chinese_full_date }} + +
+
+
+
+ + +
+
+
- - - - - - - - - - {% for item in branches %} - - - - - - - - {% endfor %} - - - - - - - -
- 分支机构名称 -
- 新建-搬迁-装修 -
- 活动的总数量 - - 活动进行中的数量 -
- - {{ item.branch.name }} - - - {{ item.total_count }} - - {{ item.onging_count }} -
- 总计: {{ total_branch_count }} - - {{ total_activities }} - - {{ ongoing_activities_count }} -
- -
- - - -
- -
    - {% for event in ongoing_events %} -
  1. -
    -
    - - - - - 开始时间 {{ event.start_time| date:"Y年m月d日" }} - -
    - - {% if not event.end_time %} - - {{ event.name }}-未完成 + +
    +
    +
    +

    + + + + 分支机构活动统计 +

    +
    +
    + + + + + + + + + + {% for item in branches %} + + + + + + {% endfor %} + + + + + + + +
    +
    + + + + 分支机构名称 + (新建-搬迁-装修) +
    +
    +
    + + + + 活动总数 +
    +
    +
    + + + + 进行中 +
    +
    + + {{ item.branch.name }} + + + + {{ item.total_count }} - {% else %} - - {{ event.name }} + + + {{ item.onging_count }} - {% endif %} - - -
    - {{ event.description }} -
    -
    - {% with branch_count=event.branches.count %} - {% if branch_count == all_branch_count %} - 涉及分支机构:全辖分支机构 - {% elif branch_count == 1 %} - 涉及分支机构:{{ event.branches.first.name }} - {% elif branch_count > 1 %} - 涉及分支机构:{{ event.branches.all.0.name }}、{{ event.branches.all.1.name }}等{{ branch_count }}个营业部 - {% else %} - 涉及分支机构:暂无 - {% endif %} - {% endwith %} -
    - - - - - 结束时间 {{ event.end_time| date:"Y年m月d日" }} - - - - - - {% endfor %} - +
    +
    + + + + 总计 ({{ total_branch_count }} 个分支机构) +
    +
    + + {{ total_activities }} + + + + {{ ongoing_activities_count }} + +
    +
    +
    -
    + +
    - -
    - -
      - {% for huodong in ongoing_activities %} -
    1. -
      -
      - - - - - 开始时间 {{ huodong.start_time| date:"Y年m月d日" }} - -
      - - {% if not huodong.end_time %} - - - {{ huodong.branch }} - - {{ huodong.name }}-未完成 + +
      +
      +
      +

      + + + + 事件列表 + {{ ongoing_events|length }} 个事件 +

      +
      +
      + {% for event in ongoing_events %} +
      +
      + +
      +
      + + + +
      +
      + +
      +
      +

      + {{ event.name }}{% if not event.end_time %}进行中{% endif %} +

      +
      +

      {{ event.description }}

      +
      + + + + + {{ event.start_time|date:"Y年m月d日" }} + + {% if event.end_time %} + + + + + {{ event.end_time|date:"Y年m月d日" }} {% endif %} - -
      -
      - {{ huodong.description }} +
      +
      + {% with branch_count=event.branches.count %} + {% if branch_count == all_branch_count %} + + + + + 涉及:全辖分支机构 + + {% elif branch_count == 1 %} + + + + + 涉及:{{ event.branches.first.name }} + + {% elif branch_count > 1 %} + + + + + 涉及:{{ event.branches.all.0.name }}、{{ event.branches.all.1.name }}等{{ branch_count }}个营业部 + + {% else %} + + 涉及:暂无 + + {% endif %} + {% endwith %} +
      -
    2. - {% endfor %} -
    + {% empty %} +
    + + + + 暂无事件 +
    + {% endfor %} +
    +
    -
    + +
    + +
    +
    +
    +

    + + + + 进行中的活动 + {{ ongoing_activities|length }} 个活动 +

    +
    +
    + {% for huodong in ongoing_activities %} +
    +
    + +
    +
    + + + +
    +
    + +
    +
    + + {{ huodong.branch }} + +

    + {{ huodong.name }} +

    + 未完成 +
    +

    {{ huodong.description }}

    +
    + + + + + 开始时间:{{ huodong.start_time|date:"Y年m月d日" }} + +
    +
    +
    +
    + {% empty %} +
    + + + + 暂无进行中的活动 +
    + {% endfor %} +
    +
    +
    + + +
    + + {% for scope, scope_data in grouped_activities.items %} -
    - -
      - {% for activity in scope_data.activities %} -
    1. -
      -
      - - - - - 开始时间 {{ activity.start_time| date:"Y年m月d日" }} - -
      - +
      +
      +
      +

      + + + + 今年的{{ scope }} + {{ scope_data.branch_count }} 个分支机构 +

      +
      +
      + {% for activity in scope_data.activities %} +
      +
      + +
      +
      {% if not activity.end_time %} - - - {{ activity.branch }} - - {{ activity.name }}-未完成 - + + + {% else %} - - - {{ activity.branch }} - + + + + {% endif %} +
      +
      + +
      +
      + + {{ activity.branch }} + +

      {{ activity.name }} +

      + {% if not activity.end_time %} + 未完成 + {% endif %} +
      +

      {{ activity.description }}

      +
      + + + + + {{ activity.start_time|date:"Y年m月d日" }} + + {% if activity.end_time %} + + + + + {{ activity.end_time|date:"Y年m月d日" }} {% endif %} - +
      -
      - {{ activity.description }} -
      - - - 结束时间 {{ activity.end_time| date:"Y年m月d日" }} -
      -
    2. - {% endfor %} -
    + {% empty %} +
    + + + + 暂无活动 +
    + {% endfor %} +
    +
-
+ + +
{% endfor %} - -
+ +
+
+

+ + + + 今年统计 +

+
+ {% for scope, scope_data in grouped_activities.items %} + + + {{ scope }} + {{ scope_data.branch_count }}个 + + {% endfor %} +
+
+
+ + +
-{% for year in historical_years %} -{% with year_data=historical_grouped_activities|get_item:year %} -{% if year_data %} - -
-{% endif %} -{% endwith %} -{% endfor %} +
+
+
+

+ + + + 历年活动统计 +

+
+
+ {% for year in historical_years %} + {% with year_data=historical_grouped_activities|get_item:year %} + {% if year_data %} +
+

+ {{ year }} + 年统计 +

+
+ {% for scope, scope_data in year_data.items %} + + + {{ scope }} + {{ scope_data.branch_count }}个 + + {% endfor %} +
+
+ {% endif %} + {% endwith %} + {% endfor %} +
+
+
{% endblock %} diff --git a/fzjgact/huodong/templates/branch_detail.html b/fzjgact/huodong/templates/branch_detail.html index 392e738..61a18b5 100644 --- a/fzjgact/huodong/templates/branch_detail.html +++ b/fzjgact/huodong/templates/branch_detail.html @@ -2,51 +2,73 @@ {% block content %} - -

- - - {{ branch.name }} - - -

- + +
+
+
+
+

+ + + + {{ branch.name }} +

+
+
+
-
-

投入预算表

-

分支机构项目的预算表,包括设备和基础设施明细

+
+
+
+

+ + + + 投入预算表 +

+
+
+

分支机构项目的预算表,包括设备和基础设施明细

- - {% if budget_templates %} -
-

预算模板导入

-

从模板一键导入预算,快速生成预算表

- -
- {% csrf_token %} -
-
- - -
-
- - -
-
- -
+ + {% if budget_templates %} +
+

+ + + + 预算模板导入 +

+

从模板一键导入预算,快速生成预算表

+ + + {% csrf_token %} +
+
+ + +
+
+ + +
+
+ +
+
+
- -
- {% endif %} + {% endif %} {% if budgets %} {% for budget in budgets %} @@ -54,215 +76,438 @@

{{ budget.name }} - 总预算: ¥{{ budget.total_budget }}

-
-

设备预算明细

+
+

+ + + + 设备预算明细 +

{% if budget.equipment_budgets.all %} -
+
- + - - - - - - + + + + + + - + {% for equipment in budget.equipment_budgets.all %} - - - - - - - + + + + + + + {% endfor %}
项目型号单价采购方式数量小计项目型号单价采购方式数量小计
{{ equipment.project }}{{ equipment.model }}¥{{ equipment.unit_price }}{{ equipment.get_procurement_method_display }}{{ equipment.quantity }}¥{{ equipment.subtotal }}
{{ equipment.project }}{{ equipment.model }}¥{{ equipment.unit_price }}{{ equipment.get_procurement_method_display }}{{ equipment.quantity }}¥{{ equipment.subtotal }}
{% else %} -

暂无设备预算明细

+
+ + + +

暂无设备预算明细

+
{% endif %}
-

基础设施预算明细

+

+ + + + 基础设施预算明细 +

{% if budget.infrastructure_budgets.all %} -
+
- + - - - - - - - + + + + + + + - + {% for infrastructure in budget.infrastructure_budgets.all %} - - - - - - - - + + + + + + + + {% endfor %}
名称备注单价单位数量小计说明名称备注单价单位数量小计说明
{{ infrastructure.name }}{{ infrastructure.remarks }}¥{{ infrastructure.unit_price }}{{ infrastructure.unit }}{{ infrastructure.quantity }}¥{{ infrastructure.subtotal }}{{ infrastructure.description }}
{{ infrastructure.name }}{{ infrastructure.remarks }}¥{{ infrastructure.unit_price }}{{ infrastructure.unit }}{{ infrastructure.quantity }}¥{{ infrastructure.subtotal }}{{ infrastructure.description }}
{% else %} -

暂无基础设施预算明细

+
+ + + +

暂无基础设施预算明细

+
{% endif %}
{% endfor %} {% else %} -

暂无预算信息

+
+ + + +

暂无预算信息

+
{% endif %} -
-
-

基本信息

-
-
-

信息系统分类: {{ branch.category|default:"暂无" }}

-

联系人: {{ branch.contact_person|default:"暂无" }}

-

联系电话: {{ branch.contact_phone|default:"暂无" }}

-
-
-

地址: {{ branch.address|default:"暂无" }}

-

成立时间: {{ branch.established_date|date:"Y-m-d"|default:"暂无" }}

- -
-

关联事件

- {% if events %} -
- {% for event in events %} -
-

{{ event.name }}

-

- {% if event.end_time %} - 开始日期{{ event.start_time|date:"Y年m月d日" }} 结束日期{{ event.end_time|date:"Y年m月d日" }} - {% else %} - 开始日期{{ event.start_time|date:"Y年m月d日" }},现在进行中 - {% endif %} -

-

{{ event.description|truncatechars:100 }}

+ +
+ + +
+
+
+

+ + + + 基本信息 +

- {% endfor %} -
- {% else %} -

暂无事件记录

- {% endif %} -
- - -
-

设备间图片

- {% if equipment_images %} -
- {% for image in equipment_images %} -
- 设备间图片 -
-

{{ image.description|default:"无描述" }}

-

{{ image.upload_date|date:"Y-m-d" }}

-
-
- {% endfor %} -
- {% else %} -

暂无设备间图片

- {% endif %} -
- - -
-

公共电子屏

- {% if public_screens %} -
- - - - - - - - - - - {% for screen in public_screens %} - - - - - - - {% endfor %} - -
类型描述最后演练更新时间
{{ screen.get_screen_type_display }}{{ screen.description|default:"无" }}{{ screen.last_drill.date|date:"Y-m-d"|default:"未演练" }}{{ screen.updated_at|date:"Y-m-d H:i" }}
-
- {% else %} -

暂无公共电子屏信息

- {% endif %} -
-{% for scope, activities in grouped_activities.items %} - -
- -
    - {% for huodong in activities %} -
  1. -
    -
    - - - - - 开始时间 {{ huodong.start_time| date:"Y年m月d日" }} - -
    - - {% if not huodong.end_time %} - - {{ huodong.name }}-未完成 - - {% else %} - - {{ huodong.name }} - - {% endif %} - +
    +
    +
    +
    +
    + + + +
    +
    +

    信息系统分类

    +

    {{ branch.category|default:"暂无" }}

    +
    -
    - {{ huodong.description }} +
    +
    + + + +
    +
    +

    联系人

    +

    {{ branch.contact_person|default:"暂无" }}

    +
    +
    +
    +
    + + + +
    +
    +

    联系电话

    +

    {{ branch.contact_phone|default:"暂无" }}

    +
    +
    +
    +
    +
    +
    + + + + +
    +
    +

    地址

    +

    {{ branch.address|default:"暂无" }}

    +
    +
    +
    +
    + + + +
    +
    +

    成立时间

    +

    {{ branch.established_date|date:"Y年m月d日"|default:"暂无" }}

    +
    - - - 结束时间 {{ huodong.end_time| date:"Y年m月d日" }} -
    -
  2. - {% endfor %} -
+
+
-
+ + +
+ + +
+
+
+

+ + + + 关联事件 +

+
+
+ {% if events %} +
+ {% for event in events %} +
+

{{ event.name }}

+
+ + + + + {{ event.start_time|date:"Y年m月d日" }} + + {% if event.end_time %} + + + + + {{ event.end_time|date:"Y年m月d日" }} + + {% else %} + + + + + 进行中 + + {% endif %} +
+

{{ event.description|truncatechars:100 }}

+
+ {% endfor %} +
+ {% else %} +
+ + + +

暂无事件记录

+
+ {% endif %} +
+
+
+ + +
+ + +
+
+
+

+ + + + 设备间图片 +

+
+
+ {% if equipment_images %} +
+ {% for image in equipment_images %} +
+
+ 设备间图片 +
+
+

{{ image.description|default:"无描述" }}

+

+ + + + {{ image.upload_date|date:"Y年m月d日" }} +

+
+
+ {% endfor %} +
+ {% else %} +
+ + + +

暂无设备间图片

+
+ {% endif %} +
+
+
+ + +
+ + +
+
+
+

+ + + + 公共电子屏 +

+
+
+ {% if public_screens %} +
+ + + + + + + + + + + {% for screen in public_screens %} + + + + + + + {% endfor %} + +
类型描述最后演练更新时间
+ + {{ screen.get_screen_type_display }} + + {{ screen.description|default:"无" }} + {% if screen.last_drill %} + + + + + {{ screen.last_drill.date|date:"Y-m-d" }} + + {% else %} + 未演练 + {% endif %} + {{ screen.updated_at|date:"Y-m-d H:i" }}
+
+ {% else %} +
+ + + +

暂无公共电子屏信息

+
+ {% endif %} +
+
+
+ + +
+ + +{% for scope, activities in grouped_activities.items %} +
+
+
+

+ + + + {{ scope }} +

+
+
+ {% for huodong in activities %} +
+
+ +
+
+ {% if not huodong.end_time %} + + + + {% else %} + + + + {% endif %} +
+
+ +
+
+

+ {{ huodong.name }} +

+ {% if not huodong.end_time %} + 未完成 + {% endif %} +
+

{{ huodong.description }}

+
+ + + + + {{ huodong.start_time|date:"Y年m月d日" }} + + {% if huodong.end_time %} + + + + + {{ huodong.end_time|date:"Y年m月d日" }} + + {% endif %} +
+
+
+
+ {% empty %} +
+ + + + 暂无活动 +
+ {% endfor %} +
+
+
+ + +
{% endfor %} {% endblock %} diff --git a/fzjgact/huodong/templates/branch_info.html b/fzjgact/huodong/templates/branch_info.html index cee8103..a1b770f 100644 --- a/fzjgact/huodong/templates/branch_info.html +++ b/fzjgact/huodong/templates/branch_info.html @@ -1,76 +1,140 @@ {% extends 'base.html' %} - {% block content %} - - - - - - - - - - {% for province, branches in branches_by_province.items %} - {% for item in branches %} - - {% if forloop.first %} - - {% endif %} - - + +
+
+
+
+

+ + + + 分支机构信息 +

+
+
+
- - {% endfor %} - {% endfor %} - - - - - - - - - - -
- 所在省份 - - 分支机构名称 -
- 基础信息 -
- 信息系统类别 -
- {{ province }} - - - {{ item.name }} - - - {{ item.category }} -
- 分支机构类别统计 - - A型: {{ type_a_count }}家 | B型: {{ type_b_count }}家 | C型: {{ type_c_count }}家 -
-
+
+
+
+ + +
-
{% endblock %} \ No newline at end of file diff --git a/fzjgact/huodong/templates/contact_list.html b/fzjgact/huodong/templates/contact_list.html index 0faa093..df84b17 100644 --- a/fzjgact/huodong/templates/contact_list.html +++ b/fzjgact/huodong/templates/contact_list.html @@ -1,147 +1,240 @@ {% extends "base.html" %} {% block content %} -
-

联系人信息

- - -
-
- -
- -
- -
- - - - - - {% endblock %} \ No newline at end of file diff --git a/fzjgact/huodong/templates/public_screens.html b/fzjgact/huodong/templates/public_screens.html index 74248a2..25c5ae2 100644 --- a/fzjgact/huodong/templates/public_screens.html +++ b/fzjgact/huodong/templates/public_screens.html @@ -2,78 +2,146 @@ {% load static %} {% block content %} -
-

公共电子屏列表

+ +
+
+
+
+

+ + + + 公共电子屏列表 +

+
+
+
+
-
-
-
- - -
-
- - -
-
- - {% if request.GET.branch or request.GET.screen_type %} - 清除筛选 - {% endif %} -
-
+
+
+

+ + + + 筛选条件 +

+
+
+
+
+ + +
+
+ + +
+
+ + {% if request.GET.branch or request.GET.screen_type %} + + 清除筛选 + + {% endif %} +
+
+
{% for screen in public_screens %} -
+
{% if screen.image %} - {{ screen.get_screen_type_display }} + {{ screen.get_screen_type_display }} {% else %} -
- 暂无图片 +
+
+ + + + 暂无图片 +
{% endif %} -
+
{{ screen.get_screen_type_display }}
-
-

{{ screen.branch.name }}

+
+

{{ screen.branch.name }}

{% if screen.description %} -

{{ screen.description|truncatechars:100 }}

+

{{ screen.description|truncatechars:100 }}

{% endif %} -
+
{% if screen.last_drill %} -

最后演练: {{ screen.last_drill.date|date:"Y-m-d H:i" }}

+

+ + + + 最后演练: {{ screen.last_drill.date|date:"Y-m-d H:i" }} +

{% else %} -

暂无演练记录

+

+ + + + 暂无演练记录 +

{% endif %} -

更新时间: {{ screen.updated_at|date:"Y-m-d H:i" }}

+

+ + + + 更新时间: {{ screen.updated_at|date:"Y-m-d H:i" }} +

{% empty %} -
-

暂无公共电子屏记录

+
+
+ + + +

暂无公共电子屏记录

+
{% endfor %}
+ +
+