/* preflight */ *, ::before, ::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: rgb(229 231 235 / 1); } /* Modern Design System Variables */ :root { /* Core Design Tokens */ --color-primary: rgb(6 182 212); --color-primary-dark: rgb(34 211 238); --color-secondary: rgb(52 211 153); --color-secondary-dark: rgb(16 185 129); --color-accent: rgb(244 114 182); --color-accent-dark: rgb(236 72 153); /* Neutral Palette */ --color-neutral-50: rgb(248 250 252); --color-neutral-100: rgb(241 245 249); --color-neutral-200: rgb(226 232 240); --color-neutral-300: rgb(203 213 225); --color-neutral-400: rgb(148 163 184); --color-neutral-500: rgb(100 116 139); --color-neutral-600: rgb(71 85 105); --color-neutral-700: rgb(51 65 85); --color-neutral-800: rgb(30 41 59); --color-neutral-900: rgb(15 23 42); /* Semantic Colors */ --color-success: rgb(34 197 94); --color-warning: rgb(245 158 11); --color-error: rgb(239 68 68); --color-info: rgb(59 130 246); /* Typography */ --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; --font-mono: "SF Mono", Monaco, Inconsolata, "Roboto Mono", Consolas, "Courier New", monospace; --font-display: "Inter", var(--font-sans); /* Font Sizes */ --text-xs: 0.75rem; /* 12px */ --text-sm: 0.875rem; /* 14px */ --text-base: 1rem; /* 16px */ --text-lg: 1.125rem; /* 18px */ --text-xl: 1.25rem; /* 20px */ --text-2xl: 1.5rem; /* 24px */ --text-3xl: 1.875rem; /* 30px */ --text-4xl: 2.25rem; /* 36px */ --text-5xl: 3rem; /* 48px */ /* Spacing */ --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; /* Border Radius */ --radius-sm: 0.25rem; --radius-md: 0.375rem; --radius-lg: 0.5rem; --radius-xl: 0.75rem; --radius-2xl: 1rem; --radius-3xl: 1.5rem; --radius-full: 9999px; /* Shadows */ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25); /* Glassmorphism */ --glass-bg: rgb(255 255 255 / 0.1); --glass-border: rgb(255 255 255 / 0.2); --glass-shadow: 0 8px 32px 0 rgb(31 38 135 / 0.37); /* Animations */ --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1); --transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1); --transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1); --transition-bounce: 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55); /* Legacy Tailwind Variables (for compatibility) */ --tw-bg-opacity: 1; --tw-text-opacity: 1; --tw-border-opacity: 1; --tw-ring-opacity: 1; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-shadow: 0 0 #0000; --tw-shadow-color: rgb(0 0 0 / 0.06); --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-blur: ; --tw-drop-shadow: ; --tw-filter: var(--tw-blur) var(--tw-drop-shadow); --tw-backdrop-blur: ; --tw-backdrop-filter: var(--tw-backdrop-blur); --tw-gradient-from: rgb(0 0 0 / 0); --tw-gradient-to: rgb(0 0 0 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } @keyframes spin { to { transform: rotate(360deg); } } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .-m-2 { margin: -0.5rem; } .-mb-px { margin-bottom: -1px; } .-my-2 { margin-top: -0.5rem; margin-bottom: -0.5rem; } .-right-0 { right: -0px; } .-right-0\.5 { right: -0.125rem; } .-top-0\.5 { top: -0.125rem; } .-translate-x-1\/2 { --tw-translate-x: -50%; } .-translate-y-1\/2 { --tw-translate-y: -50%; } .absolute { position: absolute; } .active\:scale-95:active { --tw-scale-x: 0.95; --tw-scale-y: 0.95; } .active\:shadow-\[0_4px_16px_4px_rgba\(185\,28\,28\,0\.8\)\,0_8px_24px_rgba\(127\,29\,29\,0\.9\)\,inset_0_1px_2px_rgba\(0\,0\,0\,0\.3\)\]:active { box-shadow: 0 4px 16px 4px rgba(185, 28, 28, 0.8), 0 8px 24px rgba(127, 29, 29, 0.9), inset 0 1px 2px rgba(0, 0, 0, 0.3); } .after\:absolute::after { position: absolute; } .after\:bg-linear-to-br::after { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); } .after\:bg-white::after { background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); } .after\:border::after { border-width: 1px; } .after\:border-gray-300::after { border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); } .after\:content-\[\'\'\]::after { content: ""; } .after\:h-5::after { height: 1.25rem; } .after\:inset-0::after { top: 0; right: 0; bottom: 0; left: 0; } .after\:left-\[2px\]::after { left: 2px; } .after\:opacity-50::after { opacity: 0.5; } .after\:rounded-full::after { border-radius: 9999px; } .after\:top-\[2px\]::after { top: 2px; } .after\:transition-all::after { transition-property: all; } .after\:w-5::after { width: 1.25rem; } .align-middle { vertical-align: middle; } .align-top { vertical-align: top; } .animate-float-cyan {} .animate-float-pink {} .animate-float-purple {} .animate-float-teal-1 {} .animate-float-teal-2 {} .animate-float-teal-3 {} .animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } .animate-spin { animation: spin 1s linear infinite; } .backdrop-blur-md { --tw-backdrop-blur: blur(12px); backdrop-filter: var(--tw-backdrop-filter); } .backdrop-blur-sm { --tw-backdrop-blur: blur(4px); backdrop-filter: var(--tw-backdrop-filter); } .before\:absolute::before { position: absolute; } .before\:bg-linear-to-t::before { background-image: linear-gradient(to top, var(--tw-gradient-stops)); } .before\:duration-300::before { transition-duration: 300ms; } .before\:inset-0::before { top: 0; right: 0; bottom: 0; left: 0; } .before\:opacity-0::before { opacity: 0.0; } .before\:rounded-full::before { border-radius: 9999px; } .before\:transition-opacity::before { transition-property: opacity; } .bg-amber-100 { background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1)); } .bg-amber-50 { background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1)); } .bg-amber-500 { background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1)); } .bg-amber-500\/10 { background-color: rgb(245 158 11 / 0.1); } .bg-black { background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); } .bg-black\/50 { background-color: rgb(0 0 0 / 0.5); } .bg-blue-100 { background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); } .bg-blue-50 { background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1)); } .bg-blue-500 { background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)); } .bg-blue-600 { background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); } .bg-clip-text { -webkit-background-clip: text; background-clip: text; } .bg-cyan-400 { background-color: rgb(34 211 238 / var(--tw-bg-opacity, 1)); } .bg-cyan-400\/5 { background-color: rgb(34 211 238 / 0.05); } .bg-cyan-500 { background-color: rgb(6 182 212 / var(--tw-bg-opacity, 1)); } .bg-cyan-500\/15 { background-color: rgb(6 182 212 / 0.15); } .bg-cyan-500\/80 { background-color: rgb(6 182 212 / 0.8); } .bg-emerald-100 { background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1)); } .bg-emerald-400 { background-color: rgb(52 211 153 / var(--tw-bg-opacity, 1)); } .bg-emerald-400\/5 { background-color: rgb(52 211 153 / 0.05); } .bg-emerald-50 { background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1)); } .bg-emerald-500\/15 { background-color: rgb(16 185 129 / 0.15); } .bg-emerald-500\/80 { background-color: rgb(16 185 129 / 0.8); } .bg-emerald-600 { background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1)); } .bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); } .bg-gray-100 { background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); } .bg-gray-200 { background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)); } .bg-gray-300 { background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1)); } .bg-gray-400 { background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1)); } .bg-gray-50 { background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); } .bg-gray-700 { background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); } .bg-gray-900 { background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)); } .bg-green-100 { background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1)); } .bg-green-50 { background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1)); } .bg-green-500 { background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); } .bg-green-600 { background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); } .bg-indigo-600 { background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1)); } .bg-linear-to-b { background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); } .bg-linear-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); } .bg-linear-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); } .bg-opacity-10 { --tw-bg-opacity: 0.1; } .bg-opacity-30 { --tw-bg-opacity: 0.3; } .bg-opacity-50 { --tw-bg-opacity: 0.5; } .bg-orange-100 { background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1)); } .bg-pink-400 { background-color: rgb(244 114 182 / var(--tw-bg-opacity, 1)); } .bg-purple-400 { background-color: rgb(192 132 252 / var(--tw-bg-opacity, 1)); } .bg-red-100 { background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1)); } .bg-red-50 { background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1)); } .bg-red-500 { background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1)); } .bg-red-600 { background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1)); } .bg-rose-50 { background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1)); } .bg-rose-600 { background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1)); } .bg-slate-100 { background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1)); } .bg-slate-500\/10 { background-color: rgb(100 116 139 / 0.1); } .bg-teal-400 { background-color: rgb(45 212 191 / var(--tw-bg-opacity, 1)); } .bg-teal-400\/20 { background-color: rgb(45 212 191 / 0.2); } .bg-teal-400\/5 { background-color: rgb(45 212 191 / 0.05); } .bg-transparent { background-color: transparent; } .bg-white { background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); } .bg-white\/65 { background-color: rgb(255 255 255 / 0.65); } .bg-white\/80 { background-color: rgb(255 255 255 / 0.8); } .bg-yellow-100 { background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1)); } .bg-yellow-50 { background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1)); } .block { display: block; } .blur-3xl { --tw-blur: blur(64px); } .blur-\[2px\] { --tw-blur: blur(2px); } .blur-xl { --tw-blur: blur(24px); } .border { border-width: 1px; } .border-2 { border-width: 2px; } .border-amber-200 { border-color: rgb(253 230 138 / var(--tw-border-opacity, 1)); } .border-amber-300 { border-color: rgb(252 211 77 / var(--tw-border-opacity, 1)); } .border-amber-400\/40 { border-color: rgb(251 191 36 / 0.4); } .border-b { border-bottom-width: 1px; } .border-b-2 { border-bottom-width: 2px; } .border-blue-200 { border-color: rgb(191 219 254 / var(--tw-border-opacity, 1)); } .border-blue-500 { border-color: rgb(59 130 246 / var(--tw-border-opacity, 1)); } .border-blue-600 { border-color: rgb(37 99 235 / var(--tw-border-opacity, 1)); } .border-collapse { border-collapse: collapse; } .border-current { border-color: currentColor; } .border-cyan-400 { border-color: rgb(34 211 238 / var(--tw-border-opacity, 1)); } .border-cyan-400\/40 { border-color: rgb(34 211 238 / 0.4); } .border-cyan-500\/30 { border-color: rgb(6 182 212 / 0.3); } .border-cyan-500\/50 { border-color: rgb(6 182 212 / 0.5); } .border-dashed { border-style: dashed; } .border-emerald-200 { border-color: rgb(167 243 208 / var(--tw-border-opacity, 1)); } .border-emerald-400\/40 { border-color: rgb(52 211 153 / 0.4); } .border-emerald-500\/30 { border-color: rgb(16 185 129 / 0.3); } .border-gray-100 { border-color: rgb(243 244 246 / var(--tw-border-opacity, 1)); } .border-gray-200 { border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); } .border-gray-300 { border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); } .border-gray-500 { border-color: rgb(107 114 128 / var(--tw-border-opacity, 1)); } .border-green-200 { border-color: rgb(187 247 208 / var(--tw-border-opacity, 1)); } .border-opacity-30 { --tw-border-opacity: 0.3; } .border-pink-400\/40 { border-color: rgb(244 114 182 / 0.4); } .border-red-200 { border-color: rgb(254 202 202 / var(--tw-border-opacity, 1)); } .border-red-300 { border-color: rgb(252 165 165 / var(--tw-border-opacity, 1)); } .border-red-300\/20 { border-color: rgb(252 165 165 / 0.2); } .border-red-400 { border-color: rgb(248 113 113 / var(--tw-border-opacity, 1)); } .border-red-500 { border-color: rgb(239 68 68 / var(--tw-border-opacity, 1)); } .border-red-500\/20 { border-color: rgb(239 68 68 / 0.2); } .border-rose-200 { border-color: rgb(254 205 211 / var(--tw-border-opacity, 1)); } .border-slate-400\/40 { border-color: rgb(148 163 184 / 0.4); } .border-t { border-top-width: 1px; } .border-t-transparent { border-top-color: transparent; } .border-teal-400 { border-color: rgb(45 212 191 / var(--tw-border-opacity, 1)); } .border-teal-400\/20 { border-color: rgb(45 212 191 / 0.2); } .border-teal-500\/30 { border-color: rgb(20 184 166 / 0.3); } .border-teal-500\/50 { border-color: rgb(20 184 166 / 0.5); } .border-transparent { border-color: transparent; } .bottom-0 { bottom: 0px; } .bottom-4 { bottom: 1rem; } .bottom-6 { bottom: 1.5rem; } .capitalize { text-transform: capitalize; } .cursor-not-allowed { cursor: not-allowed; } .cursor-pointer { cursor: pointer; } .disabled\:bg-gray-400:disabled { background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1)); } .disabled\:cursor-not-allowed:disabled { cursor: not-allowed; } .disabled\:opacity-50:disabled { opacity: 0.5; } .divide-gray-200 > :not([hidden]) ~ :not([hidden]) { border-color: rgb(229 231 235 / var(--tw-divide-opacity, 1)); } .divide-inherit { border-color: inherit; } .divide-y > :not([hidden]) ~ :not([hidden]) { border-top-width: 1px; } .drop-shadow-2xl { --tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15)); } .drop-shadow-\[0_0_20px_rgba\(107\,206\,220\,0\.5\)\] { --tw-drop-shadow: drop-shadow(0 0 20px rgba(107, 206, 220, 0.5)); } .drop-shadow-\[0_4px_12px_rgba\(0\,0\,0\,0\.85\)\] { --tw-drop-shadow: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.85)); } .duration-150 { transition-duration: 150ms; } .duration-200 { transition-duration: 200ms; } .duration-300 { transition-duration: 300ms; } .ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } .filter { filter: var(--tw-filter); } .fixed { position: fixed; } .flex { display: flex; } .flex-1 { flex: 1 1 0%; } .flex-col { flex-direction: column; } .flex-grow { flex-grow: 1; } .flex-shrink-0 { flex-shrink: 0; } .flex-wrap { flex-wrap: wrap; } .focus-within\:outline-none:focus-within { outline: 2px solid transparent; outline-offset: 2px; } .focus-within\:ring-2:focus-within { --tw-ring-width: 2px; --tw-ring-offset-shadow: 0 0 0 var(--tw-ring-offset-width, 0px) var( --tw-ring-offset-color, #fff ); --tw-ring-shadow: 0 0 0 calc( var(--tw-ring-offset-width, 0px) + var(--tw-ring-width, 2px) ) var(--tw-ring-color, rgb(59 130 246 / 0.5)); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .focus-within\:ring-blue-500:focus-within { --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1)); } .focus-within\:ring-offset-2:focus-within { --tw-ring-offset-width: 0.5rem; } .focus\:bg-white:focus { background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); } .focus\:border-blue-500:focus { border-color: rgb(59 130 246 / var(--tw-border-opacity, 1)); } .focus\:border-gray-400:focus { border-color: rgb(156 163 175 / var(--tw-border-opacity, 1)); } .focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; } .focus\:ring-2:focus { --tw-ring-width: 2px; --tw-ring-offset-shadow: 0 0 0 var(--tw-ring-offset-width, 0px) var( --tw-ring-offset-color, #fff ); --tw-ring-shadow: 0 0 0 calc( var(--tw-ring-offset-width, 0px) + var(--tw-ring-width, 2px) ) var(--tw-ring-color, rgb(59 130 246 / 0.5)); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .focus\:ring-4:focus { --tw-ring-width: 4px; --tw-ring-offset-shadow: 0 0 0 var(--tw-ring-offset-width, 0px) var( --tw-ring-offset-color, #fff ); --tw-ring-shadow: 0 0 0 calc( var(--tw-ring-offset-width, 0px) + var(--tw-ring-width, 2px) ) var(--tw-ring-color, rgb(59 130 246 / 0.5)); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .focus\:ring-blue-400:focus { --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1)); } .focus\:ring-blue-500:focus { --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1)); } .focus\:ring-cyan-500:focus { --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity, 1)); } .focus\:ring-gray-500:focus { --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1)); } .focus\:ring-green-300:focus { --tw-ring-color: rgb(134 239 172 / var(--tw-ring-opacity, 1)); } .focus\:ring-green-500:focus { --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1)); } .focus\:ring-offset-2:focus { --tw-ring-offset-width: 0.5rem; } .focus\:ring-offset-black\/50:focus { --tw-ring-offset-color: rgb(0 0 0 / 0.5); } .focus\:ring-opacity-50:focus { --tw-ring-opacity: 0.5; } .focus\:ring-red-300:focus { --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1)); } .focus\:ring-red-400\/50:focus { --tw-ring-color: rgb(248 113 113 / 0.5); } .focus\:ring-red-500:focus { --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1)); } .focus\:ring-yellow-300:focus { --tw-ring-color: rgb(253 224 71 / var(--tw-ring-opacity, 1)); } .font-bold { font-weight: 700; } .font-extrabold { font-weight: 800; } .font-medium { font-weight: 500; } .font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } .font-semibold { font-weight: 600; } .from-cyan-500\/20 { --tw-gradient-from: rgb(6 182 212 / 0.2); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-cyan-900\/20 { --tw-gradient-from: rgb(22 78 99 / 0.2); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-emerald-900\/20 { --tw-gradient-from: rgb(6 78 59 / 0.2); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-red-200\/20 { --tw-gradient-from: rgb(254 202 202 / 0.2); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-red-300\/10 { --tw-gradient-from: rgb(252 165 165 / 0.1); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-red-400\/12 { --tw-gradient-from: rgb(248 113 113 / 0.12); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-slate-50 { --tw-gradient-from: rgb(248 250 252 / 1); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-teal-400 { --tw-gradient-from: rgb(45 212 191 / 1); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-teal-500\/20 { --tw-gradient-from: rgb(20 184 166 / 0.2); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-teal-900\/20 { --tw-gradient-from: rgb(19 78 74 / 0.2); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .from-transparent { --tw-gradient-from: transparent; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(255 255 255 / 0)); } .gap-1 { gap: 0.25rem; } .gap-16 { gap: 4rem; } .gap-2 { gap: 0.5rem; } .gap-3 { gap: 0.75rem; } .gap-4 { gap: 1rem; } .gap-5 { gap: 1.25rem; } .gap-6 { gap: 1.5rem; } .gap-8 { gap: 2rem; } .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)); } .group {} .group:hover .group-hover\:bg-teal-400\/30 { background-color: rgb(45 212 191 / 0.3); } .group:hover .group-hover\:blur-\[3px\] { --tw-blur: blur(3px); } .group:hover .group-hover\:drop-shadow-\[0_6px_16px_rgba\(0\,0\,0\,0\.95\)\] { --tw-drop-shadow: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.95)); } .group:hover .group-hover\:opacity-100 { opacity: 1.0; } .group:hover .group-hover\:opacity-70 { opacity: 0.7; } .group:hover .group-hover\:opacity-80 { opacity: 0.8; } .h-1 { height: 0.25rem; } .h-10 { height: 2.5rem; } .h-12 { height: 3rem; } .h-16 { height: 4rem; } .h-2 { height: 0.5rem; } .h-2\.5 { height: 0.625rem; } .h-28 { height: 7rem; } .h-3 { height: 0.75rem; } .h-36 { height: 9rem; } .h-4 { height: 1rem; } .h-40 { height: 10rem; } .h-48 { height: 12rem; } .h-5 { height: 1.25rem; } .h-52 { height: 13rem; } .h-56 { height: 14rem; } .h-6 { height: 1.5rem; } .h-64 { height: 16rem; } .h-8 { height: 2rem; } .h-\[16px\] { height: 16px; } .h-\[85px\] { height: 85px; } .h-full { height: 100%; } .hamburger-container { margin-right: 0.5rem; } .hidden { display: none; } .hover\:before\:opacity-100:hover::before { opacity: 1.0; } .hover\:bg-amber-50:hover { background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1)); } .hover\:bg-blue-100:hover { background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); } .hover\:bg-blue-50:hover { background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1)); } .hover\:bg-blue-600:hover { background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); } .hover\:bg-blue-700:hover { background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1)); } .hover\:bg-cyan-400\/90:hover { background-color: rgb(34 211 238 / 0.9); } .hover\:bg-emerald-400\/90:hover { background-color: rgb(52 211 153 / 0.9); } .hover\:bg-emerald-700:hover { background-color: rgb(4 120 87 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-100:hover { background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-200:hover { background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-300:hover { background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-400:hover { background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-50:hover { background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-800:hover { background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); } .hover\:bg-green-200:hover { background-color: rgb(187 247 208 / var(--tw-bg-opacity, 1)); } .hover\:bg-green-700:hover { background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1)); } .hover\:bg-indigo-700:hover { background-color: rgb(67 56 202 / var(--tw-bg-opacity, 1)); } .hover\:bg-red-200:hover { background-color: rgb(254 202 202 / var(--tw-bg-opacity, 1)); } .hover\:bg-red-50:hover { background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1)); } .hover\:bg-red-700:hover { background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1)); } .hover\:border-cyan-300\/80:hover { border-color: rgb(103 232 249 / 0.8); } .hover\:border-cyan-400\/60:hover { border-color: rgb(34 211 238 / 0.6); } .hover\:border-emerald-300\/80:hover { border-color: rgb(110 231 183 / 0.8); } .hover\:border-emerald-400\/60:hover { border-color: rgb(52 211 153 / 0.6); } .hover\:border-gray-300:hover { border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); } .hover\:border-pink-300\/80:hover { border-color: rgb(249 168 212 / 0.8); } .hover\:border-red-400\/90:hover { border-color: rgb(248 113 113 / 0.9); } .hover\:border-rose-300:hover { border-color: rgb(253 164 175 / var(--tw-border-opacity, 1)); } .hover\:border-teal-400\/60:hover { border-color: rgb(45 212 191 / 0.6); } .hover\:scale-105:hover { --tw-scale-x: 1.05; --tw-scale-y: 1.05; } .hover\:scale-110:hover { --tw-scale-x: 1.1; --tw-scale-y: 1.1; } .hover\:shadow-\[0_0_30px_rgba\(107\,206\,220\,0\.3\)\]:hover { box-shadow: 0 0 30px rgba(107, 206, 220, 0.3); } .hover\:shadow-\[0_0_40px_rgba\(52\,211\,153\,0\.25\)\]:hover { box-shadow: 0 0 40px rgba(52, 211, 153, 0.25); } .hover\:shadow-\[0_0_40px_rgba\(56\,189\,248\,0\.25\)\]:hover { box-shadow: 0 0 40px rgba(56, 189, 248, 0.25); } .hover\:shadow-\[0_12px_48px_12px_rgba\(239\,68\,68\,0\.6\)\,0_24px_80px_rgba\(185\,28\,28\,0\.7\)\,inset_0_2px_8px_rgba\(255\,255\,255\,0\.3\)\]:hover { box-shadow: 0 12px 48px 12px rgba(239, 68, 68, 0.6), 0 24px 80px rgba(185, 28, 28, 0.7), inset 0 2px 8px rgba(255, 255, 255, 0.3); } .hover\:shadow-md:hover { box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); } .hover\:text-amber-600:hover { color: rgb(217 119 6 / var(--tw-text-opacity, 1)); } .hover\:text-blue-500:hover { color: rgb(59 130 246 / var(--tw-text-opacity, 1)); } .hover\:text-blue-700:hover { color: rgb(29 78 216 / var(--tw-text-opacity, 1)); } .hover\:text-blue-900:hover { color: rgb(30 58 138 / var(--tw-text-opacity, 1)); } .hover\:text-emerald-500:hover { color: rgb(16 185 129 / var(--tw-text-opacity, 1)); } .hover\:text-gray-700:hover { color: rgb(55 65 81 / var(--tw-text-opacity, 1)); } .hover\:text-gray-800:hover { color: rgb(31 41 55 / var(--tw-text-opacity, 1)); } .hover\:text-green-900:hover { color: rgb(20 83 45 / var(--tw-text-opacity, 1)); } .hover\:text-opacity-80:hover { --tw-text-opacity: 0.8; } .hover\:text-red-500:hover { color: rgb(239 68 68 / var(--tw-text-opacity, 1)); } .hover\:text-red-700:hover { color: rgb(185 28 28 / var(--tw-text-opacity, 1)); } .hover\:text-red-900:hover { color: rgb(127 29 29 / var(--tw-text-opacity, 1)); } .hover\:text-rose-700:hover { color: rgb(190 18 60 / var(--tw-text-opacity, 1)); } .hover\:text-white:hover { color: rgb(255 255 255 / var(--tw-text-opacity, 1)); } .hover\:underline:hover { text-decoration: underline; } .inline { display: inline; } .inline-block { display: inline-block; } .inline-flex { display: inline-flex; } .input { display: block; width: 100%; border-width: 1px; border-color: rgb(209 213 219 / 1); background-color: rgb(255 255 255 / 1); color: rgb(17 24 39 / 1); } .input-bordered { border-width: 1px; } .inset-0 { top: 0; right: 0; bottom: 0; left: 0; } .inset-\[12px\] { top: 12px; right: 12px; bottom: 12px; left: 12px; } .inset-x-0 { left: 0; right: 0; } .inset-y-0 { top: 0; bottom: 0; } .invisible { visibility: hidden; } .isolate { isolation: isolate; } .items-center { align-items: center; } .items-end { align-items: flex-end; } .items-start { align-items: flex-start; } .justify-between { justify-content: space-between; } .justify-center { justify-content: center; } .justify-end { justify-content: flex-end; } .justify-start { justify-content: flex-start; } .last\:border-b-0:last-child { border-bottom-width: 0; } .leading-4 { line-height: 1rem; } .leading-5 { line-height: 1.25rem; } .leading-6 { line-height: 1.5rem; } .leading-none { line-height: 1; } .leading-relaxed { line-height: 1.625; } .left-0 { left: 0px; } .left-1\/2 { left: 50%; } .left-10 { left: 2.5rem; } .left-\[5\%\] { left: 5%; } .left-\[95\%\] { left: 95%; } @media (min-width: 1024px) { .lg\:-mx-8 { margin-left: -2rem; margin-right: -2rem; } } @media (min-width: 1024px) { .lg\:col-span-2 { grid-column: span 2 / span 2; } } @media (min-width: 1024px) { .lg\:flex-row { flex-direction: row; } } @media (min-width: 1024px) { .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 1024px) { .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @media (min-width: 1024px) { .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } } @media (min-width: 1024px) { .lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } } @media (min-width: 1024px) { .lg\:items-center { align-items: center; } } @media (min-width: 1024px) { .lg\:items-end { align-items: flex-end; } } @media (min-width: 1024px) { .lg\:justify-between { justify-content: space-between; } } @media (min-width: 1024px) { .lg\:px-24 { padding-left: 6rem; padding-right: 6rem; } } @media (min-width: 1024px) { .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; } } .line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .line-through { text-decoration: line-through; } .list-disc { list-style-type: disc; } .list-inside { list-style-position: inside; } .max-h-72 { max-height: 18rem; } .max-h-\[90vh\] { max-height: 90vh; } .max-w-2xl { max-width: 42rem; } .max-w-3\/4 { max-width: 75.000000%; } .max-w-3xl { max-width: 48rem; } .max-w-4xl { max-width: 56rem; } .max-w-6xl { max-width: 72rem; } .max-w-7xl { max-width: 80rem; } .max-w-\[500px\] { max-width: 500px; } .max-w-lg { max-width: 32rem; } .max-w-md { max-width: 28rem; } .max-w-none { max-width: none; } .max-w-sm { max-width: 24rem; } .max-w-xl { max-width: 36rem; } .mb-0 { margin-bottom: 0px; } .mb-1 { margin-bottom: 0.25rem; } .mb-10 { margin-bottom: 2.5rem; } .mb-2 { margin-bottom: 0.5rem; } .mb-4 { margin-bottom: 1rem; } .mb-6 { margin-bottom: 1.5rem; } .mb-8 { margin-bottom: 2rem; } @media (min-width: 768px) { .md\:block { display: block; } } @media (min-width: 768px) { .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 768px) { .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @media (min-width: 768px) { .md\:h-44 { height: 11rem; } } @media (min-width: 768px) { .md\:text-2xl { font-size: 1.5rem; } } @media (min-width: 768px) { .md\:text-5xl { font-size: 3rem; } } @media (min-width: 768px) { .md\:text-xl { font-size: 1.25rem; } } @media (min-width: 768px) { .md\:w-44 { width: 11rem; } } .menu-button {} .message-checkbox {} .min-h-4 { min-height: 1rem; } .min-h-\[56px\] { min-height: 56px; } .min-h-screen { min-height: 100vh; } .min-w-0 { min-width: 0px; } .min-w-full { min-width: 100%; } .ml-2 { margin-left: 0.5rem; } .ml-3 { margin-left: 0.75rem; } .ml-4 { margin-left: 1rem; } .ml-5 { margin-left: 1.25rem; } .ml-6 { margin-left: 1.5rem; } .mr-1\.5 { margin-right: 0.375rem; } .mr-2 { margin-right: 0.5rem; } .mt-1 { margin-top: 0.25rem; } .mt-10 { margin-top: 2.5rem; } .mt-14 { margin-top: 3.5rem; } .mt-2 { margin-top: 0.5rem; } .mt-3 { margin-top: 0.75rem; } .mt-4 { margin-top: 1rem; } .mt-5 { margin-top: 1.25rem; } .mt-6 { margin-top: 1.5rem; } .mt-8 { margin-top: 2rem; } .mx-0 { margin-left: 0px; margin-right: 0px; } .mx-auto { margin-left: auto; margin-right: auto; } .my-1 { margin-top: 0.25rem; margin-bottom: 0.25rem; } .my-4 { margin-top: 1rem; margin-bottom: 1rem; } .navigation-menu {} .object-contain { object-fit: contain; } .object-cover { object-fit: cover; } .opacity-0 { opacity: 0.0; } .opacity-20 { opacity: 0.2; } .opacity-40 { opacity: 0.4; } .opacity-60 { opacity: 0.6; } .opacity-70 { opacity: 0.7; } .opacity-80 { opacity: 0.8; } .origin-top-right { transform-origin: top right; } .overflow-hidden { overflow: hidden; } .overflow-x-auto { overflow-x: auto; } .overflow-y-auto { overflow-y: auto; } .p-1 { padding: 0.25rem; } .p-2 { padding: 0.5rem; } .p-3 { padding: 0.75rem; } .p-4 { padding: 1rem; } .p-5 { padding: 1.25rem; } .p-6 { padding: 1.5rem; } .p-8 { padding: 2rem; } .pb-14 { padding-bottom: 3.5rem; } .pb-2 { padding-bottom: 0.5rem; } .pb-4 { padding-bottom: 1rem; } .pb-6 { padding-bottom: 1.5rem; } .pb-\[10px\] { padding-bottom: 10px; } .peer {} .peer:checked ~ .peer-checked\:after\:border-white::after { border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); } .peer:checked ~ .peer-checked\:after\:translate-x-full::after { --tw-translate-x: 100%; } .peer:checked ~ .peer-checked\:bg-blue-600 { background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); } .peer:focus ~ .peer-focus\:outline-none { outline: 2px solid transparent; outline-offset: 2px; } .peer:focus ~ .peer-focus\:ring-4 { --tw-ring-width: 4px; --tw-ring-offset-shadow: 0 0 0 var(--tw-ring-offset-width, 0px) var( --tw-ring-offset-color, #fff ); --tw-ring-shadow: 0 0 0 calc( var(--tw-ring-offset-width, 0px) + var(--tw-ring-width, 2px) ) var(--tw-ring-color, rgb(59 130 246 / 0.5)); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .peer:focus ~ .peer-focus\:ring-blue-300 { --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1)); } .pl-1 { padding-left: 0.25rem; } .pl-10 { padding-left: 2.5rem; } .pl-3 { padding-left: 0.75rem; } .pl-7 { padding-left: 1.75rem; } .placeholder-gray-500::placeholder { color: rgb(107 114 128 / 1); } .placeholder-gray-600::placeholder { color: rgb(75 85 99 / 1); } .pointer-events-auto { pointer-events: auto; } .pointer-events-none { pointer-events: none; } .pr-10 { padding-right: 2.5rem; } .pr-12 { padding-right: 3rem; } .pr-2 { padding-right: 0.5rem; } .pr-3 { padding-right: 0.75rem; } .pr-4 { padding-right: 1rem; } .pt-0 { padding-top: 0px; } .pt-16 { padding-top: 4rem; } .pt-2 { padding-top: 0.5rem; } .pt-3 { padding-top: 0.75rem; } .pt-4 { padding-top: 1rem; } .pt-5 { padding-top: 1.25rem; } .pt-6 { padding-top: 1.5rem; } .px-0 { padding-left: 0px; padding-right: 0px; } .px-1 { padding-left: 0.25rem; padding-right: 0.25rem; } .px-10 { padding-left: 2.5rem; padding-right: 2.5rem; } .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; } .px-4 { padding-left: 1rem; padding-right: 1rem; } .px-5 { padding-left: 1.25rem; padding-right: 1.25rem; } .px-6 { padding-left: 1.5rem; padding-right: 1.5rem; } .px-8 { padding-left: 2rem; padding-right: 2rem; } .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; } .py-12 { padding-top: 3rem; padding-bottom: 3rem; } .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-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; } .py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; } .py-8 { padding-top: 2rem; padding-bottom: 2rem; } .relative { position: relative; } .right-0 { right: 0px; } .right-10 { right: 2.5rem; } .right-3 { right: 0.75rem; } .right-4 { right: 1rem; } .ring-2 { --tw-ring-width: 2px; --tw-ring-offset-shadow: 0 0 0 var(--tw-ring-offset-width, 0px) var( --tw-ring-offset-color, #fff ); --tw-ring-shadow: 0 0 0 calc( var(--tw-ring-offset-width, 0px) + var(--tw-ring-width, 2px) ) var(--tw-ring-color, rgb(59 130 246 / 0.5)); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .ring-amber-50 { --tw-ring-color: rgb(255 251 235 / var(--tw-ring-opacity, 1)); } .rounded { border-radius: 0.25rem; } .rounded-2xl { border-radius: 1rem; } .rounded-full { border-radius: 9999px; } .rounded-lg { border-radius: 0.5rem; } .rounded-md { border-radius: 0.375rem; } .rounded-sm { border-radius: 0.125rem; } .rounded-xl { border-radius: 0.75rem; } .scale-100 { --tw-scale-x: 1.0; --tw-scale-y: 1.0; } .select-none { user-select: none; } .shadow { box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); } .shadow-2xl { box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); } .shadow-\[0_8px_32px_8px_rgba\(220\,38\,38\,0\.25\)\,0_20px_60px_rgba\(127\,29\,29\,0\.45\)\,inset_0_2px_4px_rgba\(255\,255\,255\,0\.1\)\] { box-shadow: 0 8px 32px 8px rgba(220, 38, 38, 0.25), 0 20px 60px rgba(127, 29, 29, 0.45), inset 0 2px 4px rgba(255, 255, 255, 0.1); } .shadow-black\/40 { --tw-shadow-color: rgb(0 0 0 / 0.4); } .shadow-inner { box-shadow: inset 0 2px 4px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.06)); } .shadow-lg { box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); } .shadow-md { box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); } .shadow-sm { box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); } .shadow-xl { box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); } .shrink-0 { flex-shrink: 0; } @media (min-width: 640px) { .sm\:-mx-6 { margin-left: -1.5rem; margin-right: -1.5rem; } } @media (min-width: 640px) { .sm\:col-span-2 { grid-column: span 2 / span 2; } } @media (min-width: 640px) { .sm\:col-span-3 { grid-column: span 3 / span 3; } } @media (min-width: 640px) { .sm\:flex { display: flex; } } @media (min-width: 640px) { .sm\:flex-row { flex-direction: row; } } @media (min-width: 640px) { .sm\:gap-4 { gap: 1rem; } } @media (min-width: 640px) { .sm\:grid { display: grid; } } @media (min-width: 640px) { .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 640px) { .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @media (min-width: 640px) { .sm\:hidden { display: none; } } @media (min-width: 640px) { .sm\:inline { display: inline; } } @media (min-width: 640px) { .sm\:items-center { align-items: center; } } @media (min-width: 640px) { .sm\:justify-between { justify-content: space-between; } } @media (min-width: 640px) { .sm\:max-w-2xl { max-width: 42rem; } } @media (min-width: 640px) { .sm\:max-w-md { max-width: 28rem; } } @media (min-width: 640px) { .sm\:mt-0 { margin-top: 0px; } } @media (min-width: 640px) { .sm\:mx-auto { margin-left: auto; margin-right: auto; } } @media (min-width: 640px) { .sm\:p-6 { padding: 1.5rem; } } @media (min-width: 640px) { .sm\:p-8 { padding: 2rem; } } @media (min-width: 640px) { .sm\:px-10 { padding-left: 2.5rem; padding-right: 2.5rem; } } @media (min-width: 640px) { .sm\:px-12 { padding-left: 3rem; padding-right: 3rem; } } @media (min-width: 640px) { .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; } } @media (min-width: 640px) { .sm\:py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; } } @media (min-width: 640px) { .sm\:rounded-lg { border-radius: 0.5rem; } } @media (min-width: 640px) { .sm\:rounded-md { border-radius: 0.375rem; } } @media (min-width: 640px) { .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-bottom: calc(0px * var(--tw-space-y-reverse)); margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); } } @media (min-width: 640px) { .sm\:text-sm { font-size: 0.875rem; } } @media (min-width: 640px) { .sm\:w-full { width: 100%; } } .space-x-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.5rem * var(--tw-space-x-reverse)); margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-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-x-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1rem * var(--tw-space-x-reverse)); margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); } .space-x-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2rem * var(--tw-space-x-reverse)); margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); } .space-y-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); } .space-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); } .space-y-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); } .space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-bottom: calc(1rem * var(--tw-space-y-reverse)); margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); } .space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); } .space-y-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-bottom: calc(2rem * var(--tw-space-y-reverse)); margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); } .spin-direction-ccw {} .spin-direction-cw {} .spin-on-hover {} .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } .strokelittle {} .text-2xl { font-size: 1.5rem; } .text-3xl { font-size: 1.875rem; } .text-4xl { font-size: 2.25rem; } .text-\[10px\] { font-size: 10px; } .text-amber-200 { color: rgb(253 230 138 / var(--tw-text-opacity, 1)); } .text-amber-600 { color: rgb(217 119 6 / var(--tw-text-opacity, 1)); } .text-amber-700 { color: rgb(180 83 9 / var(--tw-text-opacity, 1)); } .text-base { font-size: 1rem; } .text-black { color: rgb(0 0 0 / var(--tw-text-opacity, 1)); } .text-blue-400 { color: rgb(96 165 250 / var(--tw-text-opacity, 1)); } .text-blue-600 { color: rgb(37 99 235 / var(--tw-text-opacity, 1)); } .text-blue-700 { color: rgb(29 78 216 / var(--tw-text-opacity, 1)); } .text-blue-800 { color: rgb(30 64 175 / var(--tw-text-opacity, 1)); } .text-center { text-align: center; } .text-cyan-100 { color: rgb(207 250 254 / var(--tw-text-opacity, 1)); } .text-cyan-200 { color: rgb(165 243 252 / var(--tw-text-opacity, 1)); } .text-cyan-300 { color: rgb(103 232 249 / var(--tw-text-opacity, 1)); } .text-cyan-400 { color: rgb(34 211 238 / var(--tw-text-opacity, 1)); } .text-emerald-100 { color: rgb(209 250 229 / var(--tw-text-opacity, 1)); } .text-emerald-200 { color: rgb(167 243 208 / var(--tw-text-opacity, 1)); } .text-emerald-600 { color: rgb(5 150 105 / var(--tw-text-opacity, 1)); } .text-emerald-700 { color: rgb(4 120 87 / var(--tw-text-opacity, 1)); } .text-gray-300 { color: rgb(209 213 219 / var(--tw-text-opacity, 1)); } .text-gray-400 { color: rgb(156 163 175 / var(--tw-text-opacity, 1)); } .text-gray-500 { color: rgb(107 114 128 / var(--tw-text-opacity, 1)); } .text-gray-600 { color: rgb(75 85 99 / var(--tw-text-opacity, 1)); } .text-gray-700 { color: rgb(55 65 81 / var(--tw-text-opacity, 1)); } .text-gray-800 { color: rgb(31 41 55 / var(--tw-text-opacity, 1)); } .text-gray-900 { color: rgb(17 24 39 / var(--tw-text-opacity, 1)); } .text-green-400 { color: rgb(74 222 128 / var(--tw-text-opacity, 1)); } .text-green-600 { color: rgb(22 163 74 / var(--tw-text-opacity, 1)); } .text-green-700 { color: rgb(21 128 61 / var(--tw-text-opacity, 1)); } .text-green-800 { color: rgb(22 101 52 / var(--tw-text-opacity, 1)); } .text-left { text-align: left; } .text-lg { font-size: 1.125rem; } .text-orange-700 { color: rgb(194 65 12 / var(--tw-text-opacity, 1)); } .text-orange-800 { color: rgb(154 52 18 / var(--tw-text-opacity, 1)); } .text-pink-200 { color: rgb(251 207 232 / var(--tw-text-opacity, 1)); } .text-pink-400 { color: rgb(244 114 182 / var(--tw-text-opacity, 1)); } .text-purple-400 { color: rgb(192 132 252 / var(--tw-text-opacity, 1)); } .text-red-400 { color: rgb(248 113 113 / var(--tw-text-opacity, 1)); } .text-red-500 { color: rgb(239 68 68 / var(--tw-text-opacity, 1)); } .text-red-600 { color: rgb(220 38 38 / var(--tw-text-opacity, 1)); } .text-red-700 { color: rgb(185 28 28 / var(--tw-text-opacity, 1)); } .text-red-800 { color: rgb(153 27 27 / var(--tw-text-opacity, 1)); } .text-right { text-align: right; } .text-rose-600 { color: rgb(225 29 72 / var(--tw-text-opacity, 1)); } .text-rose-700 { color: rgb(190 18 60 / var(--tw-text-opacity, 1)); } .text-slate-200 { color: rgb(226 232 240 / var(--tw-text-opacity, 1)); } .text-sm { font-size: 0.875rem; } .text-teal-300 { color: rgb(94 234 212 / var(--tw-text-opacity, 1)); } .text-teal-400 { color: rgb(45 212 191 / var(--tw-text-opacity, 1)); } .text-transparent { color: transparent; } .text-white { color: rgb(255 255 255 / var(--tw-text-opacity, 1)); } .text-xl { font-size: 1.25rem; } .text-xs { font-size: 0.75rem; } .text-yellow-400 { color: rgb(250 204 21 / var(--tw-text-opacity, 1)); } .text-yellow-700 { color: rgb(161 98 7 / var(--tw-text-opacity, 1)); } .text-yellow-800 { color: rgb(133 77 14 / var(--tw-text-opacity, 1)); } .theme-button {} .theme-calendar-cell {} .theme-calendar-close-button {} .theme-calendar-day {} .theme-calendar-form {} .theme-calendar-input {} .theme-calendar-label {} .theme-calendar-list-container {} .theme-calendar-list-empty {} .theme-calendar-list-frequency {} .theme-calendar-nav-button {} .theme-calendar-table {} .theme-calendar-title {} .theme-calendar-today {} .theme-container {} .theme-dialog-cancel-button {} .theme-dialog-container {} .theme-dialog-input {} .theme-dialog-overlay {} .theme-dialog-select {} .theme-dialog-submit-button {} .theme-dialog-title {} .theme-icon-button {} .theme-image-button {} .theme-image-container {} .theme-image-input {} .theme-image-overlay {} .theme-navbar {} .theme-navbar-accent {} .theme-navbar-button {} .theme-popup-button {} .theme-popup-container {} .theme-popup-overlay {} .theme-select {} .theme-text {} .tile-icon {} .to-black\/25 { --tw-gradient-to: rgb(0 0 0 / 0.25); } .to-blue-100 { --tw-gradient-to: rgb(219 234 254 / 1); } .to-cyan-500\/20 { --tw-gradient-to: rgb(6 182 212 / 0.2); } .to-cyan-900\/20 { --tw-gradient-to: rgb(22 78 99 / 0.2); } .to-emerald-400 { --tw-gradient-to: rgb(52 211 153 / 1); } .to-purple-500\/20 { --tw-gradient-to: rgb(168 85 247 / 0.2); } .to-red-400\/12 { --tw-gradient-to: rgb(248 113 113 / 0.12); } .to-red-800\/15 { --tw-gradient-to: rgb(153 27 27 / 0.15); } .to-red-800\/30 { --tw-gradient-to: rgb(153 27 27 / 0.3); } .to-red-900\/40 { --tw-gradient-to: rgb(127 29 29 / 0.4); } .to-sky-900\/20 { --tw-gradient-to: rgb(12 74 110 / 0.2); } .to-transparent { --tw-gradient-to: transparent; } .to-white\/20 { --tw-gradient-to: rgb(255 255 255 / 0.2); } .top-0 { top: 0px; } .top-1\/2 { top: 50%; } .top-3 { top: 0.75rem; } .top-6 { top: 1.5rem; } .top-\[18px\] { top: 18px; } .tracking-\[0\.15em\] { letter-spacing: 0.15em; } .tracking-\[0\.35em\] { letter-spacing: 0.35em; } .tracking-\[0\.3em\] { letter-spacing: 0.3em; } .tracking-\[0\.4em\] { letter-spacing: 0.4em; } .tracking-wide { letter-spacing: 0.025em; } .tracking-wider { letter-spacing: 0.05em; } .tracking-widest { letter-spacing: 0.1em; } .transform { transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) rotate(var(--tw-rotate, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1)); } .transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; } .transition-all { transition-property: all; } .transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; } .transition-opacity { transition-property: opacity; } .transition-shadow { transition-property: box-shadow; } .transition-transform { transition-property: transform; } .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .underline { text-decoration: underline; } .uppercase { text-transform: uppercase; } .via-cyan-400 { --tw-gradient-stops: var(--tw-gradient-from), rgb(34 211 238 / 1), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-cyan-500\/5 { --tw-gradient-stops: var(--tw-gradient-from), rgb(6 182 212 / 0.05), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-red-400\/8 { --tw-gradient-stops: var(--tw-gradient-from), rgb(248 113 113 / 0.08), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-red-500\/10 { --tw-gradient-stops: var(--tw-gradient-from), rgb(239 68 68 / 0.1), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-red-500\/5 { --tw-gradient-stops: var(--tw-gradient-from), rgb(239 68 68 / 0.05), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-red-600\/20 { --tw-gradient-stops: var(--tw-gradient-from), rgb(220 38 38 / 0.2), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-teal-500\/5 { --tw-gradient-stops: var(--tw-gradient-from), rgb(20 184 166 / 0.05), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-teal-900\/15 { --tw-gradient-stops: var(--tw-gradient-from), rgb(19 78 74 / 0.15), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-teal-900\/25 { --tw-gradient-stops: var(--tw-gradient-from), rgb(19 78 74 / 0.25), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-transparent { --tw-gradient-stops: var(--tw-gradient-from), transparent, var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .via-white\/10 { --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.1), var( --tw-gradient-to, rgb(255 255 255 / 0) ); } .visible { visibility: visible; } .w-0 { width: 0px; } .w-10 { width: 2.5rem; } .w-11 { width: 2.75rem; } .w-11\/12 { width: 91.666667%; } .w-12 { width: 3rem; } .w-16 { width: 4rem; } .w-2 { width: 0.5rem; } .w-2\.5 { width: 0.625rem; } .w-3 { width: 0.75rem; } .w-32 { width: 8rem; } .w-36 { width: 9rem; } .w-4 { width: 1rem; } .w-40 { width: 10rem; } .w-48 { width: 12rem; } .w-5 { width: 1.25rem; } .w-52 { width: 13rem; } .w-56 { width: 14rem; } .w-6 { width: 1.5rem; } .w-8 { width: 2rem; } .w-\[16px\] { width: 16px; } .w-\[200px\] { width: 200px; } .w-\[300px\] { width: 300px; } .w-\[450px\] { width: 450px; } .w-\[500px\] { width: 500px; } .w-\[560px\] { width: 560px; } .w-\[72px\] { width: 72px; } .w-full { width: 100%; } .whitespace-nowrap { white-space: nowrap; } .whitespace-pre-line { white-space: pre-line; } .whitespace-pre-wrap { white-space: pre-wrap; } .z-10 { z-index: 10; } .z-40 { z-index: 40; } .z-50 { z-index: 50; } .z-\[9999\] { z-index: 9999; } /* Accessibility focus rings */ *:focus-visible, button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid transparent; outline-offset: 2px; --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity, 1)); --tw-ring-offset-width: 2px; --tw-ring-offset-color: #fff; --tw-ring-width: 2px; --tw-ring-offset-shadow: 0 0 0 var(--tw-ring-offset-width) var( --tw-ring-offset-color ); --tw-ring-shadow: 0 0 0 calc( var(--tw-ring-offset-width) + var(--tw-ring-width) ) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } *:focus { outline: none; } body { background-image: linear-gradient( to bottom right, rgb(239 246 255), rgb(224 231 255) ); } @media (prefers-color-scheme: dark) { body { background-image: linear-gradient( to bottom right, rgb(17 24 39), rgb(31 41 55) ); } *:focus-visible, button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity, 1)); --tw-ring-offset-color: rgb(17 24 39); } } /* Enhanced Navbar theme classes */ .theme-navbar { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06); transition: all var(--transition-base); } .theme-navbar-text { color: var(--color-neutral-700); font-weight: 500; transition: color var(--transition-base); } .theme-navbar-text:hover { color: var(--color-primary); } .theme-navbar-accent { color: var(--color-primary); transition: all var(--transition-base); position: relative; } .theme-navbar-accent:hover { color: var(--color-primary-dark); transform: translateY(-1px); } .theme-navbar-button { background: linear-gradient( 135deg, var(--color-primary), var(--color-secondary) ); color: white; border: none; padding: var(--space-2) var(--space-4); border-radius: var(--radius-lg); font-weight: 600; transition: all var(--transition-base); position: relative; overflow: hidden; box-shadow: 0 2px 8px rgba(6, 182, 212, 0.3); } .theme-navbar-button::before { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.2), transparent ); transition: left var(--transition-slow); } .theme-navbar-button:hover::before { left: 100%; } .theme-navbar-button:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(6, 182, 212, 0.4); } @media (prefers-color-scheme: dark) { .theme-navbar { background: rgba(15, 23, 42, 0.95); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2); } .theme-navbar-text { color: var(--color-neutral-300); } .theme-navbar-text:hover { color: var(--color-primary-dark); } .theme-navbar-accent { color: var(--color-primary-dark); } .theme-navbar-accent:hover { color: var(--color-primary); } .theme-navbar-button { background: linear-gradient( 135deg, var(--color-primary-dark), var(--color-secondary-dark) ); box-shadow: 0 2px 8px rgba(34, 211, 238, 0.3); } .theme-navbar-button:hover { box-shadow: 0 4px 16px rgba(34, 211, 238, 0.4); } } /* Card theme classes */ .theme-card { background-color: rgb(255 255 255 / 0.9); box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); } .theme-card-input { background-color: rgb(255 255 255 / 0.8); color: rgb(17 24 39 / 1); border-color: rgb(209 213 219 / 1); } .theme-card-input:focus { --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1)); } .theme-card-button { background-color: rgb(59 130 246 / 0.8); color: rgb(255 255 255 / 1); } .theme-card-button:hover { background-color: rgb(37 99 235 / 0.8); } @media (prefers-color-scheme: dark) { .theme-card { background-color: rgb(31 41 55 / 0.9); box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); } .theme-card-input { background-color: rgb(55 65 81 / 0.8); color: rgb(255 255 255 / 1); border-color: rgb(75 85 99 / 1); } .theme-card-input:focus { --tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1)); } .theme-card-button { background-color: rgb(37 99 235 / 0.8); color: rgb(255 255 255 / 1); } .theme-card-button:hover { background-color: rgb(29 78 216 / 0.8); } } /* Dashboard theme classes */ .theme-container { background-color: rgb(255 255 255 / 0.95); color: rgb(17 24 39 / 1); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); } .theme-secondary-container { background-color: rgb(243 244 246 / 0.8); color: rgb(17 24 39 / 1); } .theme-border { border-color: rgb(229 231 235 / 1); } .theme-button-text { color: rgb(17 24 39 / 1); } .theme-icon-button { color: rgb(75 85 99 / 1); } .theme-icon-button:hover { color: rgb(31 41 55 / 1); } .theme-question-text { color: rgb(0 0 0 / 1); background-color: rgb(255 255 255 / 0.7); border-radius: 0.25rem; padding: 0.25rem 0.5rem; display: inline; } .theme-admin-button { background-color: rgb(59 130 246 / 1); color: rgb(255 255 255 / 1); } .theme-admin-button:hover { background-color: rgb(37 99 235 / 1); } .theme-button { background-color: rgb(59 130 246 / 1); color: rgb(255 255 255 / 1); } .theme-button:hover { background-color: rgb(37 99 235 / 1); } .theme-input { background-color: rgb(255 255 255 / 0.9); color: rgb(17 24 39 / 1); border-color: rgb(209 213 219 / 1); } .theme-text { color: rgb(17 24 39 / 1); } .theme-select { background-color: rgb(255 255 255 / 1); color: rgb(17 24 39 / 1); border-color: rgb(209 213 219 / 1); } @media (prefers-color-scheme: dark) { .theme-container { background-color: rgb(31 41 55 / 0.95); color: rgb(255 255 255 / 1); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); } .theme-secondary-container { background-color: rgb(55 65 81 / 0.8); color: rgb(255 255 255 / 1); } .theme-border { border-color: rgb(75 85 99 / 1); } .theme-button-text { color: rgb(255 255 255 / 1); } .theme-icon-button { color: rgb(209 213 219 / 1); } .theme-icon-button:hover { color: rgb(255 255 255 / 1); } .theme-question-text { color: rgb(255 255 255 / 1); background-color: rgb(31 41 55 / 0.7); border-radius: 0.25rem; padding: 0.25rem 0.5rem; display: inline; } .theme-admin-button { background-color: rgb(37 99 235 / 1); color: rgb(255 255 255 / 1); } .theme-admin-button:hover { background-color: rgb(29 78 216 / 1); } .theme-button { background-color: rgb(37 99 235 / 1); color: rgb(255 255 255 / 1); } .theme-button:hover { background-color: rgb(29 78 216 / 1); } .theme-input { background-color: rgb(55 65 81 / 0.9); color: rgb(255 255 255 / 1); border-color: rgb(75 85 99 / 1); } .theme-text { color: rgb(255 255 255 / 1); } .theme-select { background-color: rgb(55 65 81 / 1); color: rgb(255 255 255 / 1); border-color: rgb(75 85 99 / 1); } } /* Popup theme classes */ .theme-popup-overlay { position: fixed; inset: 0; background-color: rgb(0 0 0 / 0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; } .theme-popup-container { background-color: rgb(255 255 255 / 0.95); color: rgb(17 24 39 / 1); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); padding: 2rem; border-radius: 0.5rem; width: 300px; min-height: 100px; box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); } .theme-popup-button { background-color: rgb(59 130 246 / 1); color: rgb(255 255 255 / 1); padding: 0.5rem 1.5rem; border-radius: 0.375rem; cursor: pointer; font-size: 1rem; font-weight: 700; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-duration: 200ms; } .theme-popup-button:hover { background-color: rgb(37 99 235 / 1); } @media (prefers-color-scheme: dark) { .theme-popup-container { background-color: rgb(31 41 55 / 0.95); color: rgb(255 255 255 / 1); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); } .theme-popup-button { background-color: rgb(37 99 235 / 1); } .theme-popup-button:hover { background-color: rgb(29 78 216 / 1); } } /* Image generator overlay classes */ .theme-image-overlay { position: fixed; inset: 0; background-color: rgb(0 0 0 / 0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; } .theme-image-container { position: relative; background-color: rgb(255 255 255 / 0.95); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border-radius: 0.5rem; box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); overflow: hidden; } .theme-image-input { width: 100%; padding: 0.5rem; border-width: 1px; border-radius: 0.25rem; background-color: rgb(255 255 255 / 0.9); color: rgb(17 24 39 / 1); border-color: rgb(209 213 219 / 1); } .theme-image-button { padding-left: 0; padding-right: 0; padding-top: 0.5rem; padding-bottom: 0.5rem; border-radius: 0.375rem; background-color: rgb(59 130 246 / 1); color: rgb(255 255 255 / 1); font-weight: 500; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-duration: 200ms; white-space: nowrap; font-size: 0.95rem; width: 120px; text-align: center; } .theme-image-button:hover { background-color: rgb(37 99 235 / 1); } @media (prefers-color-scheme: dark) { .theme-image-container { background-color: rgb(31 41 55 / 0.95); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); } .theme-image-input { background-color: rgb(55 65 81 / 0.9); color: rgb(255 255 255 / 1); border-color: rgb(75 85 99 / 1); } .theme-image-button { background-color: rgb(37 99 235 / 1); } .theme-image-button:hover { background-color: rgb(29 78 216 / 1); } } /* Voice recorder overlay classes */ .theme-recorder-container { background-color: rgb(255 255 255 / 0.95); color: rgb(17 24 39 / 1); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); padding: 2rem; border-radius: 0.5rem; width: 364px; min-height: 220px; display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); } .theme-recorder-close { position: absolute; top: 0.75rem; right: 0.75rem; background-color: transparent; border: none; color: rgb(75 85 99 / 1); font-size: 1.5rem; cursor: pointer; z-index: 10; padding: 0; line-height: 1; } .theme-recorder-close:hover { color: rgb(17 24 39 / 1); } .theme-recorder-button { width: 100px; height: 3rem; border-radius: 9999px; font-size: 1rem; font-weight: 700; border: none; cursor: pointer; transition-property: all; transition-duration: 200ms; display: flex; align-items: center; justify-content: center; } .theme-recorder-start { background-color: rgb(59 130 246 / 1); color: rgb(255 255 255 / 1); } .theme-recorder-start:hover { background-color: rgb(37 99 235 / 1); } .theme-recorder-stop { background-color: rgb(239 68 68 / 1); color: rgb(255 255 255 / 1); } .theme-recorder-stop:hover { background-color: rgb(220 38 38 / 1); } .theme-recorder-save { background-color: rgb(34 197 94 / 1); color: rgb(255 255 255 / 1); } .theme-recorder-save:hover { background-color: rgb(22 163 74 / 1); } @media (prefers-color-scheme: dark) { .theme-recorder-container { background-color: rgb(31 41 55 / 0.95); color: rgb(255 255 255 / 1); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); } .theme-recorder-close { color: rgb(209 213 219 / 1); } .theme-recorder-close:hover { color: rgb(255 255 255 / 1); } .theme-recorder-start { background-color: rgb(37 99 235 / 1); } .theme-recorder-start:hover { background-color: rgb(29 78 216 / 1); } .theme-recorder-stop { background-color: rgb(220 38 38 / 1); } .theme-recorder-stop:hover { background-color: rgb(185 28 28 / 1); } .theme-recorder-save { background-color: rgb(22 163 74 / 1); } .theme-recorder-save:hover { background-color: rgb(21 128 61 / 1); } } /* Financial Calendar theme classes */ .theme-calendar-form { background-color: rgb(249 250 251 / 1); border-color: rgb(209 213 219 / 1); box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); } .theme-calendar-label { color: rgb(17 24 39 / 1); } .theme-calendar-input { background-color: rgb(255 255 255 / 1); color: rgb(17 24 39 / 1); border-color: rgb(209 213 219 / 1); } .theme-calendar-nav-button { background: rgba(0, 0, 0, 0.15); } .theme-calendar-title { color: rgb(17 24 39 / 1); } .theme-calendar-table { color: rgb(17 24 39 / 1); } .theme-calendar-cell { border-color: rgb(209 213 219 / 1); background-color: rgb(255 255 255 / 1); } .theme-calendar-day { color: rgb(17 24 39 / 1); } .theme-calendar-list-container { background-color: rgb(255 255 255 / 1); border-color: rgb(229 231 235 / 1); box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); } .theme-calendar-list-empty { color: rgb(107 114 128 / 1); } .theme-calendar-list-item { border-color: rgb(229 231 235 / 1); } .theme-calendar-list-frequency { color: rgb(107 114 128 / 1); } .theme-calendar-close-button { background-color: rgb(107 114 128 / 1); color: rgb(255 255 255 / 1); } .theme-calendar-close-button:hover { background-color: rgb(75 85 99 / 1); } .theme-calendar-today { border-width: 2px; border-color: rgb(59 130 246 / 1); background-color: rgb(239 246 255 / 1); } @media (prefers-color-scheme: dark) { .theme-calendar-form { background-color: rgb(31 41 55 / 1); border-color: rgb(75 85 99 / 1); box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); } .theme-calendar-label { color: rgb(255 255 255 / 1); } .theme-calendar-input { background-color: rgb(55 65 81 / 1); color: rgb(255 255 255 / 1); border-color: rgb(75 85 99 / 1); } .theme-calendar-nav-button { background: rgba(255, 255, 255, 0.15); } .theme-calendar-title { color: rgb(255 255 255 / 1); } .theme-calendar-table { color: rgb(255 255 255 / 1); } .theme-calendar-cell { border-color: rgb(75 85 99 / 1); background-color: rgb(31 41 55 / 1); } .theme-calendar-day { color: rgb(255 255 255 / 1); } .theme-calendar-list-container { background-color: rgb(31 41 55 / 1); border-color: rgb(75 85 99 / 1); box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); } .theme-calendar-list-empty { color: rgb(156 163 175 / 1); } .theme-calendar-list-item { border-color: rgb(75 85 99 / 1); } .theme-calendar-list-frequency { color: rgb(156 163 175 / 1); } .theme-calendar-close-button { background-color: rgb(75 85 99 / 1); color: rgb(255 255 255 / 1); } .theme-calendar-close-button:hover { background-color: rgb(107 114 128 / 1); } .theme-calendar-today { border-width: 2px; border-color: rgb(34 211 238 / 1); background-color: rgb(22 78 99 / 0.3); } } /* Dialog form theme classes */ .theme-dialog-overlay { position: fixed; inset: 0; display: flex; align-items: flex-start; justify-content: center; background-color: rgb(0 0 0 / 0.4); z-index: 50; } .theme-dialog-container { background-color: rgb(255 255 255 / 1); color: rgb(17 24 39 / 1); padding: 1rem; border-radius: 0.75rem; box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); width: 100%; max-width: 28rem; } .theme-dialog-title { font-size: 1.25rem; font-weight: 700; text-align: center; margin-bottom: 0.5rem; color: rgb(17 24 39 / 1); } .theme-dialog-input, .theme-dialog-select { width: 100%; border-width: 1px; border-radius: 0.375rem; padding: 0.5rem 0.75rem; font-size: 1rem; background-color: rgb(255 255 255 / 1); color: rgb(17 24 39 / 1); border-color: rgb(209 213 219 / 1); } .theme-dialog-cancel-button { background-color: rgb(229 231 235 / 1); color: rgb(31 41 55 / 1); padding: 0.5rem 1rem; border-radius: 0.375rem; font-weight: 600; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-duration: 200ms; } .theme-dialog-cancel-button:hover { background-color: rgb(209 213 219 / 1); } .theme-dialog-submit-button { background-color: rgb(22 163 74 / 1); color: rgb(255 255 255 / 1); padding: 0.5rem 1rem; border-radius: 0.375rem; font-weight: 600; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-duration: 200ms; } .theme-dialog-submit-button:hover { background-color: rgb(21 128 61 / 1); } @media (prefers-color-scheme: dark) { .theme-dialog-container { background-color: rgb(31 41 55 / 1); color: rgb(255 255 255 / 1); box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); } .theme-dialog-title { color: rgb(255 255 255 / 1); } .theme-dialog-input, .theme-dialog-select { border-color: rgb(75 85 99 / 1); background-color: rgb(55 65 81 / 1); color: rgb(255 255 255 / 1); } .theme-dialog-cancel-button { background-color: rgb(75 85 99 / 1); color: rgb(255 255 255 / 1); } .theme-dialog-cancel-button:hover { background-color: rgb(107 114 128 / 1); } .theme-dialog-submit-button { background-color: rgb(22 163 74 / 1); color: rgb(255 255 255 / 1); } .theme-dialog-submit-button:hover { background-color: rgb(34 197 94 / 1); } } /* --- Restyle additions --- */ :root { --theme-bg: #0b1020; --theme-bg-2: #0f172a; --theme-surface: rgba(12, 18, 36, 0.92); --theme-surface-2: rgba(16, 24, 46, 0.96); --theme-border: rgba(96, 125, 172, 0.4); --theme-text: #e6edf7; --theme-muted: #9aa7c0; --theme-accent: #2dd4bf; --theme-accent-2: #f59e0b; --theme-primary-fill: #1f6a9a; --theme-primary-fill-hover: #18557d; --calendar-input-bg: rgba(15, 23, 42, 0.65); --calendar-table-bg: rgba(10, 15, 30, 0.7); --calendar-cell-bg: rgba(8, 12, 24, 0.65); --calendar-cell-border: rgba(68, 82, 115, 0.35); --calendar-nav-bg: rgba(12, 18, 36, 0.9); --calendar-nav-fg: var(--theme-accent); --calendar-today-ring: rgba(45, 212, 191, 0.2); --calendar-close-bg: rgba(15, 23, 42, 0.8); --calendar-close-bg-hover: rgba(30, 41, 59, 0.92); --theme-success: #22c55e; --theme-danger: #ef4444; --theme-shadow: 0 20px 50px rgba(3, 6, 20, 0.45); --theme-radius: 14px; --theme-font-body: "Space Grotesk", "IBM Plex Sans", "Segoe UI", sans-serif; --theme-font-mono: "IBM Plex Mono", "SFMono-Regular", ui-monospace, Menlo, monospace; } :root[data-theme-mode="light"] { --theme-bg: #edf4fb; --theme-bg-2: #e5eef8; --theme-surface: rgba(255, 255, 255, 0.94); --theme-surface-2: rgba(255, 255, 255, 0.98); --theme-border: rgba(16, 35, 63, 0.16); --theme-text: #10233f; --theme-muted: #4f6382; --theme-accent: #0f6db7; --theme-accent-2: #0a5b9b; --theme-primary-fill: #0f6db7; --theme-primary-fill-hover: #0a5b9b; --calendar-input-bg: rgba(255, 255, 255, 0.98); --calendar-table-bg: rgba(255, 255, 255, 0.92); --calendar-cell-bg: rgba(255, 255, 255, 0.98); --calendar-cell-border: rgba(16, 35, 63, 0.16); --calendar-nav-bg: rgba(255, 255, 255, 0.96); --calendar-nav-fg: #0f6db7; --calendar-today-ring: rgba(15, 109, 183, 0.24); --calendar-close-bg: rgba(255, 255, 255, 0.96); --calendar-close-bg-hover: rgba(235, 243, 252, 0.98); --theme-success: #15803d; --theme-danger: #b91c1c; --theme-shadow: 0 20px 40px rgba(15, 38, 70, 0.15); } @media (prefers-color-scheme: light) { :root:not([data-theme-mode]) { --theme-bg: #edf4fb; --theme-bg-2: #e5eef8; --theme-surface: rgba(255, 255, 255, 0.94); --theme-surface-2: rgba(255, 255, 255, 0.98); --theme-border: rgba(16, 35, 63, 0.16); --theme-text: #10233f; --theme-muted: #4f6382; --theme-accent: #0f6db7; --theme-accent-2: #0a5b9b; --theme-primary-fill: #0f6db7; --theme-primary-fill-hover: #0a5b9b; --calendar-input-bg: rgba(255, 255, 255, 0.98); --calendar-table-bg: rgba(255, 255, 255, 0.92); --calendar-cell-bg: rgba(255, 255, 255, 0.98); --calendar-cell-border: rgba(16, 35, 63, 0.16); --calendar-nav-bg: rgba(255, 255, 255, 0.96); --calendar-nav-fg: #0f6db7; --calendar-today-ring: rgba(15, 109, 183, 0.24); --calendar-close-bg: rgba(255, 255, 255, 0.96); --calendar-close-bg-hover: rgba(235, 243, 252, 0.98); --theme-success: #15803d; --theme-danger: #b91c1c; --theme-shadow: 0 20px 40px rgba(15, 38, 70, 0.15); } } /* Modern Utility Classes */ .glass-card { background: var(--glass-bg); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid var(--glass-border); border-radius: var(--radius-xl); box-shadow: var(--glass-shadow); } .neumorphic { background: linear-gradient(145deg, #f0f0f0, #cacaca); box-shadow: 20px 20px 60px #bebebe, -20px -20px 60px #ffffff; border-radius: var(--radius-2xl); } .neumorphic-inset { background: linear-gradient(145deg, #cacaca, #f0f0f0); box-shadow: inset 20px 20px 60px #bebebe, inset -20px -20px 60px #ffffff; border-radius: var(--radius-2xl); } .gradient-border { position: relative; background: linear-gradient(var(--color-neutral-900), var(--color-neutral-900)) padding-box, linear-gradient( 45deg, var(--color-primary), var(--color-secondary), var(--color-accent) ) border-box; border: 2px solid transparent; border-radius: var(--radius-xl); } .shimmer-text { background: linear-gradient( 90deg, var(--color-neutral-600) 25%, var(--color-primary) 50%, var(--color-neutral-600) 75% ); background-size: 200% auto; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: shimmer 3s linear infinite; } .hover-lift { transition: transform var(--transition-base), box-shadow var(--transition-base); } .hover-lift:hover { transform: translateY(-4px); box-shadow: var(--shadow-xl); } .modern-button { position: relative; padding: var(--space-3) var(--space-6); font-weight: 600; border-radius: var(--radius-lg); transition: all var(--transition-base); overflow: hidden; } .modern-button::before { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.2), transparent ); transition: left var(--transition-slow); } .modern-button:hover::before { left: 100%; } .modern-input { background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: var(--radius-lg); padding: var(--space-3) var(--space-4); transition: all var(--transition-base); backdrop-filter: blur(8px); } .modern-input:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.1); } .typewriter { overflow: hidden; border-right: 2px solid var(--color-primary); white-space: nowrap; animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite; } @keyframes typing { from { width: 0; } to { width: 100%; } } @keyframes blink-caret { from, to { border-color: transparent; } 50% { border-color: var(--color-primary); } } .floating-badge { animation: float-gentle 3s ease-in-out infinite; background: linear-gradient( 135deg, var(--color-primary), var(--color-secondary) ); color: white; padding: var(--space-1) var(--space-3); border-radius: var(--radius-full); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; } .modern-card { background: rgba(255, 255, 255, 0.05); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--radius-2xl); padding: var(--space-6); transition: all var(--transition-base); position: relative; overflow: hidden; } .modern-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient( 90deg, transparent, var(--color-primary), transparent ); opacity: 0; transition: opacity var(--transition-base); } .modern-card:hover::before { opacity: 1; } .modern-card:hover { transform: translateY(-2px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); border-color: rgba(255, 255, 255, 0.2); } /* Responsive Typography */ .text-responsive-xs { font-size: clamp(0.625rem, 0.8rem + 0.1vw, 0.75rem); } .text-responsive-sm { font-size: clamp(0.75rem, 0.9rem + 0.1vw, 0.875rem); } .text-responsive-base { font-size: clamp(0.875rem, 1rem + 0.2vw, 1rem); } .text-responsive-lg { font-size: clamp(1rem, 1.2rem + 0.3vw, 1.125rem); } .text-responsive-xl { font-size: clamp(1.25rem, 1.5rem + 0.4vw, 1.25rem); } .text-responsive-2xl { font-size: clamp(1.5rem, 1.8rem + 0.5vw, 1.5rem); } .text-responsive-3xl { font-size: clamp(1.875rem, 2.2rem + 0.6vw, 1.875rem); } .text-responsive-4xl { font-size: clamp(2.25rem, 2.8rem + 0.8vw, 2.25rem); } .text-responsive-5xl { font-size: clamp(3rem, 3.5rem + 1vw, 3rem); } /* Enhanced Grid System */ .container-modern { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 var(--space-4); } @media (min-width: 640px) { .container-modern { padding: 0 var(--space-6); } } @media (min-width: 1024px) { .container-modern { padding: 0 var(--space-8); } } @media (min-width: 1280px) { .container-modern { padding: 0 var(--space-12); } } /* Modern Spacing Utilities */ .space-y-modern > * + * { margin-top: var(--space-4); } .space-x-modern > * + * { margin-left: var(--space-4); } /* Enhanced Animations Utility Classes */ .animate-on-scroll { opacity: 0; transform: translateY(30px); transition: all var(--transition-slow); } .animate-on-scroll.is-visible { opacity: 1; transform: translateY(0); } /* Dark Mode Enhancements */ @media (prefers-color-scheme: dark) { .neumorphic { background: linear-gradient(145deg, #2a2a2a, #1a1a1a); box-shadow: 20px 20px 60px #0a0a0a, -20px -20px 60px #3a3a3a; } .neumorphic-inset { background: linear-gradient(145deg, #1a1a1a, #2a2a2a); box-shadow: inset 20px 20px 60px #0a0a0a, inset -20px -20px 60px #3a3a3a; } .modern-input { background: rgba(0, 0, 0, 0.3); border-color: rgba(255, 255, 255, 0.1); } } /* Enhanced Typography System */ .heading-display { font-family: var(--font-display); font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; } .heading-1 { font-size: var(--text-5xl); font-weight: 700; line-height: 1.1; letter-spacing: -0.01em; } .heading-2 { font-size: var(--text-4xl); font-weight: 600; line-height: 1.2; letter-spacing: -0.005em; } .heading-3 { font-size: var(--text-3xl); font-weight: 600; line-height: 1.3; } .heading-4 { font-size: var(--text-2xl); font-weight: 600; line-height: 1.3; } .heading-5 { font-size: var(--text-xl); font-weight: 600; line-height: 1.4; } .heading-6 { font-size: var(--text-lg); font-weight: 600; line-height: 1.4; } .body-large { font-size: var(--text-lg); line-height: 1.6; font-weight: 400; } .body-base { font-size: var(--text-base); line-height: 1.6; font-weight: 400; } .body-small { font-size: var(--text-sm); line-height: 1.5; font-weight: 400; } .body-xs { font-size: var(--text-xs); line-height: 1.4; font-weight: 400; } .caption { font-size: var(--text-xs); line-height: 1.3; font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; } /* Text Effects */ .text-gradient-primary { background: linear-gradient( 135deg, var(--color-primary), var(--color-secondary) ); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; background-size: 200% 200%; animation: gradient-shift 3s ease infinite; } .text-gradient-accent { background: linear-gradient( 135deg, var(--color-accent), var(--color-accent-dark) ); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .text-glow { text-shadow: 0 0 20px currentColor; } .text-shadow-sm { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .text-shadow-md { text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } .text-shadow-lg { text-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); } @keyframes gradient-shift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .page-offset { margin-top: 50px; } .is-hidden { display: none !important; } .inline-form { display: inline; } .button-reset { background: none; border: none; padding: 0; } .back-button { position: fixed; bottom: 300px; left: 4px; background: none; border: none; z-index: 50; cursor: pointer; color: var(--theme-text); } .back-button:hover { color: var(--theme-accent); } .hero-grid { background-image: linear-gradient(rgba(107, 206, 220, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(107, 206, 220, 0.1) 1px, transparent 1px); background-size: 50px 50px; } .scanlines { animation: scan 3s linear infinite; background-size: 100% 3px; } /* Enhanced Modern Animations */ @keyframes scan { 0% { transform: translateY(-100%); opacity: 0; } 10% { opacity: 0.3; } 90% { opacity: 0.3; } 100% { transform: translateY(100vh); opacity: 0; } } @keyframes float-gentle { 0%, 100% { transform: translateY(0px) translateX(0px); } 25% { transform: translateY(-10px) translateX(5px); } 50% { transform: translateY(5px) translateX(-5px); } 75% { transform: translateY(-5px) translateX(10px); } } @keyframes glow-pulse { 0%, 100% { filter: brightness(1) drop-shadow(0 0 20px rgba(6, 182, 212, 0.3)); } 50% { filter: brightness(1.2) drop-shadow(0 0 30px rgba(6, 182, 212, 0.6)); } } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } @keyframes slide-in-fade { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } } @keyframes scale-in { 0% { opacity: 0; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1); } } @keyframes rotate-3d { 0% { transform: perspective(1000px) rotateY(0deg); } 100% { transform: perspective(1000px) rotateY(360deg); } } @keyframes bounce-in { 0% { opacity: 0; transform: scale(0.3); } 50% { opacity: 1; transform: scale(1.05); } 70% { transform: scale(0.9); } 100% { opacity: 1; transform: scale(1); } } /* Enhanced Spiral Animations */ @keyframes spiral-cyan { 0% { transform: translate(-300px, -300px) rotate(0deg) scale(0.4); opacity: 0; } 20% { opacity: 0.3; } 50% { transform: translate(150px, -150px) rotate(180deg) scale(0.8); opacity: 0.6; } 80% { opacity: 0.3; } 100% { transform: translate(0px, 0px) rotate(360deg) scale(1); opacity: 0; } } @keyframes spiral-purple { 0% { transform: translate(300px, -300px) rotate(0deg) scale(0.4); opacity: 0; } 25% { transform: translate(150px, -150px) rotate(-90deg) scale(0.7); opacity: 0.3; } 50% { transform: translate(0px, 0px) rotate(-180deg) scale(1.1); opacity: 0.5; } 75% { transform: translate(-150px, 150px) rotate(-270deg) scale(0.7); opacity: 0.3; } 100% { transform: translate(-300px, 300px) rotate(-360deg) scale(0.4); opacity: 0; } } @keyframes spiral-pink { 0% { transform: translate(0px, 300px) rotate(0deg) scale(0.4); opacity: 0; } 25% { transform: translate(0px, 150px) rotate(180deg) scale(0.7); opacity: 0.3; } 50% { transform: translate(0px, 0px) rotate(360deg) scale(1.1); opacity: 0.5; } 75% { transform: translate(0px, -150px) rotate(540deg) scale(0.7); opacity: 0.3; } 100% { transform: translate(0px, -300px) rotate(720deg) scale(0.4); opacity: 0; } } @keyframes float-teal-1 { 0% { transform: translate(-300px, -300px) rotate(0deg) scale(0.4); opacity: 0; } 25% { transform: translate(-150px, -150px) rotate(90deg) scale(0.7); opacity: 0.3; } 50% { transform: translate(0px, 0px) rotate(180deg) scale(1.1); opacity: 0.5; } 75% { transform: translate(150px, 150px) rotate(270deg) scale(0.7); opacity: 0.3; } 100% { transform: translate(300px, 300px) rotate(360deg) scale(0.4); opacity: 0; } } @keyframes float-teal-2 { 0% { transform: translate(300px, -300px) rotate(0deg) scale(0.4); opacity: 0; } 25% { transform: translate(150px, -150px) rotate(-90deg) scale(0.7); opacity: 0.3; } 50% { transform: translate(0px, 0px) rotate(-180deg) scale(1.1); opacity: 0.5; } 75% { transform: translate(-150px, 150px) rotate(-270deg) scale(0.7); opacity: 0.3; } 100% { transform: translate(-300px, 300px) rotate(-360deg) scale(0.4); opacity: 0; } } @keyframes float-teal-3 { 0% { transform: translate(0px, 300px) rotate(0deg) scale(0.4); opacity: 0; } 25% { transform: translate(0px, 150px) rotate(180deg) scale(0.7); opacity: 0.3; } 50% { transform: translate(0px, 0px) rotate(360deg) scale(1.1); opacity: 0.5; } 75% { transform: translate(0px, -150px) rotate(540deg) scale(0.7); opacity: 0.3; } 100% { transform: translate(0px, -300px) rotate(720deg) scale(0.4); opacity: 0; } } .animate-float-cyan { animation: spiral-cyan 12s ease-in-out infinite; top: 50%; left: 50%; margin-top: -24px; margin-left: -24px; } .animate-float-purple { animation: spiral-purple 15s ease-in-out infinite; top: 50%; left: 50%; margin-top: -28px; margin-left: -28px; } .animate-float-pink { animation: spiral-pink 18s ease-in-out infinite; top: 50%; left: 50%; margin-top: -26px; margin-left: -26px; } .animate-float-teal-1 { animation: float-teal-1 12s ease-in-out infinite; top: 50%; left: 50%; margin-top: -24px; margin-left: -24px; } .animate-float-teal-2 { animation: float-teal-2 15s ease-in-out infinite; top: 50%; left: 50%; margin-top: -28px; margin-left: -28px; } .animate-float-teal-3 { animation: float-teal-3 18s ease-in-out infinite; top: 50%; left: 50%; margin-top: -26px; margin-left: -26px; } .spin-on-hover { transition: transform 0.3s ease; animation-play-state: paused; } .spin-direction-cw:hover { animation: spin-cw 4s linear infinite; } .spin-direction-ccw:hover { animation: spin-ccw 4s linear infinite; } @keyframes spin-cw { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @keyframes spin-ccw { from { transform: rotate(0deg); } to { transform: rotate(-360deg); } } .guest-home { background: radial-gradient( circle at 25% 20%, rgba(236, 72, 153, 0.08), transparent 40% ), radial-gradient( circle at 80% 30%, rgba(56, 189, 248, 0.12), transparent 45% ), #05070f; color: var(--theme-text); } .member-home { background: radial-gradient( circle at 20% 15%, rgba(16, 185, 129, 0.12), transparent 40% ), radial-gradient( circle at 75% 25%, rgba(14, 116, 144, 0.1), transparent 45% ), #040a12; color: var(--theme-text); } .list-header { position: relative; margin-bottom: 1rem; min-height: 56px; } .list-title { position: absolute; top: 50%; left: 5%; transform: translateY(-50%); font-size: 1.5rem; margin: 0; } .list-action-button { position: absolute; top: 50%; right: 5%; transform: translateY(-50%); background-color: var(--theme-primary-fill); color: #fff; padding: 0.5rem 1.25rem; border-radius: 0.6rem; box-shadow: 0 10px 20px -8px rgba(15, 109, 183, 0.45); border: 1px solid rgba(15, 109, 183, 0.45); cursor: pointer; font-size: 1.1rem; } .list-action-button:hover { background-color: var(--theme-primary-fill-hover); } .list-action-button:disabled { opacity: 0.6; cursor: not-allowed; } .dialog-offset { padding-top: calc(50vh - 400px); } .calendar-nav-button { position: fixed; top: 152px; border: none; border-radius: 8px; z-index: 50; cursor: pointer; height: 320px; } .calendar-nav-button--prev { left: calc(12.5% - 80px); } .calendar-nav-button--next { right: calc(12.5% - 80px); } .calendar-placeholder-title { height: 32px; } .calendar-placeholder-body { height: 100px; } .calendar-route-shell { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding-top: 0; background: radial-gradient( circle at 12% 10%, rgba(15, 109, 183, 0.18), transparent 34% ), radial-gradient( circle at 86% 16%, rgba(45, 212, 191, 0.12), transparent 36% ), linear-gradient(180deg, var(--theme-bg) 0%, var(--theme-bg-2) 100%); } .calendar-route-content { width: 100%; max-width: 64rem; padding: 0 2rem; margin-top: 2rem; } .calendar-set-button { background-color: var(--theme-primary-fill); color: #fff; border: 1px solid rgba(15, 109, 183, 0.45); padding: 0.5rem 1rem; border-radius: 0.5rem; font-weight: 700; cursor: pointer; transition: filter 0.18s ease; } .calendar-set-button:hover { background-color: var(--theme-primary-fill-hover); } .calendar-change-positive, .calendar-balance-positive, .calendar-income-text { color: var(--theme-success); } .calendar-change-negative, .calendar-balance-negative, .calendar-obligation-text { color: var(--theme-danger); } .calendar-action-link { text-decoration: none; border-radius: 999px; font-weight: 700; padding: 0.75rem 1rem; text-align: center; box-shadow: var(--theme-shadow); border: 1px solid var(--theme-border); transition: transform 0.16s ease, filter 0.16s ease; } .calendar-action-link:hover { transform: translateY(-1px); filter: brightness(1.04); } .calendar-action-link--obligation { background: linear-gradient(135deg, #dc2626, #b91c1c); color: #fff; } .calendar-action-link--income { background: linear-gradient(135deg, #16a34a, #15803d); color: #fff; } .calendar-action-link--back { background-color: var(--theme-primary-fill); color: #fff; } /* Landlord/Tenant Route Theme Scope */ :is(.landlord-route, .tenant-route), :is(.landlord-route, .tenant-route).bg-gray-50 { background: radial-gradient( circle at 12% 10%, rgba(15, 109, 183, 0.14), transparent 34% ), radial-gradient( circle at 86% 16%, rgba(45, 212, 191, 0.09), transparent 36% ), linear-gradient(180deg, var(--theme-bg) 0%, var(--theme-bg-2) 100%); color: var(--theme-text); } :is(.landlord-route, .tenant-route) { --landlord-surface: var(--theme-surface); --landlord-surface-subtle: rgba(15, 23, 42, 0.44); --landlord-field-bg: rgba(15, 23, 42, 0.65); } :root[data-theme-mode="light"] :is(.landlord-route, .tenant-route) { --landlord-surface-subtle: rgba(15, 32, 56, 0.06); --landlord-field-bg: rgba(255, 255, 255, 0.95); } @media (prefers-color-scheme: light) { :root:not([data-theme-mode]) :is(.landlord-route, .tenant-route) { --landlord-surface-subtle: rgba(15, 32, 56, 0.06); --landlord-field-bg: rgba(255, 255, 255, 0.95); } } :is(.landlord-route, .tenant-route) .bg-gray-50 { background-color: transparent; } :is(.landlord-route, .tenant-route) .bg-white { background: var(--landlord-surface); color: var(--theme-text); } :is(.landlord-route, .tenant-route) .bg-gray-100 { background: var(--landlord-surface-subtle); } :is(.landlord-route, .tenant-route) .bg-gray-200 { background: rgba(148, 163, 184, 0.2); } :is(.landlord-route, .tenant-route) .bg-gray-300 { background: rgba(148, 163, 184, 0.3); } :is(.landlord-route, .tenant-route) .text-gray-900, :is(.landlord-route, .tenant-route) .text-gray-800 { color: var(--theme-text); } :is(.landlord-route, .tenant-route) .text-gray-700, :is(.landlord-route, .tenant-route) .text-gray-600, :is(.landlord-route, .tenant-route) .text-gray-500, :is(.landlord-route, .tenant-route) .text-gray-400, :is(.landlord-route, .tenant-route) .text-gray-300 { color: var(--theme-muted); } :is(.landlord-route, .tenant-route) .text-blue-500, :is(.landlord-route, .tenant-route) .text-blue-600 { color: var(--theme-accent); } :is(.landlord-route, .tenant-route) .text-blue-400 { color: var(--theme-accent); } :is(.landlord-route, .tenant-route) .text-blue-700, :is(.landlord-route, .tenant-route) .text-blue-800, :is(.landlord-route, .tenant-route) .text-blue-900 { color: var(--theme-accent-2); } :is(.landlord-route, .tenant-route) .hover\:text-blue-900:hover { color: var(--theme-accent-2); } :is(.landlord-route, .tenant-route) .border-gray-100, :is(.landlord-route, .tenant-route) .border-gray-200, :is(.landlord-route, .tenant-route) .border-gray-300, :is(.landlord-route, .tenant-route) .border-gray-400 { border-color: var(--theme-border); } :is(.landlord-route, .tenant-route) .hover\:border-gray-300:hover { border-color: var(--theme-border); } :is(.landlord-route, .tenant-route) .border-blue-600 { border-color: var(--theme-accent); } :is(.landlord-route, .tenant-route) .divide-gray-200 > :not([hidden]) ~ :not([hidden]) { border-color: var(--theme-border); } :is(.landlord-route, .tenant-route) .bg-blue-600 { background-color: var(--theme-primary-fill); } :is(.landlord-route, .tenant-route) .bg-blue-700 { background-color: var(--theme-primary-fill-hover); } :is(.landlord-route, .tenant-route) .hover\:bg-blue-700:hover { background-color: var(--theme-primary-fill-hover); filter: none; } :is(.landlord-route, .tenant-route) .border-blue-500 { border-color: var(--theme-accent); } :is(.landlord-route, .tenant-route) .bg-blue-50 { background: rgba(15, 109, 183, 0.12); } :is(.landlord-route, .tenant-route) .bg-blue-100 { background: rgba(15, 109, 183, 0.18); } :is(.landlord-route, .tenant-route) .focus\:border-blue-500:focus { border-color: var(--theme-accent); } :is(.landlord-route, .tenant-route) .focus\:border-gray-400:focus { border-color: var(--theme-border); } :is(.landlord-route, .tenant-route) .focus\:ring-blue-300:focus { --tw-ring-color: rgba(15, 109, 183, 0.35); } :is(.landlord-route, .tenant-route) .focus\:ring-blue-500:focus { --tw-ring-color: rgba(15, 109, 183, 0.45); } :is(.landlord-route, .tenant-route) .hover\:bg-gray-50:hover { background: var(--landlord-surface-subtle); } :is(.landlord-route, .tenant-route) .hover\:text-blue-500:hover { color: var(--theme-accent); } :is(.landlord-route, .tenant-route) .hover\:text-gray-700:hover { color: var(--theme-text); } :is(.landlord-route, .tenant-route) .shadow, :is(.landlord-route, .tenant-route) .shadow-sm, :is(.landlord-route, .tenant-route) .shadow-lg { box-shadow: var(--theme-shadow); } :is(.landlord-route, .tenant-route) input[type="text"], :is(.landlord-route, .tenant-route) input[type="email"], :is(.landlord-route, .tenant-route) input[type="number"], :is(.landlord-route, .tenant-route) input[type="date"], :is(.landlord-route, .tenant-route) input[type="tel"], :is(.landlord-route, .tenant-route) input[type="url"], :is(.landlord-route, .tenant-route) select, :is(.landlord-route, .tenant-route) textarea { background: var(--landlord-field-bg); color: var(--theme-text); border-color: var(--theme-border); } :is(.landlord-route, .tenant-route) input::placeholder, :is(.landlord-route, .tenant-route) textarea::placeholder { color: var(--theme-muted); } @media (max-width: 740px) { .calendar-route-content { padding: 0 1rem; } } .welcome-logo { left: 70%; } .navigation-backdrop { position: fixed; inset: 0; background: rgba(3, 7, 18, 0.6); backdrop-filter: blur(6px); z-index: 12010; } .navigation-details { position: relative; z-index: 12110; overflow: visible; } .navigation-details > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; } .navigation-details > summary::-webkit-details-marker { display: none; } .navigation-menu { position: absolute; top: calc(100% + 0.55rem); right: 0; z-index: 12020; width: min(18rem, calc(100vw - 1.25rem)); max-height: none; overflow: visible; padding: 0.4rem 0; box-shadow: var(--hub-nav-menu-shadow); border-radius: 0.8rem; border: 1px solid var(--hub-nav-menu-border); background-color: var(--hub-nav-menu-bg); } .navigation-menu-group { padding: 0 0.35rem; } .navigation-menu-group-label { margin: 0.35rem 0.4rem 0.25rem; font-size: 0.64rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--hub-nav-group-label); } .navigation-menu-separator { margin: 0.4rem 0.25rem 0.25rem; border-top: 1px solid var(--hub-nav-separator); } .navigation-menu-item { width: 100%; display: block; text-align: left; text-decoration: none; padding: 0.54rem 0.7rem; border: 0; background: transparent; border-radius: 0.55rem; font-size: 0.9rem; font-weight: 600; transition: background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease; } .navigation-menu-item--default { color: var(--hub-nav-item-default); } .navigation-menu-item--default:hover { color: var(--hub-nav-item-default-hover); background: var(--hub-nav-item-default-hover-bg); box-shadow: var(--hub-nav-item-default-hover-shadow); } .navigation-menu-item--login { color: rgb(74 222 128); } .navigation-menu-item--login:hover { color: rgb(134 239 172); background: rgba(74, 222, 128, 0.12); box-shadow: 0 0 18px rgba(74, 222, 128, 0.25); } .navigation-menu-item--logout { color: rgb(248 113 113); } .navigation-menu-item--logout:hover { color: rgb(252 165 165); background: rgba(248, 113, 113, 0.12); box-shadow: 0 0 18px rgba(248, 113, 113, 0.25); } .navigation-menu-item--disabled { color: var(--hub-nav-item-disabled); cursor: not-allowed; } .navigation-menu-empty { margin: 0.35rem 0.4rem 0.5rem; font-size: 0.85rem; color: var(--hub-nav-empty); } .hidden-file-input { display: none; } .photo-modal { border-radius: 12px; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1000; display: flex; flex-direction: column; overflow: hidden; } .photo-modal--light { background: #f8fafc; color: #0f172a; } .photo-modal--dark { background: rgba(0, 0, 0, 0.9); color: #e2e8f0; z-index: 1001; } .photo-modal__viewer { position: relative; overflow: auto; flex: 1; display: flex; justify-content: center; align-items: center; } .photo-modal__image-wrapper { position: relative; display: inline-block; min-width: fit-content; min-height: fit-content; } .photo-modal__image { display: block; margin: 0 auto; } .photo-modal__crop { position: absolute; left: var(--crop-x); top: var(--crop-y); width: var(--crop-size); height: var(--crop-size); border: 2px solid #00ffcc; cursor: move; } .photo-modal--light .photo-modal__crop { box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.25); } .photo-modal--dark .photo-modal__crop { box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.5); } .photo-modal__toolbar { height: 100px; display: flex; gap: 6px; align-items: center; justify-content: center; width: 100%; padding: 0 16px; flex-shrink: 0; } .photo-modal--dark .photo-modal__toolbar { background: rgba(255, 255, 255, 0.08); } .photo-modal__empty { text-align: center; color: #6b7280; } .photo-modal--dark .photo-modal__empty { color: #cbd5f5; } .photo-modal__empty-title { font-size: 18px; margin-bottom: 8px; } .photo-modal__empty-sub { font-size: 14px; color: #94a3b8; } .photo-toolbar-spacer { width: 16px; } .photo-button { border: 1px solid rgba(148, 163, 184, 0.4); background: #ffffff; color: #0f172a; border-radius: 6px; padding: 8px 16px; cursor: pointer; transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease; font-size: 14px; } .photo-button--square { width: 32px; height: 32px; padding: 0; font-size: 16px; } .photo-button--neutral { background: #ffffff; border-color: #d1d5db; } .photo-modal--dark .photo-button--neutral { background: #f8fafc; color: #0f172a; } .photo-button--ghost { background: transparent; border: 1px solid transparent; color: #0f172a; } .photo-modal--dark .photo-button--ghost { color: #e2e8f0; border-color: rgba(148, 163, 184, 0.35); } .photo-button--primary { background: #22c55e; color: #fff; border: none; } .photo-button--danger { background: #ef4444; color: #fff; border: none; } .photo-button:hover { background: #f1f5f9; } .photo-modal--dark .photo-button:hover { background: rgba(148, 163, 184, 0.2); } .photo-button--ghost:hover { background: rgba(15, 23, 42, 0.08); } .photo-modal--dark .photo-button--ghost:hover { background: rgba(148, 163, 184, 0.2); } .photo-button--primary:hover { background: #16a34a; } .photo-button--danger:hover { background: #dc2626; } .photo-button:active { transform: scale(0.97); } .photo-button:disabled { opacity: 0.55; cursor: not-allowed; transform: none; } .theme-navbar { background: rgba(8, 12, 24, 0.88); backdrop-filter: blur(12px); border-bottom: 1px solid var(--theme-border); color: var(--theme-text); } .theme-navbar-button { background: linear-gradient( 135deg, rgba(45, 212, 191, 0.2), rgba(59, 130, 246, 0.15) ); border: 1px solid rgba(45, 212, 191, 0.5); color: var(--theme-text); } .theme-navbar-button:hover { background: linear-gradient( 135deg, rgba(45, 212, 191, 0.35), rgba(59, 130, 246, 0.25) ); } .theme-navbar-accent { color: var(--theme-accent); } .theme-container { background: var(--theme-surface); border: 1px solid var(--theme-border); border-radius: var(--theme-radius); box-shadow: var(--theme-shadow); } .theme-text { color: var(--theme-text); } .theme-button { background: linear-gradient( 135deg, rgba(45, 212, 191, 0.2), rgba(59, 130, 246, 0.2) ); border: 1px solid var(--theme-border); color: var(--theme-text); } .theme-button:hover { filter: brightness(1.08); } .theme-select, .theme-dialog-input, .theme-dialog-select, .theme-calendar-input { background: var(--calendar-input-bg); border: 1px solid var(--theme-border); color: var(--theme-text); border-radius: 10px; padding: 0.6rem 0.75rem; } .theme-dialog-overlay { position: fixed; inset: 0; display: flex; align-items: flex-start; justify-content: center; background: rgba(2, 6, 23, 0.6); backdrop-filter: blur(8px); z-index: 60; } .theme-dialog-container { background: var(--theme-surface-2); border: 1px solid var(--theme-border); border-radius: 16px; padding: 24px; min-width: 320px; box-shadow: var(--theme-shadow); } .theme-dialog-title { color: var(--theme-text); font-size: 1.25rem; } .theme-dialog-submit-button { background: linear-gradient(135deg, #22c55e, #16a34a); border: none; color: #fff; } .theme-dialog-cancel-button { background: transparent; border: 1px solid var(--theme-border); color: var(--theme-text); } .theme-calendar-form { background: var(--theme-surface); border: 1px solid var(--theme-border); border-radius: var(--theme-radius); box-shadow: var(--theme-shadow); } .theme-calendar-label { color: var(--theme-muted); } .theme-calendar-title { color: var(--theme-text); } .theme-calendar-table { background: var(--calendar-table-bg); color: var(--theme-text); border: 1px solid var(--theme-border); border-radius: 12px; overflow: hidden; } .theme-calendar-cell { border: 1px solid var(--calendar-cell-border); background: var(--calendar-cell-bg); } .theme-calendar-day { color: var(--theme-text); } .theme-calendar-today { border: 2px solid var(--theme-accent); box-shadow: 0 0 0 2px var(--calendar-today-ring); } .theme-calendar-nav-button { background: var(--calendar-nav-bg); color: var(--calendar-nav-fg); border: 1px solid var(--theme-border); } .theme-calendar-close-button { background: var(--calendar-close-bg); border: 1px solid var(--theme-border); color: var(--theme-text); } .theme-calendar-close-button:hover { background: var(--calendar-close-bg-hover); } .theme-calendar-list-container { background: var(--theme-surface); border: 1px solid var(--theme-border); } .theme-calendar-list-empty, .theme-calendar-list-frequency { color: var(--theme-muted); } .theme-icon-button { color: var(--theme-muted); } .theme-image-overlay { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(3, 7, 18, 0.7); backdrop-filter: blur(8px); z-index: 70; } .theme-image-container { background-image: var(--image-url); background-size: cover; background-position: center; width: 512px; height: 512px; border-radius: 18px; border: 1px solid rgba(148, 163, 184, 0.4); box-shadow: var(--theme-shadow); position: relative; overflow: hidden; } .theme-image-input { background: rgba(15, 23, 42, 0.8); border: 1px solid rgba(148, 163, 184, 0.4); color: #fff; padding: 0.35rem 0.6rem; border-radius: 8px; } .theme-image-button { background: rgba(15, 23, 42, 0.8); border: 1px solid rgba(148, 163, 184, 0.4); color: #fff; border-radius: 999px; transition: transform 0.2s ease, background 0.2s ease; } .theme-image-button:hover { transform: translateY(-1px); background: rgba(30, 41, 59, 0.9); } .theme-popup-overlay { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(3, 7, 18, 0.6); backdrop-filter: blur(8px); z-index: 80; } .theme-popup-container { background: var(--theme-surface-2); border: 1px solid var(--theme-border); border-radius: 16px; padding: 24px; min-width: 280px; box-shadow: var(--theme-shadow); color: var(--theme-text); } .theme-popup-button { background: rgba(15, 23, 42, 0.8); border: 1px solid var(--theme-border); color: var(--theme-text); border-radius: 10px; padding: 0.5rem 1rem; } .service-unavailable { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%); color: #e2e8f0; } .service-unavailable__container { background: rgba(255, 255, 255, 0.08); border-radius: 16px; padding: 48px; max-width: 500px; text-align: center; border: 1px solid rgba(148, 163, 184, 0.35); box-shadow: var(--theme-shadow); } .service-unavailable__icon { font-size: 64px; margin-bottom: 24px; } .receipt { font-family: var(--theme-font-body); padding: 24px; color: var(--theme-text); background: radial-gradient( circle at 20% 20%, rgba(56, 189, 248, 0.12), transparent 40% ), var(--theme-bg); } .receipt-card { max-width: 560px; margin: 0 auto; border: 1px solid var(--theme-border); border-radius: 12px; padding: 24px; background: var(--theme-surface); box-shadow: var(--theme-shadow); } .receipt-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid rgba(148, 163, 184, 0.2); } .receipt-label { color: var(--theme-muted); } .receipt-value { font-weight: 600; } .onboarding-tenant-full { grid-column: 1 / -1; } .service-unavailable h1 { font-size: 24px; margin-bottom: 16px; } .service-unavailable p { color: #cbd5f5; line-height: 1.6; } .receipt h1 { font-size: 20px; margin: 0 0 12px; } /* --- Homepage Trust Refresh (2026-02) --- */ :root { --hub-font-body: "Manrope", "Sora", "Avenir Next", "Segoe UI", sans-serif; --hub-font-heading: "Sora", "Avenir Next Demi Bold", "Trebuchet MS", sans-serif; --hub-text: #ebf4ff; --hub-text-soft: #c2d5ee; --hub-bg-soft: #0d1c30; --hub-card: rgba(13, 25, 44, 0.86); --hub-card-border: rgba(124, 161, 212, 0.24); --hub-primary: #0f6db7; --hub-primary-strong: #0a5b9b; --hub-secondary: rgba(10, 22, 39, 0.84); --hub-shadow: 0 16px 36px rgba(2, 7, 17, 0.5); --hub-footer-color: #8da3bf; --hub-navbar-bg: rgba(8, 16, 30, 0.86); --hub-navbar-border: rgba(124, 161, 212, 0.22); --hub-chip-bg: rgba(12, 23, 40, 0.85); --hub-chip-border: rgba(124, 161, 212, 0.24); --hub-chip-text: #d2e3f8; --hub-profile-name: #dbe9f9; --hub-eyebrow: #9bb5d5; --hub-floating-bg: rgba(11, 23, 41, 0.86); --hub-floating-border: rgba(124, 161, 212, 0.28); --hub-floating-text: #d4e7ff; --hub-floating-shadow: 0 10px 24px rgba(2, 7, 17, 0.5); --hub-card-hover-shadow: 0 16px 30px rgba(2, 7, 17, 0.52); --hub-secondary-text: #d4e7ff; --hub-secondary-border: rgba(124, 161, 212, 0.3); --hub-nav-menu-bg: rgba(7, 12, 22, 0.95); --hub-nav-menu-border: rgba(124, 161, 212, 0.4); --hub-nav-menu-shadow: 0 16px 30px rgba(8, 18, 40, 0.45); --hub-nav-group-label: rgba(153, 246, 228, 0.7); --hub-nav-separator: rgba(124, 161, 212, 0.24); --hub-nav-item-default: #d2e3f8; --hub-nav-item-default-hover: #ebf4ff; --hub-nav-item-default-hover-bg: rgba(45, 212, 191, 0.14); --hub-nav-item-default-hover-shadow: 0 0 18px rgba(45, 212, 191, 0.22); --hub-nav-item-disabled: rgb(107 114 128); --hub-nav-empty: rgba(148, 163, 184, 0.95); --hub-badge-ready-bg: rgba(57, 204, 135, 0.2); --hub-badge-ready-text: #89edbf; --hub-badge-progress-bg: rgba(252, 189, 97, 0.18); --hub-badge-progress-text: #ffd198; --hub-badge-pending-bg: rgba(129, 156, 196, 0.2); --hub-badge-pending-text: #cfe1fb; --hub-landing-guest-bg: radial-gradient(circle at 5% 5%, rgba(15, 109, 183, 0.24), transparent 24%), radial-gradient( circle at 90% 12%, rgba(37, 167, 190, 0.2), transparent 28% ), linear-gradient(180deg, #091425 0%, #0d1c30 100%); --hub-landing-member-bg: radial-gradient( circle at 8% 10%, rgba(15, 109, 183, 0.24), transparent 24% ), radial-gradient( circle at 92% 18%, rgba(37, 167, 190, 0.2), transparent 32% ), linear-gradient(180deg, #081120 0%, #0d1a2f 100%); } :root[data-theme-mode="light"] { --hub-text: #10233f; --hub-text-soft: #445977; --hub-bg-soft: #f4f8fc; --hub-card: rgba(255, 255, 255, 0.88); --hub-card-border: rgba(16, 35, 63, 0.12); --hub-secondary: rgba(255, 255, 255, 0.85); --hub-shadow: 0 20px 45px rgba(15, 38, 70, 0.14); --hub-footer-color: #5b6f8d; --hub-navbar-bg: rgba(246, 250, 255, 0.9); --hub-navbar-border: rgba(16, 35, 63, 0.1); --hub-chip-bg: rgba(255, 255, 255, 0.85); --hub-chip-border: rgba(16, 35, 63, 0.14); --hub-chip-text: #1f3a5d; --hub-profile-name: #10233f; --hub-eyebrow: #4f6382; --hub-floating-bg: rgba(255, 255, 255, 0.9); --hub-floating-border: rgba(16, 35, 63, 0.18); --hub-floating-text: #1a375a; --hub-floating-shadow: 0 10px 24px rgba(15, 38, 70, 0.18); --hub-card-hover-shadow: 0 16px 30px rgba(15, 38, 70, 0.16); --hub-secondary-text: #1d3f65; --hub-secondary-border: rgba(16, 35, 63, 0.2); --hub-nav-menu-bg: rgba(255, 255, 255, 0.98); --hub-nav-menu-border: rgba(16, 35, 63, 0.16); --hub-nav-menu-shadow: 0 16px 30px rgba(15, 38, 70, 0.18); --hub-nav-group-label: #4f6382; --hub-nav-separator: rgba(16, 35, 63, 0.16); --hub-nav-item-default: #1f3a5d; --hub-nav-item-default-hover: #10233f; --hub-nav-item-default-hover-bg: rgba(15, 109, 183, 0.12); --hub-nav-item-default-hover-shadow: 0 0 18px rgba(15, 109, 183, 0.18); --hub-nav-item-disabled: rgb(148 163 184); --hub-nav-empty: #5d6f8a; --hub-badge-ready-bg: rgba(19, 164, 102, 0.14); --hub-badge-ready-text: #0f8050; --hub-badge-progress-bg: rgba(243, 156, 18, 0.15); --hub-badge-progress-text: #a86207; --hub-badge-pending-bg: rgba(15, 109, 183, 0.11); --hub-badge-pending-text: #0c4f87; --hub-landing-guest-bg: radial-gradient(circle at 5% 5%, rgba(15, 109, 183, 0.16), transparent 26%), radial-gradient( circle at 90% 12%, rgba(37, 167, 190, 0.12), transparent 30% ), linear-gradient(180deg, #f7fbff 0%, #ecf3fb 100%); --hub-landing-member-bg: radial-gradient( circle at 8% 10%, rgba(15, 109, 183, 0.16), transparent 25% ), radial-gradient( circle at 92% 18%, rgba(37, 167, 190, 0.11), transparent 34% ), linear-gradient(180deg, #f2f8fd 0%, #e9f1f9 100%); } @media (prefers-color-scheme: light) { :root:not([data-theme-mode]) { --hub-text: #10233f; --hub-text-soft: #445977; --hub-bg-soft: #f4f8fc; --hub-card: rgba(255, 255, 255, 0.88); --hub-card-border: rgba(16, 35, 63, 0.12); --hub-secondary: rgba(255, 255, 255, 0.85); --hub-shadow: 0 20px 45px rgba(15, 38, 70, 0.14); --hub-footer-color: #5b6f8d; --hub-navbar-bg: rgba(246, 250, 255, 0.9); --hub-navbar-border: rgba(16, 35, 63, 0.1); --hub-chip-bg: rgba(255, 255, 255, 0.85); --hub-chip-border: rgba(16, 35, 63, 0.14); --hub-chip-text: #1f3a5d; --hub-profile-name: #10233f; --hub-eyebrow: #4f6382; --hub-floating-bg: rgba(255, 255, 255, 0.9); --hub-floating-border: rgba(16, 35, 63, 0.18); --hub-floating-text: #1a375a; --hub-floating-shadow: 0 10px 24px rgba(15, 38, 70, 0.18); --hub-card-hover-shadow: 0 16px 30px rgba(15, 38, 70, 0.16); --hub-secondary-text: #1d3f65; --hub-secondary-border: rgba(16, 35, 63, 0.2); --hub-nav-menu-bg: rgba(255, 255, 255, 0.98); --hub-nav-menu-border: rgba(16, 35, 63, 0.16); --hub-nav-menu-shadow: 0 16px 30px rgba(15, 38, 70, 0.18); --hub-nav-group-label: #4f6382; --hub-nav-separator: rgba(16, 35, 63, 0.16); --hub-nav-item-default: #1f3a5d; --hub-nav-item-default-hover: #10233f; --hub-nav-item-default-hover-bg: rgba(15, 109, 183, 0.12); --hub-nav-item-default-hover-shadow: 0 0 18px rgba(15, 109, 183, 0.18); --hub-nav-item-disabled: rgb(148 163 184); --hub-nav-empty: #5d6f8a; --hub-badge-ready-bg: rgba(19, 164, 102, 0.14); --hub-badge-ready-text: #0f8050; --hub-badge-progress-bg: rgba(243, 156, 18, 0.15); --hub-badge-progress-text: #a86207; --hub-badge-pending-bg: rgba(15, 109, 183, 0.11); --hub-badge-pending-text: #0c4f87; --hub-landing-guest-bg: radial-gradient( circle at 5% 5%, rgba(15, 109, 183, 0.16), transparent 26% ), radial-gradient( circle at 90% 12%, rgba(37, 167, 190, 0.12), transparent 30% ), linear-gradient(180deg, #f7fbff 0%, #ecf3fb 100%); --hub-landing-member-bg: radial-gradient( circle at 8% 10%, rgba(15, 109, 183, 0.16), transparent 25% ), radial-gradient( circle at 92% 18%, rgba(37, 167, 190, 0.11), transparent 34% ), linear-gradient(180deg, #f2f8fd 0%, #e9f1f9 100%); } } .page-offset { margin-top: 64px; } .home-route { width: 100%; min-height: calc(100vh - 64px); display: flex; flex-direction: column; } .home-footer { width: 100%; text-align: center; padding: 1.1rem 1rem 1.25rem; font-size: 0.75rem; letter-spacing: 0.04em; color: var(--hub-footer-color); } .theme-navbar.welcomebar-shell { min-height: 64px; padding: 0 1rem; z-index: 12100; overflow: visible; border-bottom: 1px solid var(--hub-navbar-border); background: var(--hub-navbar-bg); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); } .welcomebar-inner { min-height: 64px; max-width: 1200px; margin: 0 auto; overflow: visible; display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; } .welcomebar-left { justify-self: start; } .welcomebar-center { display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem; } .welcomebar-right { position: relative; overflow: visible; justify-self: end; } .welcomebar-actions { position: relative; display: inline-flex; align-items: center; } .welcomebar-75-percent-from-left { position: absolute; left: 75%; transform: translateX(-50%); } .welcomebar-logo-link { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border-radius: 0.75rem; border: 1px solid var(--hub-chip-border); background: var(--hub-chip-bg); color: var(--hub-chip-text); box-shadow: 0 8px 20px rgba(16, 35, 63, 0.12); } .welcomebar-logo-image { width: 1.85rem; height: 1.85rem; object-fit: contain; } .welcomebar-lock { display: inline-flex; align-items: center; background: transparent !important; } .welcomebar-lock button { background: transparent !important; border: none !important; } .profile-pill { display: inline-flex; align-items: center; gap: 0.55rem; border-radius: 999px; border: 1px solid var(--hub-chip-border); background: var(--hub-chip-bg); color: var(--hub-chip-text); padding: 0.3rem 0.65rem 0.3rem 0.35rem; } .profile-avatar { width: 2rem; height: 2rem; border-radius: 999px; object-fit: cover; border: 1px solid rgba(16, 109, 183, 0.28); } .profile-avatar--fallback { background: linear-gradient(135deg, #0f6db7, #25a7be); color: #ffffff; display: inline-flex; align-items: center; justify-content: center; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.05em; } .profile-name { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--hub-profile-name); font-size: 0.87rem; font-weight: 600; } .welcomebar-signin { border-radius: 999px; padding: 0.48rem 0.95rem; font-size: 0.85rem; font-weight: 700; } .welcomebar-menu-button { display: inline-flex; align-items: center; justify-content: center; min-width: 2.65rem; min-height: 2.65rem; border: 1px solid var(--hub-chip-border); border-radius: 0.72rem; background: var(--hub-chip-bg); color: var(--hub-chip-text); padding: 0.42rem; } .welcomebar-theme-toggle { position: absolute; left: calc(100% + 0.7rem); top: 50%; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; min-width: 2.65rem; min-height: 2.65rem; border: 1px solid var(--hub-chip-border); border-radius: 0.72rem; background: var(--hub-chip-bg); color: var(--hub-chip-text); padding: 0.38rem 0.4rem; z-index: 12200; pointer-events: auto; transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease; } .welcomebar-theme-toggle:hover { filter: brightness(1.08); } .welcomebar-theme-icon { width: 1.2rem; height: 1.2rem; pointer-events: none; } .welcomebar-theme-icon--sun { display: inline-block; } .welcomebar-theme-icon--moon { display: none; } :root[data-theme-mode="light"] .welcomebar-theme-icon--sun { display: none; } :root[data-theme-mode="light"] .welcomebar-theme-icon--moon { display: inline-block; } .welcomebar-menu-icon { width: 1.4rem; height: 1.4rem; stroke-width: 2.25; flex-shrink: 0; } .landing-home { width: 100%; min-height: calc(100vh - 64px); padding: 1.5rem 1rem 2.75rem; position: relative; overflow: hidden; font-family: var(--hub-font-body); } .landing-home--guest { background: var(--hub-landing-guest-bg); } .landing-home--member { background: var(--hub-landing-member-bg); } .landing-grid-overlay { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(15, 109, 183, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(15, 109, 183, 0.06) 1px, transparent 1px); background-size: 46px 46px; } .landing-orb { position: absolute; pointer-events: none; border-radius: 999px; filter: blur(48px); opacity: 0.45; } .landing-orb--north { width: 12rem; height: 12rem; top: -2.5rem; left: 12%; background: rgba(18, 154, 179, 0.36); } .landing-orb--east { width: 14rem; height: 14rem; top: 2.25rem; right: -4rem; background: rgba(15, 109, 183, 0.32); } .landing-orb--south { width: 15rem; height: 15rem; bottom: -5rem; left: 35%; background: rgba(36, 120, 186, 0.25); } .landing-panel, .member-hero-panel { position: relative; z-index: 2; width: min(1080px, 100%); margin: 0 auto 1.2rem; background: var(--hub-card); border: 1px solid var(--hub-card-border); border-radius: 22px; box-shadow: var(--hub-shadow); padding: 1.6rem 1.4rem; } .landing-brand, .member-hero-main { display: flex; align-items: center; gap: 1rem; } .landing-logo, .member-logo { width: 4.2rem; height: 4.2rem; object-fit: contain; } .landing-eyebrow { margin: 0; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.73rem; color: var(--hub-eyebrow); font-weight: 700; } .landing-heading, .member-heading { margin: 0.85rem 0 0.65rem; color: var(--hub-text); font-family: var(--hub-font-heading); font-size: clamp(1.55rem, 1.05rem + 1.4vw, 2.25rem); line-height: 1.22; } .landing-copy, .member-copy { margin: 0; color: var(--hub-text-soft); max-width: 66ch; line-height: 1.58; font-size: 1rem; } .landing-cta-row { margin-top: 1.2rem; display: flex; flex-wrap: wrap; gap: 0.75rem; } .primary-action, .secondary-action { display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; padding: 0.68rem 1rem; font-size: 0.9rem; font-weight: 700; text-decoration: none; transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease; } .primary-action { background: linear-gradient(135deg, var(--hub-primary), #1c8cc5); border: 1px solid rgba(15, 109, 183, 0.2); color: #ffffff; box-shadow: 0 10px 20px rgba(15, 109, 183, 0.25); } .primary-action:hover { transform: translateY(-1px); background: linear-gradient(135deg, var(--hub-primary-strong), #1572a6); } .secondary-action { background: var(--hub-secondary); border: 1px solid var(--hub-secondary-border); color: var(--hub-secondary-text); } .secondary-action:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(15, 38, 70, 0.12); } .trust-points, .role-quickstart, .member-status-row, .member-hub-grid, .member-quick-grid { position: relative; z-index: 2; width: min(1080px, 100%); margin: 0 auto; } .trust-points { margin-top: 1.35rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.85rem; } .trust-point, .role-card, .hub-card, .quick-card, .status-chip { background: var(--hub-card); border: 1px solid var(--hub-card-border); border-radius: 16px; box-shadow: var(--hub-shadow); } .trust-point, .role-card { padding: 1rem; } .trust-point h2, .role-card h3, .hub-card h2, .quick-card h3 { margin: 0 0 0.35rem; color: var(--hub-text); font-family: var(--hub-font-heading); font-size: 1.03rem; } .trust-point p, .role-card p, .hub-card p, .quick-card p { margin: 0; color: var(--hub-text-soft); line-height: 1.52; font-size: 0.93rem; } .role-quickstart { margin-top: 0.95rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; } .role-card .secondary-action { margin-top: 0.85rem; } .member-status-row { margin-top: 1rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; } .status-chip { padding: 0.72rem 0.85rem; display: flex; flex-direction: column; gap: 0.28rem; } .status-chip span { color: var(--hub-eyebrow); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; } .status-chip strong { color: var(--hub-text); font-size: 0.95rem; } .member-hub-grid { margin-top: 1rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; } .hub-card { padding: 1.05rem; } .hub-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.65rem; margin-bottom: 0.55rem; } .hub-badge { border-radius: 999px; padding: 0.24rem 0.58rem; font-size: 0.67rem; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; } .hub-badge--ready { background: var(--hub-badge-ready-bg); color: var(--hub-badge-ready-text); } .hub-badge--progress { background: var(--hub-badge-progress-bg); color: var(--hub-badge-progress-text); } .hub-badge--pending { background: var(--hub-badge-pending-bg); color: var(--hub-badge-pending-text); } .hub-actions { margin-top: 0.92rem; display: flex; flex-wrap: wrap; gap: 0.55rem; } .member-quick-grid { margin-top: 0.95rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.8rem; } .quick-card { padding: 1rem; text-decoration: none; } .quick-card-link { transition: transform 150ms ease, box-shadow 150ms ease; } .quick-card-link:hover { transform: translateY(-2px); box-shadow: var(--hub-card-hover-shadow); } .floating-jump-stack { position: fixed; right: 0.75rem; z-index: 50; display: flex; flex-direction: column; gap: 0.42rem; } .floating-jump-stack--top { top: 4.75rem; } .floating-jump-stack--bottom { bottom: 1.15rem; } .floating-jump-button { border: 1px solid var(--hub-floating-border); background: var(--hub-floating-bg); color: var(--hub-floating-text); border-radius: 999px; padding: 0.46rem 0.8rem; font-size: 0.76rem; font-weight: 700; letter-spacing: 0.03em; box-shadow: var(--hub-floating-shadow); } @media (max-width: 1024px) { .trust-points { grid-template-columns: 1fr; } .member-hub-grid, .member-quick-grid, .member-status-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 740px) { .welcomebar-inner { grid-template-columns: auto 1fr auto; gap: 0.5rem; } .welcomebar-center { justify-content: flex-start; } .welcomebar-theme-toggle { position: static; transform: none; margin-left: 0.7rem; } .profile-name { display: none; } .landing-home { padding: 1rem 0.75rem 2.2rem; } .landing-panel, .member-hero-panel { padding: 1.15rem 1rem; border-radius: 16px; } .role-quickstart, .member-hub-grid, .member-quick-grid, .member-status-row { grid-template-columns: 1fr; } } @media (prefers-reduced-motion: reduce) { .primary-action, .secondary-action, .quick-card-link { transition: none; } }