@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 !important; border: none !important; } .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 !important; border: none !important; } .touch-none { -webkit-user-drag: none; user-drag: none; -webkit-touch-callout: none; }