html, body {
    height: 100%;
    width: 100%;
    overflow: hidden; 
    font-family: 'Segoe UI', sans-serif; 
    background-color: #f3f4f6;
    -webkit-user-select: none;
    user-select: none;
    touch-action: manipulation;
}

.hide { display: none !important; }
.show { display: flex !important; }

.page-container {
    width: 100%; 
    height: 100dvh; 
    display: flex;
    flex-direction: column;
    position: absolute; 
    top: 0; left: 0;
    background-color: #f3f4f6;
    animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }

.category-btn.active {
    background-color: #2563eb; color: white; border-color: #2563eb;
}

/* Filter Tanggal Active */
.filter-btn.active {
    background-color: #7e22ce; color: white; border-color: #7e22ce;
}

/* Filter Pembayaran Active */
.payment-filter-btn.active {
    background-color: #facc15; color: #581c87; border-color: #facc15; font-weight: 800;
}

.receipt-paper {
    background: white;
    position: relative;
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}

.receipt-dashed {
    border-bottom: 2px dashed #cbd5e1;
}

.calc-btn {
    background-color: white;
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    font-size: 1.25rem;
    font-weight: bold;
    color: #374151;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    transition: transform 0.1s;
}

.calc-btn:active {
    transform: scale(0.95);
    background-color: #f3f4f6;
}

.edit-mode-banner {
    background: #f59e0b;
    color: white;
    text-align: center;
    font-size: 0.7rem;
    padding: 4px;
    font-weight: bold;
    letter-spacing: 1px;
}

#cashier-cat-tabs, #admin-cat-tiles, #stock-cat-tiles {
    flex-wrap: wrap;
    overflow-x: hidden;
    justify-content: flex-start;
    gap: 0.5rem;
}

.category-btn {
    flex: 0 0 auto;
}

/* DARK MODE STYLES */
.dark { background-color: #1f2937; color: white; }
.dark .bg-white { background-color: #374151; }
.dark .text-gray-800 { color: white; }
.dark .text-gray-700 { color: #d1d5db; }
.dark .text-gray-600 { color: #9ca3af; }
.dark .text-gray-500 { color: #9ca3af; }
.dark .text-gray-400 { color: #9ca3af; }
.dark .bg-gray-100 { background-color: #4b5563; }
.dark .bg-gray-50 { background-color: #4b5563; }
.dark .bg-gray-800 { background-color: #111827; }
.dark .bg-gray-900 { background-color: #111827; }
.dark .bg-indigo-700 { background-color: #4338ca; }
.dark .bg-purple-800 { background-color: #6d28d9; }
.dark .border-gray-200 { border-color: #4b5563; }
.dark .border-gray-100 { border-color: #4b5563; }
.dark .text-blue-600 { color: #60a5fa; }
.dark .text-green-600 { color: #4ade80; }
.dark .text-red-600 { color: #f87171; }
.dark .text-yellow-400 { color: #fbbf24; }
.dark .text-teal-600 { color: #2dd4bf; }
.dark .text-orange-600 { color: #fb923c; }
.dark .text-purple-700 { color: #a78bfa; }
.dark .bg-blue-600 { background-color: #2563eb; }
.dark .bg-green-600 { background-color: #16a34a; }
.dark .bg-red-600 { background-color: #dc2626; }
.dark .bg-indigo-600 { background-color: #4f46e5; }
.dark .bg-purple-600 { background-color: #7c3aed; }
.dark .bg-teal-600 { background-color: #0d9488; }
.dark .bg-orange-600 { background-color: #ea580c; }
.dark .bg-blue-100 { background-color: #1e40af; }
.dark .bg-green-100 { background-color: #14532d; }
.dark .bg-red-100 { background-color: #7f1d1d; }
.dark .bg-red-50 { background-color: #7f1d1d; }
.dark .bg-yellow-50 { background-color: #713f12; }
.dark .bg-purple-100 { background-color: #6b21a8; }
.dark .bg-teal-50 { background-color: #134e4a; }
.dark .bg-blue-800 { background-color: #1e3a8a; }
.dark .bg-purple-700 { background-color: #6d28d9; }
.dark .border-red-200 { border-color: #991b1b; }
.dark .border-green-500 { border-color: #16a34a; }
.dark .border-red-500 { border-color: #dc2626; }
.dark .border-purple-500 { border-color: #7c3aed; }
.dark .border-blue-200 { border-color: #1e40af; }
.dark .border-teal-200 { border-color: #134e4a; }
.dark .border-purple-300 { border-color: #6b21a8; }
.dark .border-purple-600 { border-color: #7c3aed; }
.dark .text-purple-200 { color: #ddd6fe; }
.dark .text-orange-500 { color: #fb923c; }
.dark .text-green-700 { color: #4ade80; }
.dark .text-red-700 { color: #f87171; }
.dark .text-yellow-600 { color: #fbbf24; }
.dark .text-blue-700 { color: #60a5fa; }
.dark .text-teal-700 { color: #2dd4bf; }
.dark .receipt-paper { background: #374151; color: white; }
        
.auth-input { 
    width: 100%; padding: 12px; margin-bottom: 10px; 
    border: 1px solid #ddd; border-radius: 8px; outline: none; 
}
.auth-input:focus { border-color: #2563eb; }
/* Efek Kedip untuk Status Offline */
@keyframes blinker {
  50% { opacity: 0.5; }
}

.blink {
  animation: blinker 1s linear infinite;
}
