6798 lines
141 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 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;
}
.list-header-center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: flex;
align-items: center;
gap: 0.5rem;
}
.list-header-center .list-action-button {
position: static;
transform: none;
}
.list-action-button--small {
padding: 0.35rem 0.85rem;
font-size: 0.9rem;
}
.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) input[type="password"],
: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;
}
}
/* Dashboard layout (landlord + tenant) – no Tailwind */
.dashboard-page {
min-height: 100vh;
background: var(--theme-bg);
}
.dashboard-header {
background: var(--theme-surface);
box-shadow: var(--theme-shadow);
}
.dashboard-header-inner {
max-width: 80rem;
margin-left: auto;
margin-right: auto;
padding-left: 1rem;
padding-right: 1rem;
}
@media (min-width: 640px) {
.dashboard-header-inner {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
}
@media (min-width: 1024px) {
.dashboard-header-inner {
padding-left: 2rem;
padding-right: 2rem;
}
}
.dashboard-header-row {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
gap: 1rem;
padding-top: 1.5rem;
padding-bottom: 1.5rem;
}
.dashboard-header-title {
font-size: 1.875rem;
font-weight: 700;
color: var(--theme-text);
}
.dashboard-header-subtitle {
margin-top: 0.25rem;
font-size: 0.875rem;
color: var(--theme-muted);
}
.dashboard-header-actions {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
align-items: stretch;
justify-content: flex-end;
}
.dashboard-btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 8.5rem;
flex: 0 0 8.5rem;
padding: 0.5rem 0.75rem;
border-width: 2px;
border-style: solid;
font-size: 0.875rem;
font-weight: 500;
border-radius: 0.375rem;
text-decoration: none;
white-space: nowrap;
box-sizing: border-box;
}
.dashboard-btn--primary {
border-color: transparent;
color: #fff;
background: var(--theme-primary-fill);
}
.dashboard-btn--primary:hover {
background: var(--theme-primary-fill-hover);
}
.dashboard-btn--secondary {
border-color: var(--theme-border);
color: var(--theme-text);
background: var(--theme-surface);
}
.dashboard-btn--secondary:hover {
background: var(--landlord-surface-subtle);
}
.dashboard-btn--messages-new {
border-color: var(--theme-accent);
color: var(--theme-text);
background: var(--theme-surface);
box-shadow: var(--theme-shadow);
outline: 2px solid rgba(15, 109, 183, 0.3);
outline-offset: 2px;
}
.dashboard-btn--messages-new:hover {
background: var(--landlord-surface-subtle);
}
.dashboard-content {
max-width: 80rem;
margin-left: auto;
margin-right: auto;
padding: 1rem 1rem 2rem;
}
@media (min-width: 640px) {
.dashboard-content {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
}
@media (min-width: 1024px) {
.dashboard-content {
padding-left: 2rem;
padding-right: 2rem;
}
}
.dashboard-stats-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1.25rem;
margin-bottom: 2rem;
}
@media (min-width: 640px) {
.dashboard-stats-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1024px) {
.dashboard-stats-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.dashboard-two-col {
display: grid;
grid-template-columns: 1fr;
gap: 2rem;
}
@media (min-width: 1024px) {
.dashboard-two-col {
grid-template-columns: repeat(2, 1fr);
}
}
.dashboard-card--full-width {
grid-column: 1 / -1;
}
.dashboard-table-wrap {
overflow-x: auto;
}
.dashboard-table {
width: 100%;
border-collapse: collapse;
}
.dashboard-table thead {
background: var(--landlord-surface-subtle);
}
.dashboard-table th,
.dashboard-table td {
padding: 0.75rem 1.5rem;
text-align: left;
font-size: 0.875rem;
}
.dashboard-table-th {
font-weight: 500;
color: var(--theme-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.dashboard-table-td {
color: var(--theme-text);
white-space: nowrap;
}
.dashboard-table tbody tr {
border-bottom: 1px solid var(--theme-border);
}
.dashboard-table tbody tr:last-child {
border-bottom: none;
}
.dashboard-table-empty {
text-align: center;
padding: 1rem 1.5rem;
color: var(--theme-muted);
}
.dashboard-card {
background: var(--theme-surface);
box-shadow: var(--theme-shadow);
border-radius: 0.5rem;
overflow: hidden;
}
.dashboard-card--no-overflow {
overflow: visible;
}
.dashboard-card-body {
padding: 1rem 1.25rem;
}
@media (min-width: 640px) {
.dashboard-card-body {
padding: 1.5rem;
}
}
.dashboard-stat-card {
display: flex;
align-items: center;
}
.dashboard-stat-icon-wrap {
flex-shrink: 0;
}
.dashboard-stat-icon {
width: 1.5rem;
height: 1.5rem;
color: var(--theme-muted);
}
.dashboard-stat-content {
margin-left: 1.25rem;
min-width: 0;
flex: 1;
}
.dashboard-stat-label {
font-size: 0.875rem;
font-weight: 500;
color: var(--theme-muted);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dashboard-stat-value {
font-size: 1.125rem;
font-weight: 500;
color: var(--theme-text);
}
.dashboard-section-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 1rem;
}
.dashboard-section-title {
font-size: 1.125rem;
line-height: 1.5;
font-weight: 500;
color: var(--theme-text);
}
.dashboard-section-title--mb {
margin-bottom: 1rem;
}
.dashboard-property-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1.5rem;
}
@media (min-width: 640px) {
.dashboard-property-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1024px) {
.dashboard-property-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.dashboard-section-link {
font-size: 0.875rem;
color: var(--theme-accent);
text-decoration: none;
}
.dashboard-section-link:hover {
color: var(--theme-accent-2);
}
.dashboard-list-spaced > * + * {
margin-top: 1rem;
}
.dashboard-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.75rem 1rem;
background: var(--landlord-surface-subtle);
border-radius: 0.5rem;
}
.dashboard-row--yellow {
background: rgba(254, 249, 195, 0.6);
}
.dashboard-row--blue {
background: rgba(219, 234, 254, 0.6);
}
.dashboard-row--red {
background: rgba(254, 226, 226, 0.6);
}
@media (prefers-color-scheme: dark) {
:is(.landlord-route, .tenant-route) .dashboard-row--yellow {
background: rgba(120, 100, 40, 0.5);
}
:is(.landlord-route, .tenant-route) .dashboard-row--blue {
background: rgba(30, 58, 100, 0.55);
}
:is(.landlord-route, .tenant-route) .dashboard-row--red {
background: rgba(100, 40, 40, 0.5);
}
}
:root[data-theme-mode="dark"]
:is(.landlord-route, .tenant-route)
.dashboard-row--yellow {
background: rgba(120, 100, 40, 0.5);
}
:root[data-theme-mode="dark"]
:is(.landlord-route, .tenant-route)
.dashboard-row--blue {
background: rgba(30, 58, 100, 0.55);
}
:root[data-theme-mode="dark"]
:is(.landlord-route, .tenant-route)
.dashboard-row--red {
background: rgba(100, 40, 40, 0.5);
}
.dashboard-row-label {
font-size: 0.875rem;
font-weight: 500;
color: var(--theme-text);
}
.dashboard-row-muted {
font-size: 0.875rem;
color: var(--theme-muted);
}
.dashboard-row-meta {
font-size: 0.75rem;
color: var(--theme-muted);
}
.dashboard-row-meta.capitalize,
.dashboard-row-muted.capitalize {
text-transform: capitalize;
}
.dashboard-approval-details {
min-width: 0;
}
.dashboard-approval-details .dashboard-row-muted + .dashboard-row-meta,
.dashboard-approval-details .dashboard-row-label + .dashboard-row-muted {
margin-top: 0.125rem;
}
.dashboard-approval-details .dashboard-row-muted + .dashboard-row-muted,
.dashboard-approval-details .dashboard-row-meta + .dashboard-row-muted {
margin-top: 0.375rem;
}
.dashboard-row-value {
font-size: 0.875rem;
font-weight: 500;
color: var(--theme-text);
}
.dashboard-row-sub {
font-size: 0.75rem;
color: var(--theme-muted);
}
.dashboard-empty {
text-align: center;
padding: 1rem 0;
}
.dashboard-empty-text {
font-size: 0.875rem;
color: var(--theme-muted);
}
.dashboard-empty-link {
font-size: 0.875rem;
color: var(--theme-accent);
text-decoration: none;
}
.dashboard-empty-link:hover {
color: var(--theme-accent-2);
}
.dashboard-message-row {
display: flex;
align-items: flex-start;
gap: 0.75rem;
}
.dashboard-message-avatar {
flex-shrink: 0;
width: 2rem;
height: 2rem;
border-radius: 9999px;
background: var(--theme-border);
display: flex;
align-items: center;
justify-content: center;
}
.dashboard-message-avatar-text {
font-size: 0.75rem;
font-weight: 500;
color: var(--theme-text);
}
.dashboard-message-body {
flex: 1;
min-width: 0;
}
.dashboard-message-from {
font-size: 0.875rem;
font-weight: 500;
color: var(--theme-text);
}
.dashboard-message-preview {
font-size: 0.875rem;
color: var(--theme-muted);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dashboard-message-meta {
font-size: 0.75rem;
color: var(--theme-muted);
}
.dashboard-message-dot {
flex-shrink: 0;
width: 0.5rem;
height: 0.5rem;
border-radius: 9999px;
background: var(--theme-accent);
}
.dashboard-badge {
display: inline-flex;
align-items: center;
padding: 0.125rem 0.5rem;
border-radius: 0.25rem;
font-size: 0.75rem;
font-weight: 500;
}
.dashboard-badge--green {
background: rgba(187, 247, 208, 0.8);
color: #166534;
}
.dashboard-badge--green:hover {
background: rgba(134, 239, 172, 0.9);
}
.dashboard-badge--red {
background: rgba(254, 226, 226, 0.8);
color: #b91c1c;
}
.dashboard-badge--red:hover {
background: rgba(252, 165, 165, 0.9);
}
.dashboard-badge--yellow {
background: rgba(254, 249, 195, 0.8);
color: #854d0e;
}
.dashboard-actions-inline {
display: flex;
gap: 0.5rem;
}
.dashboard-actions-inline .dashboard-badge {
cursor: pointer;
border: none;
}
.dashboard-quick-action {
display: block;
text-decoration: none;
color: inherit;
}
.dashboard-quick-action:hover .dashboard-card {
box-shadow: 0 20px 50px rgba(15, 38, 70, 0.2);
}
.dashboard-stat-icon--green {
color: var(--theme-success);
}
.dashboard-stat-icon--blue {
color: var(--theme-accent);
}
.dashboard-stat-icon--purple {
color: #7c3aed;
}
.dashboard-stat-icon--yellow {
color: #ca8a04;
}
.dashboard-badge--red-pill {
padding: 0.125rem 0.625rem;
border-radius: 9999px;
background: rgba(254, 226, 226, 0.8);
color: #b91c1c;
font-size: 0.75rem;
font-weight: 500;
}
.dashboard-error-page {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: var(--theme-bg);
}
.dashboard-error-inner {
text-align: center;
}
.dashboard-error-title {
font-size: 1.5rem;
font-weight: 700;
color: var(--theme-text);
margin-bottom: 1rem;
}
.dashboard-error-text {
color: var(--theme-muted);
}
.dashboard-error-link {
margin-top: 1rem;
display: inline-block;
color: var(--theme-accent);
text-decoration: none;
}
.dashboard-error-link:hover {
color: var(--theme-accent-2);
}
.dashboard-section-mb {
margin-bottom: 2rem;
}
/* Tenant notification center */
.dashboard-notification-header {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 1rem;
}
.dashboard-notification-badge {
display: inline-flex;
align-items: center;
border-radius: 9999px;
background: var(--landlord-surface-subtle);
padding: 0.25rem 0.75rem;
font-size: 0.75rem;
font-weight: 600;
color: var(--theme-muted);
}
.dashboard-notification-grid {
margin-top: 1.5rem;
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
}
@media (min-width: 1024px) {
.dashboard-notification-grid {
grid-template-columns: repeat(3, 1fr);
}
}
.dashboard-notification-card {
border-radius: 0.5rem;
border: 1px solid var(--theme-border);
padding: 1rem;
background: var(--theme-surface);
}
.dashboard-notification-card--highlight {
border-color: rgba(245, 158, 11, 0.5);
background: rgba(255, 251, 235, 0.8);
}
@media (prefers-color-scheme: dark) {
:is(.landlord-route, .tenant-route) .dashboard-notification-card--highlight {
border-color: rgba(180, 83, 9, 0.5);
background: rgba(69, 52, 24, 0.55);
}
:is(.landlord-route, .tenant-route) .dashboard-notification-icon--highlight {
background: rgba(69, 52, 24, 0.7);
color: var(--theme-accent);
}
:is(.landlord-route, .tenant-route) .dashboard-notification-count--highlight {
color: var(--theme-accent);
}
:is(.landlord-route, .tenant-route) .dashboard-notification-dot {
outline-color: rgba(69, 52, 24, 0.9);
}
}
:root[data-theme-mode="dark"]
:is(.landlord-route, .tenant-route)
.dashboard-notification-card--highlight {
border-color: rgba(180, 83, 9, 0.5);
background: rgba(69, 52, 24, 0.55);
}
:root[data-theme-mode="dark"]
:is(.landlord-route, .tenant-route)
.dashboard-notification-icon--highlight {
background: rgba(69, 52, 24, 0.7);
color: var(--theme-accent);
}
:root[data-theme-mode="dark"]
:is(.landlord-route, .tenant-route)
.dashboard-notification-count--highlight {
color: var(--theme-accent);
}
:root[data-theme-mode="dark"]
:is(.landlord-route, .tenant-route)
.dashboard-notification-dot {
outline-color: rgba(69, 52, 24, 0.9);
}
.dashboard-notification-card-inner {
display: flex;
align-items: center;
justify-content: space-between;
}
.dashboard-notification-icon-wrap {
display: flex;
align-items: center;
gap: 0.75rem;
}
.dashboard-notification-icon {
width: 2.5rem;
height: 2.5rem;
display: flex;
align-items: center;
justify-content: center;
border-radius: 9999px;
background: var(--landlord-surface-subtle);
color: var(--theme-muted);
position: relative;
}
.dashboard-notification-icon--highlight {
background: rgba(254, 243, 199, 0.9);
color: #b45309;
}
.dashboard-notification-icon--blue {
background: rgba(219, 234, 254, 0.8);
color: #1d4ed8;
}
.dashboard-notification-icon--green {
background: rgba(209, 250, 229, 0.8);
color: #047857;
}
.dashboard-notification-icon-svg {
width: 1.25rem;
height: 1.25rem;
}
.dashboard-notification-dot {
position: absolute;
right: -2px;
top: -2px;
width: 0.625rem;
height: 0.625rem;
border-radius: 9999px;
background: #f59e0b;
outline: 2px solid rgba(255, 251, 235, 0.9);
outline-offset: 0;
}
.dashboard-notification-count {
font-size: 0.875rem;
font-weight: 600;
}
.dashboard-notification-count--highlight {
color: #b45309;
}
.dashboard-notification-count--blue {
color: #1d4ed8;
}
.dashboard-notification-count--green {
color: #047857;
}
.dashboard-notification-footer {
margin-top: 0.75rem;
}
.dashboard-notification-footer a {
font-size: 0.75rem;
font-weight: 600;
color: var(--theme-accent);
text-decoration: none;
}
.dashboard-notification-footer a:hover {
color: var(--theme-accent-2);
}
.dashboard-notification-footer a.notification-link--blue {
color: #2563eb;
}
.dashboard-notification-footer a.notification-link--blue:hover {
color: #1d4ed8;
}
.dashboard-notification-footer a.notification-link--green {
color: #059669;
}
.dashboard-notification-footer a.notification-link--green:hover {
color: #047857;
}
.dashboard-invite-list {
margin-top: 0.75rem;
}
.dashboard-invite-list > * + * {
margin-top: 0.75rem;
}
.dashboard-invite-item {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 0.75rem;
border-radius: 0.5rem;
background: var(--landlord-surface-subtle);
padding: 0.75rem 1rem;
}
.dashboard-invite-item-label {
font-size: 0.875rem;
font-weight: 500;
color: var(--theme-text);
}
.dashboard-invite-item-address {
font-size: 0.75rem;
color: var(--theme-muted);
margin-top: 0.125rem;
}
.dashboard-invite-link {
font-size: 0.875rem;
font-weight: 600;
color: var(--theme-accent);
text-decoration: none;
flex-shrink: 0;
}
.dashboard-invite-link:hover {
color: var(--theme-accent-2);
}
.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-submit-button--danger {
background: var(--theme-danger, #b91c1c);
color: #fff;
}
.theme-dialog-submit-button--danger:hover {
filter: brightness(1.1);
}
.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;
}
}