/* Custom styles for UmkhoAI Spaza ERP */ /* Safe area for bottom nav on iOS */ .safe-bottom { padding-bottom: env(safe-area-inset-bottom, 0); } /* Nav button states */ .nav-btn { color: #6b7280; } .nav-btn:hover { background-color: #fff8ed; color: #fb7e10; } .nav-btn.active { background-color: #fff8ed; color: #fb7e10; font-weight: 600; } /* Mobile nav states */ .mob-nav-btn { color: #9ca3af; transition: color 0.2s; } .mob-nav-btn.active { color: #fb7e10; } /* P&L period button active state */ .pnl-period-btn.active { background-color: #fb7e10 !important; color: white !important; } /* Smooth page transitions */ .page-section { animation: fadeSlideIn 0.3s ease-out; } @keyframes fadeSlideIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } /* Modal animation */ #modal-add-item > div:last-child, #modal-add-supplier > div:last-child, #modal-pay-supplier > div:last-child, #modal-add-staff > div:last-child, #modal-pay-staff > div:last-child, #modal-restock > div:last-child { animation: slideUp 0.3s ease-out; } @keyframes slideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } /* Toast animation */ .toast-item { animation: toastIn 0.3s ease-out; } @keyframes toastIn { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } } /* Chart bar animation */ .chart-bar { animation: barGrow 0.5s ease-out; transform-origin: bottom; } @keyframes barGrow { from { transform: scaleY(0); } to { transform: scaleY(1); } } /* Custom scrollbar */ ::-webkit-scrollbar { width: 4px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #e5e7eb; border-radius: 4px; } /* Focus styles */ input:focus, select:focus { outline: none; } /* Voice pulse animation */ @keyframes voicePulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); } 50% { box-shadow: 0 0 0 20px rgba(239, 68, 68, 0); } } #voice-btn.listening { animation: voicePulse 1.5s infinite; background-color: #fef2f2; } /* Stock level indicators */ .stock-high { color: #16a34a; } .stock-medium { color: #fb7e10; } .stock-low { color: #ef4444; } .stock-out { color: #6b7280; } /* Category emojis */ .cat-food::before { content: '๐Ÿž'; margin-right: 4px; } .cat-drinks::before { content: '๐Ÿฅค'; margin-right: 4px; } .cat-snacks::before { content: '๐Ÿฌ'; margin-right: 4px; } .cat-household::before { content: '๐Ÿงน'; margin-right: 4px; } .cat-personal::before { content: '๐Ÿงด'; margin-right: 4px; } .cat-other::before { content: '๐Ÿ“ฆ'; margin-right: 4px; } /* Print styles */ @media print { #sidebar, nav, header, .safe-bottom { display: none !important; } main { padding: 0 !important; } } /* Smooth transitions for interactive elements */ button, a, input, select { transition: all 0.15s ease; }