@tailwind base; @tailwind components; @tailwind utilities; :root { --font-family: 'Inter', system-ui, -apple-system, sans-serif; --line-height: 1.6; --font-weight: 400; /* Neumorphic Dark Theme Palette */ --bg-color: #21242b; /* distinct dark gray-blue */ --text-main: #e0e5ec; --text-muted: #8b9bb4; --shadow-light: rgba(255, 255, 255, 0.06); --shadow-dark: rgba(0, 0, 0, 0.6); --accent-color: #3b82f6; /* Bright Blue */ color-scheme: dark; color: var(--text-main); background-color: var(--bg-color); } body { margin: 0; min-width: 320px; min-height: 100vh; font-family: var(--font-family); background: var(--bg-color); /* Neumorphism needs solid flat bg */ -webkit-font-smoothing: antialiased; } #root { width: 100%; min-height: 100vh; display: flex; flex-direction: column; align-items: center; } /* --- Neumorphic Utilities --- */ /* 1. The Panel (Extruded) */ .neu-panel { background: var(--bg-color); border-radius: 20px; box-shadow: 8px 8px 16px var(--shadow-dark), -8px -8px 16px var(--shadow-light); border: 1px solid rgba(255, 255, 255, 0.02); } /* 2. The Button (Extruded + Hover effect) */ .neu-btn { background: var(--bg-color); color: var(--accent-color); font-weight: 600; border: none; border-radius: 12px; box-shadow: 5px 5px 10px var(--shadow-dark), -5px -5px 10px var(--shadow-light); transition: all 0.2s ease; cursor: pointer; display: flex; align-items: center; justify-content: center; } .neu-btn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 6px 6px 12px var(--shadow-dark), -6px -6px 12px var(--shadow-light); filter: brightness(1.2); } .neu-btn:active:not(:disabled) { transform: translateY(0); box-shadow: inset 3px 3px 6px var(--shadow-dark), inset -3px -3px 6px var(--shadow-light); } .neu-btn-primary { background: var(--bg-color); color: var(--accent-color); font-weight: 700; border-radius: 16px; /* Extruded Soft UI Shadows */ box-shadow: 6px 6px 12px var(--shadow-dark), -6px -6px 12px var(--shadow-light); border: 1px solid rgba(255, 255, 255, 0.02); transition: all 0.2s ease-out; } .neu-btn-primary:hover:not(:disabled) { transform: translateY(-2px); color: #60a5fa; /* Lighter blue on hover */ box-shadow: 8px 8px 16px var(--shadow-dark), -8px -8px 16px var(--shadow-light); text-shadow: 0 0 8px rgba(59, 130, 246, 0.5); /* Glowing text */ } .neu-btn-primary:active:not(:disabled) { transform: translateY(0); box-shadow: inset 4px 4px 8px var(--shadow-dark), inset -4px -4px 8px var(--shadow-light); color: var(--accent-color); text-shadow: none; } .neu-btn-primary:disabled { opacity: 0.5; box-shadow: none; cursor: not-allowed; } /* 3. The Input (Inset) */ .neu-input { background: var(--bg-color); color: var(--text-main); border-radius: 16px; border: none; box-shadow: inset 4px 4px 8px var(--shadow-dark), inset -4px -4px 8px var(--shadow-light); transition: all 0.3s ease; } .neu-input:focus { outline: none; box-shadow: inset 6px 6px 12px var(--shadow-dark), inset -6px -6px 12px var(--shadow-light), 0 0 0 1px var(--accent-color); } /* 4. Tab Active State (Pressed) */ .neu-tab-active { box-shadow: inset 3px 3px 6px var(--shadow-dark), inset -3px -3px 6px var(--shadow-light); color: var(--accent-color); } /* Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #393d47; border-radius: 4px; }