:root { --primary: #0f172a; --primary-light: #1e293b; --accent: #3b82f6; --bg: #f8fafc; --surface: #ffffff; --text: #334155; --text-muted: #64748b; --border: #e2e8f0; --radius: 4px; --sidebar-width: 250px; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background-color: var(--bg); color: var(--text); margin: 0; overflow-x: hidden; } [dir="rtl"] { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } /* Sidebar */ .sidebar { width: var(--sidebar-width); height: 100vh; background-color: var(--primary); color: white; position: fixed; top: 0; transition: all 0.3s; z-index: 1000; } [dir="ltr"] .sidebar { left: 0; } [dir="rtl"] .sidebar { right: 0; } .sidebar-header { padding: 1.5rem; font-size: 1.25rem; font-weight: 700; border-bottom: 1px solid var(--primary-light); } .nav-link { color: #cbd5e1; padding: 0.75rem 1.5rem; display: flex; align-items: center; text-decoration: none; transition: background 0.2s; } .nav-link:hover, .nav-link.active { background-color: var(--primary-light); color: white; } .nav-link i { width: 20px; margin-right: 10px; } .nav-section-title { font-size: 0.7rem; font-weight: 600; color: #64748b !important; letter-spacing: 0.05em; cursor: pointer; display: flex; justify-content: space-between; align-items: center; } .nav-section-title:hover { color: #94a3b8 !important; } .nav-section-title i.bi-chevron-down { transition: transform 0.2s; font-size: 0.6rem; } .nav-section-title.collapsed i.bi-chevron-down { transform: rotate(-90deg); } /* POS Styles */ .pos-container { display: flex; height: calc(100vh - 120px); gap: 20px; } .pos-products { flex: 1; overflow-y: auto; padding-right: 10px; } .pos-cart { width: 400px; background: #fff; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); display: flex; flex-direction: column; height: 100%; } .product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 15px; } .product-card { background: #fff; border-radius: 10px; border: 1px solid #edf2f7; padding: 15px; text-align: center; cursor: pointer; transition: all 0.2s; display: flex; flex-direction: column; justify-content: space-between; } .product-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.05); border-color: #3b82f6; } .product-card img { width: 100%; height: 120px; object-fit: contain; margin-bottom: 10px; border-radius: 8px; } .product-card .price { font-weight: 700; color: #2d3748; } .cart-items { flex: 1; overflow-y: auto; padding: 20px; } .cart-item { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px solid #edf2f7; } .cart-total { padding: 20px; background: #f8fafc; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; } .qty-controls { display: flex; align-items: center; gap: 10px; } .qty-btn { width: 24px; height: 24px; border-radius: 50%; border: 1px solid #e2e8f0; background: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 14px; } .qty-btn:hover { background: #edf2f7; } [dir="rtl"] .nav-link i { margin-right: 0; margin-left: 10px; } /* Main Content */ .main-content { margin-left: var(--sidebar-width); padding: 2rem; transition: all 0.3s; } [dir="rtl"] .main-content { margin-left: 0; margin-right: var(--sidebar-width); } .topbar { background: var(--surface); border-bottom: 1px solid var(--border); padding: 1rem 2rem; margin: -2rem -2rem 2rem -2rem; display: flex; justify-content: space-between; align-items: center; } /* UI Components */ .card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 1px 2px rgba(0,0,0,0.05); } .btn-primary { background-color: var(--accent); border: none; border-radius: var(--radius); } .table { color: var(--text); } .table th { font-weight: 600; color: var(--text-muted); text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.05em; border-bottom: 2px solid var(--border); } /* RTL Adjustments */ [dir="rtl"] .ms-auto { margin-right: auto !important; margin-left: 0 !important; } [dir="rtl"] .text-end { text-align: left !important; } [dir="rtl"] .text-start { text-align: right !important; } /* Thermal Receipt Styles */ .thermal-receipt { width: 80mm; margin: 0 auto; padding: 10px; font-family: 'Courier New', Courier, monospace; font-size: 12px; line-height: 1.2; background: #fff; color: #000; } .thermal-receipt .center { text-align: center; } .thermal-receipt .separator { border-top: 1px dashed #000; margin: 10px 0; } .thermal-receipt table { width: 100%; } .thermal-receipt table th { text-align: left; border-bottom: 1px dashed #000; font-size: 10px; } .thermal-receipt table td { padding: 5px 0; font-size: 10px; } .thermal-receipt .total-row { font-weight: bold; font-size: 14px; } @media print { .thermal-receipt-print { width: 80mm !important; margin: 0 !important; padding: 5mm !important; } body.printing-receipt * { visibility: hidden; } body.printing-receipt .thermal-receipt-print, body.printing-receipt .thermal-receipt-print * { visibility: visible; } body.printing-receipt .thermal-receipt-print { position: absolute; left: 0; top: 0; } }