Spaces:
Running
Running
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| /* Z-Index System - Organized hierarchy */ | |
| :root { | |
| --z-base: 0; | |
| --z-dropdown: 100; | |
| --z-sticky: 200; | |
| --z-fixed: 300; | |
| --z-modal-backdrop: 400; | |
| --z-modal: 500; | |
| --z-popover: 600; | |
| --z-tooltip: 700; | |
| --z-notification: 800; | |
| --z-critical: 9999; | |
| } | |
| /* Z-Index utility classes */ | |
| .z-base { z-index: var(--z-base); } | |
| .z-dropdown { z-index: var(--z-dropdown); } | |
| .z-sticky { z-index: var(--z-sticky); } | |
| .z-fixed { z-index: var(--z-fixed); } | |
| .z-modal-backdrop { z-index: var(--z-modal-backdrop); } | |
| .z-modal { z-index: var(--z-modal); } | |
| .z-popover { z-index: var(--z-popover); } | |
| .z-tooltip { z-index: var(--z-tooltip); } | |
| .z-notification { z-index: var(--z-notification); } | |
| .z-critical { z-index: var(--z-critical); } | |
| @keyframes solve-indeterminate { | |
| 0% { | |
| transform: translateX(-100%); | |
| } | |
| 100% { | |
| transform: translateX(400%); | |
| } | |
| } | |
| @keyframes transfer-glow { | |
| 0%, | |
| 100% { | |
| box-shadow: | |
| 0 0 16px rgba(34, 211, 238, 0.35), | |
| 0 0 36px rgba(16, 185, 129, 0.2), | |
| inset 0 0 14px rgba(6, 182, 212, 0.12); | |
| } | |
| 50% { | |
| box-shadow: | |
| 0 0 28px rgba(34, 211, 238, 0.55), | |
| 0 0 52px rgba(139, 92, 246, 0.18), | |
| inset 0 0 22px rgba(16, 185, 129, 0.18); | |
| } | |
| } | |
| /* βββ Global Smoothness βββ */ | |
| html { | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| * { -webkit-tap-highlight-color: transparent; } | |
| /* Tabular nums: all digits same width β no layout shift on number changes */ | |
| .tabular-nums { font-variant-numeric: tabular-nums; } | |
| /* Skeleton loading pulse */ | |
| @keyframes skeleton-pulse { | |
| 0%, 100% { opacity: 0.12; } | |
| 50% { opacity: 0.28; } | |
| } | |
| .skeleton-pulse { | |
| animation: skeleton-pulse 1.8s ease-in-out infinite; | |
| } | |
| /* Slim themed scrollbar */ | |
| .custom-scrollbar::-webkit-scrollbar { width: 5px; } | |
| .custom-scrollbar::-webkit-scrollbar-track { background: transparent; } | |
| .custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(100,116,139,0.25); border-radius: 999px; } | |
| .custom-scrollbar::-webkit-scrollbar-thumb:hover { background: rgba(100,116,139,0.45); } | |
| /* Hide scrollbar utility */ | |
| .hide-scrollbar { | |
| -ms-overflow-style: none; | |
| scrollbar-width: none; | |
| } | |
| .hide-scrollbar::-webkit-scrollbar { | |
| display: none; | |
| } | |
| /* Accessibility improvements */ | |
| *:focus-visible { | |
| outline: 2px solid #10b981; | |
| outline-offset: 2px; | |
| } | |
| button:focus-visible, [role="button"]:focus-visible { | |
| outline: 2px solid #10b981; | |
| outline-offset: 2px; | |
| border-radius: 4px; | |
| } | |
| input:focus-visible, select:focus-visible, textarea:focus-visible { | |
| outline: 2px solid #10b981; | |
| outline-offset: 2px; | |
| } | |
| /* Skip to content link for accessibility */ | |
| .skip-to-content { | |
| position: absolute; | |
| top: -40px; | |
| left: 0; | |
| background: #10b981; | |
| color: white; | |
| padding: 8px; | |
| z-index: 100; | |
| transition: top 0.3s; | |
| } | |
| .skip-to-content:focus { | |
| top: 0; | |
| } | |
| /* Mobile-specific improvements */ | |
| @media (max-width: 768px) { | |
| * { | |
| -webkit-tap-highlight-color: transparent; | |
| } | |
| /* Better touch targets */ | |
| button, [role="button"], input, select, textarea { | |
| min-height: 44px; | |
| min-width: 44px; | |
| } | |
| /* Small buttons exception */ | |
| .small-touch-target { | |
| min-height: 32px; | |
| min-width: 32px; | |
| } | |
| /* Better active states for touch */ | |
| button:active, [role="button"]:active { | |
| transform: scale(0.95); | |
| opacity: 0.8; | |
| } | |
| /* Improve touch feedback */ | |
| .touch-feedback { | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .touch-feedback::after { | |
| content: ''; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 0; | |
| height: 0; | |
| background: rgba(255, 255, 255, 0.3); | |
| border-radius: 50%; | |
| transform: translate(-50%, -50%); | |
| transition: width 0.3s, height 0.3s; | |
| } | |
| .touch-feedback:active::after { | |
| width: 200px; | |
| height: 200px; | |
| } | |
| /* Better scroll momentum */ | |
| * { | |
| -webkit-overflow-scrolling: touch; | |
| } | |
| /* Prevent text selection on touch */ | |
| .no-select { | |
| -webkit-user-select: none; | |
| -moz-user-select: none; | |
| -ms-user-select: none; | |
| user-select: none; | |
| } | |
| } | |
| .fullscreen-pitch:fullscreen { | |
| background: #0a3a2a; | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: flex-start; | |
| overflow-y: auto; | |
| height: 100vh; | |
| width: 100vw; | |
| border-radius: 0 ; | |
| border: none ; | |
| } | |
| .fullscreen-pitch:-webkit-full-screen { | |
| background: #0a3a2a; | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: flex-start; | |
| overflow-y: auto; | |
| height: 100vh; | |
| width: 100vw; | |
| border-radius: 0 ; | |
| border: none ; | |
| } | |
| .touch-none { | |
| -webkit-user-drag: none; | |
| user-drag: none; | |
| -webkit-touch-callout: none; | |
| } |