:root { font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; line-height: 1.5; font-weight: 400; color-scheme: light; color: #213547; background-color: #f5f5f5; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; /* Mobile-specific variables */ --safe-area-inset-top: env(safe-area-inset-top, 0); --safe-area-inset-bottom: env(safe-area-inset-bottom, 0); --safe-area-inset-left: env(safe-area-inset-left, 0); --safe-area-inset-right: env(safe-area-inset-right, 0); --tab-bar-height: 60px; } * { box-sizing: border-box; } body { margin: 0; display: flex; min-width: 320px; min-height: 100vh; overscroll-behavior: none; -webkit-overflow-scrolling: touch; touch-action: pan-y; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } #app { width: 100%; height: 100vh; height: 100dvh; position: relative; } a { font-weight: 500; color: #007bff; text-decoration: inherit; } a:hover { text-decoration: underline; } button { font-family: inherit; font-size: inherit; -webkit-appearance: none; appearance: none; touch-action: manipulation; } h1, h2, h3, h4, h5, h6 { font-weight: 600; line-height: 1.2; } /* Utility classes */ .text-center { text-align: center; } .mt-1 { margin-top: 0.5rem; } .mt-2 { margin-top: 1rem; } .mt-3 { margin-top: 1.5rem; } .mt-4 { margin-top: 2rem; } .mb-1 { margin-bottom: 0.5rem; } .mb-2 { margin-bottom: 1rem; } .mb-3 { margin-bottom: 1.5rem; } .mb-4 { margin-bottom: 2rem; } .p-1 { padding: 0.5rem; } .p-2 { padding: 1rem; } .p-3 { padding: 1.5rem; } .p-4 { padding: 2rem; } /* Flex utilities */ .flex { display: flex; } .flex-col { flex-direction: column; } .flex-1 { flex: 1; } .items-center { align-items: center; } .justify-center { justify-content: center; } .justify-between { justify-content: space-between; } .gap-1 { gap: 0.5rem; } .gap-2 { gap: 1rem; } .gap-3 { gap: 1.5rem; } /* Mobile-first responsive styles */ @media (max-width: 768px) { .hide-mobile { display: none !important; } } @media (min-width: 769px) { .hide-desktop { display: none !important; } } /* Prevent text selection on UI elements */ .no-select { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } /* iOS-style tap highlight */ .tappable { -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1); cursor: pointer; } /* Smooth transitions for interactive elements */ .interactive { transition: transform 0.1s ease-out, opacity 0.1s ease-out; } .interactive:active { transform: scale(0.95); opacity: 0.8; } /* Hide scrollbar for Chrome, Safari and Opera */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: #888; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #555; } /* Mobile scrollbar styles */ @media (max-width: 768px) { ::-webkit-scrollbar { width: 4px; } }