@import "tailwindcss"; @theme { --font-headline: 'Manrope', sans-serif; --font-body: 'Inter', system-ui, sans-serif; } /* ============ BASE ============ */ html, body, #root { margin: 0; padding: 0; width: 100%; font-family: var(--font-body); background: #f0f5f8; color: #0a1f2e; -webkit-font-smoothing: antialiased; } body { overflow-x: hidden; } h1, h2, h3, .font-headline { font-family: var(--font-headline); } .material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; display: inline-block; line-height: 1; } /* ============ SCROLLBAR ============ */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #8faab8; border-radius: 3px; } /* ============ HELPERS ============ */ .bg-ember { background: linear-gradient(135deg, #082D43, #0e4a6f); } @keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in { animation: fadeIn 0.3s ease-out; } .skeleton { background: linear-gradient(90deg, #e4eef3 25%, #d4e2ea 50%, #e4eef3 75%); background-size: 200% 100%; animation: shimmer 1.5s infinite; border-radius: 16px; } @keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } @keyframes spin { to { transform: rotate(360deg); } } .sidebar-label { flex: 1; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* ============ TABLET RESPONSIVE (≤1024px) ============ */ /* --- Sidebar collapse to icon-only on tablet --- */ @media (max-width: 1024px) { .sidebar-full { width: 84px !important; padding: 16px 8px !important; } .sidebar-full .sidebar-brand-text { display: none; } .sidebar-full nav button { flex-direction: column !important; justify-content: center !important; padding: 12px 4px !important; gap: 6px !important; text-align: center !important; } .sidebar-full .sidebar-label { display: block !important; font-size: 10px !important; text-align: center !important; line-height: 1.2 !important; letter-spacing: 0 !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; } .sidebar-full .sidebar-logout span:last-child { display: block !important; font-size: 10px !important; letter-spacing: 0 !important; } .sidebar-full .sidebar-logout { flex-direction: column !important; justify-content: center !important; padding: 12px 4px !important; gap: 6px !important; } .admin-main { margin-left: 84px !important; } .admin-content { padding: 20px 16px !important; } } /* --- POS layout: stack on small tablet --- */ @media (max-width: 900px) { .pos-cart-panel { width: 280px !important; } } @media (max-width: 768px) { /* POS: Full-width tabs mode */ .pos-layout { flex-direction: column !important; height: 100% !important; min-height: 100% !important; overflow: hidden !important; } .pos-product-panel { flex: 55 !important; height: auto !important; } .pos-cart-panel { flex: 45 !important; height: auto !important; width: 100% !important; border-left: none !important; border-top: 1px solid rgba(8,45,67,0.08) !important; } /* Admin content */ .admin-main { margin-left: 0 !important; padding-bottom: 90px !important; } .sidebar-full { width: 100% !important; height: 70px !important; flex-direction: row !important; top: auto !important; bottom: 0 !important; padding: 8px !important; border-right: none !important; border-top: 1px solid rgba(8,45,67,0.1) !important; box-shadow: 0 -4px 20px rgba(0,0,0,0.05) !important; z-index: 1000 !important; height: auto !important; min-height: 70px !important; } .sidebar-full > div { display: none !important; /* Hide brand and logout */ } .sidebar-full nav { flex-direction: row !important; overflow-x: auto !important; gap: 8px !important; width: 100% !important; align-items: stretch !important; padding-bottom: 4px !important; } .sidebar-full nav button { padding: 8px 4px !important; min-width: 70px !important; flex: 1 !important; flex-direction: column !important; justify-content: flex-start !important; align-items: center !important; gap: 6px !important; } .sidebar-full nav button .sidebar-label { display: block !important; font-size: 10px !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.1 !important; text-align: center !important; letter-spacing: 0 !important; } .admin-content { padding: 16px 12px !important; } /* Navbar Header */ .navbar-header { padding: 12px 16px !important; } .nav-date { display: none !important; } .navbar-profile-name { font-size: 13px !important; max-width: 120px; overflow: hidden; text-overflow: ellipsis; } .back-btn { top: 20px !important; left: 20px !important; padding: 8px 12px !important; font-size: 12px !important; } .login-card { padding: 32px 24px !important; } /* Modals full-width on mobile */ .modal-responsive { max-width: 100% !important; margin: 0 !important; border-radius: 20px 20px 0 0 !important; position: fixed !important; bottom: 0 !important; left: 0 !important; right: 0 !important; } /* Grids */ /* Grids */ .responsive-grid-3 { grid-template-columns: repeat(2, 1fr) !important; } .responsive-grid-4 { grid-template-columns: repeat(2, 1fr) !important; } } /* ============ LANDING PAGE RESPONSIVE ============ */ @media (max-width: 1024px) { .landing-hero { gap: 30px !important; padding: 60px 5% 80px 5% !important; } .landing-hero h2 { font-size: 38px !important; } .landing-features-grid { grid-template-columns: repeat(2, 1fr) !important; } } @media (max-width: 768px) { .landing-header { padding: 16px 5% !important; } .landing-logo { height: 28px !important; } .landing-nav { gap: 12px !important; } .landing-nav-link { font-size: 13px !important; } .landing-nav-btn { padding: 8px 14px !important; font-size: 13px !important; } .landing-hero { grid-template-columns: 1fr !important; padding: 40px 5% 60px 5% !important; gap: 40px !important; text-align: center; } .landing-hero h2 { font-size: 32px !important; } .landing-features-grid { grid-template-columns: 1fr !important; gap: 20px !important; } .landing-features-section { padding: 60px 5% !important; } .landing-features-title { font-size: 28px !important; } .landing-footer { padding: 30px 5% !important; } } @media (max-width: 380px) { .landing-header { flex-direction: column !important; gap: 12px !important; padding: 16px !important; } } /* Sticky Table Columns */ .table-row-hover { background-color: #ffffff; transition: background-color 0.15s; } .table-row-hover:hover { background-color: #ffedeb; } .sticky-col { position: -webkit-sticky; position: sticky; left: 0; z-index: 5; background-color: inherit; border-right: 1px solid rgba(78,33,32,0.06); } .sticky-header { position: -webkit-sticky; position: sticky; left: 0; z-index: 10; background-color: #ffffff; border-right: 1px solid rgba(78,33,32,0.06); }