/* Custom styles for Home Pantry Tracker */ :root { --primary-color: #2c3e50; --accent-color: #27ae60; --danger-color: #c53030; --warning-color: #f6ad55; --bg-light: #f8fafc; } body { font-family: 'Inter', system-ui, -apple-system, sans-serif; background-color: var(--bg-light); color: var(--primary-color); } .navbar { background-color: white; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .navbar-brand { font-weight: 700; color: var(--primary-color); } .card { border: none; border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.02); } .table thead th { background-color: #f1f5f9; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.05em; font-weight: 700; border: none; } .table tbody td { vertical-align: middle; padding: 1rem 0.75rem; } .badge-fresh { background-color: #e6fffa; color: #234e52; } .badge-warning { background-color: #fffaf0; color: #7b341e; } .badge-expired { background-color: #fff5f5; color: #822727; } .status-expired { background-color: #fff5f5; } .status-warning { background-color: #fffaf0; } #reader { background: #000; border: 2px solid #e2e8f0; min-height: 250px; position: relative; overflow: hidden; } #reader video { border-radius: 8px; width: 100% !important; } /* Camera mode viewfinder look */ #reader.camera-mode::after { content: ''; position: absolute; top: 20px; left: 20px; right: 20px; bottom: 20px; border: 1px solid rgba(255,255,255,0.3); pointer-events: none; } .ai-loading { background: rgba(255,255,255,0.9); border-radius: 8px; margin-top: 10px; border: 1px solid #e2e8f0; } .btn-primary { background-color: var(--accent-color); border-color: var(--accent-color); } .btn-primary:hover { background-color: #229954; border-color: #229954; } /* Shutter effect for photo capture */ .shutter-flash { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: white; opacity: 0; pointer-events: none; transition: opacity 0.1s; z-index: 100; } .shutter-flash.active { opacity: 1; } .is-valid { border-color: var(--accent-color) !important; background-color: #f0fff4 !important; }