.account{min-height:100vh;background:var(--bg);padding-bottom:80px}.account-header{background:var(--accent-grad);color:#fff;padding:28px 24px 80px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.account-avatar{width:64px;height:64px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;border:2px solid rgba(255,255,255,.4)}.account-header h1{margin:0;font-size:20px;font-weight:700}.account-header-email{margin:0;font-size:13px;opacity:.85}.ad-banner{height:80px;background:#f1f3f6;border-bottom:1px dashed #d1d5db;border-top:1px dashed #d1d5db;flex-shrink:0}.account-card{margin:16px;background:#fff;border-radius:16px;padding:20px;box-shadow:var(--shadow-md)}.field{display:flex;flex-direction:column;gap:6px;margin:10px 0}.field span{display:flex;align-items:center;gap:6px;font-weight:500;font-size:14px}.field input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid #d1d5db;font-size:15px;transition:border-color .15s}.field input:focus{outline:none;border-color:#8b2cff}.field input:disabled{background:#f3f4f6}.error{color:#dc2626;font-size:12px}.notif-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;margin:14px 0 10px}.radio-row{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid #f1f5f9;cursor:pointer}.radio-row input{margin-top:3px;accent-color:#8b2cff;flex-shrink:0}.radio-row strong{display:block;font-size:14px;margin-bottom:2px}.radio-row span{font-size:13px;color:#6b7280}.save-btn{width:100%;margin-top:16px;padding:13px;border-radius:12px;border:none;background:var(--accent-grad);color:#fff;font-weight:600;font-size:15px;transition:opacity .15s}.save-btn:disabled{opacity:.45;cursor:not-allowed}.logout-btn{width:100%;margin-top:10px;padding:12px;border:1px solid #e5e7eb;background:#fff;border-radius:12px;color:#6b7280;font-weight:500;font-size:14px;transition:background .15s}.logout-btn:hover{background:#f9fafb}.info{margin:0 16px;background:#eff6ff;color:#1d4ed8;padding:13px 16px;border-radius:10px;font-size:13px;line-height:1.5}.bottom-nav>div{justify-content:center}.bottom-nav div:active{transform:scale(.97)}#add-product{display:flex;justify-content:center}@media(min-width:768px){.account{padding-left:var(--sidebar-width);padding-bottom:0}.account-card,.info{max-width:560px;margin-left:auto;margin-right:auto}.bottom-nav{top:0;bottom:0;right:auto;width:var(--sidebar-width);height:100vh;flex-direction:column;justify-content:flex-start;padding:20px 0;gap:2px;border-top:none;border-right:1px solid #e5e7eb}.nav-brand{display:block;font-size:13px;font-weight:800;letter-spacing:.06em;color:#111827;padding:16px 18px 20px;border-bottom:1px solid #e5e7eb;width:100%;margin-bottom:8px}.bottom-nav div{width:100%;flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 18px;font-size:14px;border-radius:0}.bottom-nav div:hover{background:#f5f7fb;color:#2563eb}.bottom-nav .active{background:#eff6ff;color:#2563eb;font-weight:600}}.inventory{min-height:100vh;background:var(--bg);padding-bottom:60px}.inventory-header{background:var(--primary-grad);color:#fff;padding:20px 24px;display:flex;justify-content:space-between;align-items:center}.inventory-header h1{margin:0;font-size:22px;font-weight:700}.inventory-header p{margin:4px 0 0;font-size:13px;opacity:.85}.filter-btn{background:#fff3;border:none;border-radius:10px;padding:9px;color:#fff;display:flex;align-items:center;transition:background .15s}.filter-btn:hover{background:#ffffff4d}.filter-card{background:#fff;margin:14px;border-radius:14px;padding:14px;box-shadow:var(--shadow-sm)}.section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;margin:10px 0 8px}.filters{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#f1f3f6;padding:7px 12px;border-radius:999px;font-size:13px;display:flex;align-items:center;gap:5px;cursor:pointer;transition:background .15s,color .15s;-webkit-user-select:none;user-select:none}.chip input{display:none}.chip.blue.active{background:#2563eb;color:#fff}.chip.red.active{background:#dc2626;color:#fff}.chip.scarlet.active{background:#ea580c;color:#fff}.chip.orange.active{background:#d97706;color:#fff}.chip.green.active{background:#16a34a;color:#fff}.add-card{background:#fff;margin:0 14px;border-radius:12px;padding:13px;text-align:center;font-weight:500;font-size:14px;box-shadow:var(--shadow-sm);display:flex;justify-content:center;align-items:center;gap:8px;color:#2563eb;cursor:pointer;transition:background .15s}.add-card:hover{background:#f0f6ff}.ad-banner{height:80px;background:#f1f3f6;border-bottom:1px dashed #d1d5db;border-top:1px dashed #d1d5db;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.ad-banner img{width:100%;height:100%;object-fit:contain;display:block}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 14px}@media(max-width:360px){.stats-row{grid-template-columns:repeat(2,1fr)}}.stat-chip{background:#fff;border-radius:12px;padding:12px 8px;text-align:center;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .1s,box-shadow .1s;display:flex;flex-direction:column;gap:4px}.stat-chip:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.stat-value{font-size:22px;font-weight:700;line-height:1}.stat-label{font-size:11px;color:#6b7280;font-weight:500}.stat-expired .stat-value{color:#dc2626}.stat-today .stat-value{color:#e11d48}.stat-soon .stat-value{color:#ea580c}.stat-fresh .stat-value{color:#16a34a}.stat-expired.stat-active{background:#fee2e2;outline:2px solid #dc2626}.stat-today.stat-active{background:#fff1f2;outline:2px solid #e11d48}.stat-soon.stat-active{background:#fff7ed;outline:2px solid #ea580c}.stat-fresh.stat-active{background:#dcfce7;outline:2px solid #16a34a}.empty{text-align:center;margin:48px 16px;color:#9ca3af;display:flex;flex-direction:column;align-items:center;gap:12px}.empty p{margin:0;font-size:15px}.empty button{background:#2563eb;color:#fff;border:none;border-radius:10px;padding:10px 20px;font-weight:500;font-size:14px}.product-list{margin:14px;display:grid;gap:10px;grid-template-columns:1fr}.product-card{background:#fff;border-radius:12px;padding:14px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:12px}.product-img{width:56px;height:56px;object-fit:contain;border-radius:8px;flex-shrink:0}.product-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.product-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}.product-brand{font-size:12px;color:#6b7280}.product-details{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.expiration-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:3px 7px;border-radius:5px}.exp-expired{background:#fee2e2;color:#dc2626}.exp-today{background:#fff1f2;color:#e11d48}.exp-soon{background:#fff7ed;color:#ea580c}.exp-fresh{background:#dcfce7;color:#16a34a}.exp-none{background:#f3f4f6;color:#9ca3af;font-weight:400}.quantity-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:3px 7px;border-radius:5px;background:#ede9fe;color:#7c3aed}.nutri{display:inline-block;width:22px;height:22px;line-height:22px;text-align:center;border-radius:5px;font-weight:700;font-size:11px;color:#fff}.nutri-a{background:#1a9850}.nutri-b{background:#91cf60}.nutri-c{background:#fee08b;color:#333}.nutri-d{background:#fc8d59}.nutri-e{background:#d73027}.delete-btn{background:none;border:none;color:#9ca3af;padding:6px;font-size:16px;flex-shrink:0;border-radius:6px;transition:color .15s,background .15s}.delete-btn:hover{color:#ef4444;background:#fef2f2}.bottom-nav div{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:#6b7280;cursor:pointer;padding:6px 24px;border-radius:8px;transition:color .15s}@media(min-width:768px){.inventory{padding-left:var(--sidebar-width);padding-bottom:0}.bottom-nav{top:0;bottom:0;right:auto;width:var(--sidebar-width);height:100vh;flex-direction:column;justify-content:flex-start;padding:20px 0;gap:2px;border-top:none;border-right:1px solid #e5e7eb}.nav-brand{display:block;font-size:13px;font-weight:800;letter-spacing:.06em;color:#111827;padding:16px 18px 20px;border-bottom:1px solid #e5e7eb;width:100%;margin-bottom:8px}.bottom-nav div{width:100%;flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 18px;font-size:14px;border-radius:0}.bottom-nav div:hover{background:#f5f7fb;color:#2563eb}.bottom-nav .active{background:#eff6ff;color:#2563eb;font-weight:600}.product-list{grid-template-columns:repeat(2,1fr)}}@media(min-width:1200px){.product-list{grid-template-columns:repeat(3,1fr)}}@media(min-width:1600px){.product-list{grid-template-columns:repeat(4,1fr)}}.add-product{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}.add-product-header{background:var(--primary-grad);color:#fff;padding:20px 24px;display:flex;justify-content:space-between;flex-direction:row-reverse;align-items:center}.header-brand{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;opacity:.7;margin-bottom:2px}.add-product-header h1{margin:0;font-size:22px;font-weight:700}.add-product-header p{margin:4px 0 0;font-size:13px;opacity:.85}.back-btn{background:#fff3;border:none;color:#fff;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px;flex-shrink:0;transition:background .15s}.back-btn:hover{background:#ffffff4d}.add-product-body{flex:1;padding:16px 16px 76px;width:100%;max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.scanner-actions{display:flex;gap:10px}.scanner-actions button{flex:1;padding:12px;border:none;border-radius:10px;font-size:14px;font-weight:600}.btn-start{background:var(--primary);color:#fff}.btn-start:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed}.btn-stop{background:#ef4444;color:#fff}.btn-stop:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed}.scanner-interactive{width:100%;position:relative;border:2px solid #667eea;border-radius:8px;overflow:hidden;background:#000}.scanner-interactive video{width:100%;height:auto;display:block}.scanner-interactive canvas{position:absolute;top:0;left:0;width:100%;height:100%}.detected-banner{background:#dcfce7;color:#155724;padding:12px 14px;border-radius:10px;border:1px solid #bbf7d0;font-size:14px;word-break:break-all}.status-loading{text-align:center;color:#6b7280;font-size:14px;margin:0}.status-error{color:#dc2626;font-size:14px;margin:0}.product-found{background:#fff;border-radius:12px;padding:16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:10px}.product-found img{width:100%;max-height:180px;object-fit:contain;border-radius:8px}.product-found h2{margin:0;font-size:18px}.product-found p{margin:0;font-size:14px;color:#374151}.product-form{background:#f0f9ff;border-radius:10px;border:1px solid #bae6fd;padding:14px;display:flex;flex-direction:column;gap:14px}.product-form label{display:block;font-weight:600;font-size:13px;color:#0369a1;margin-bottom:8px}.product-form input[type=date]{width:100%;padding:10px 12px;border-radius:8px;border:1px solid #cbd5e1;font-size:15px}.quantity-row{display:flex;align-items:center;gap:10px}.qty-btn{width:38px;height:38px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.product-form input[type=number]{width:58px;padding:8px;border-radius:8px;border:1px solid #cbd5e1;font-size:15px;text-align:center}.product-actions{display:flex;gap:10px}.btn-add{flex:1;padding:11px;background:#16a34a;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px}.btn-add:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{padding:11px 16px;background:none;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;font-size:14px}.btn-success{background:#dcfce7;color:#166534;text-align:center;padding:11px;border-radius:8px;font-weight:600;font-size:14px}.btn-view-inventory{flex:1;padding:11px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px}.btn-new-scan{padding:11px 16px;background:none;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;font-size:14px}.manual-section{display:flex;flex-direction:column;gap:10px}.manual-separator{text-align:center;color:#9ca3af;font-size:13px;margin:0}.manual-form{display:flex;gap:8px}.manual-form input{flex:1;padding:11px 14px;border-radius:8px;border:1px solid #d1d5db;font-size:15px}.manual-form button{padding:11px 18px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px}.manual-form button:disabled{opacity:.5;cursor:not-allowed}.scan-logs{background:#f5f5f5;border-radius:8px;padding:12px;max-height:140px;overflow-y:auto}.scan-logs p{margin:2px 0;font-size:12px;color:#666}.scan-tips{background:#fff;border-radius:12px;padding:18px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:10px}.scan-tips-title{margin:0;font-size:14px;font-weight:700;color:#374151}.scan-tips-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.scan-tips-list li{font-size:13px;color:#4b5563;line-height:1.5}.scan-tips-note{margin:0;font-size:12px;color:#9ca3af}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:60px;background:#fff;border-top:1px solid #e5e7eb;display:flex;justify-content:space-around;align-items:center;z-index:100}.bottom-nav>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;color:#6b7280;cursor:pointer;padding:6px 24px;border-radius:8px;transition:color .15s}.bottom-nav>div:active{transform:scale(.97)}.bottom-nav .active{color:#2563eb}#add-product{display:flex;justify-content:center;align-items:center}.nav-brand{display:none}@media(min-width:768px){.add-product{padding-left:var(--sidebar-width);padding-bottom:0}.bottom-nav{top:0;bottom:0;right:auto;width:var(--sidebar-width);height:100vh;flex-direction:column;justify-content:flex-start;padding:20px 0;gap:2px;border-top:none;border-right:1px solid #e5e7eb}.nav-brand{display:block;font-size:13px;font-weight:800;letter-spacing:.06em;color:#111827;padding:16px 18px 20px;border-bottom:1px solid #e5e7eb;width:100%;margin-bottom:8px}.bottom-nav div{width:100%;flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 18px;font-size:14px;border-radius:0}.bottom-nav div:hover{background:#f5f7fb;color:#2563eb}.bottom-nav .active{background:#eff6ff;color:#2563eb;font-weight:600}#expiration-date{width:100%}}.login-page,.register-page{min-height:100vh;background:var(--primary-grad);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 16px 32px;gap:24px}.auth-hero{text-align:center;color:#fff;width:100%;max-width:420px}.auth-brand{margin:0 0 100px;font-size:52px;font-weight:800;letter-spacing:-.01em;opacity:1}.auth-title{margin:0 0 8px;font-size:36px;font-weight:800;line-height:1.1}.auth-subtitle{margin:0;font-size:15px;opacity:.85}.login-card,.register-card{width:100%;max-width:420px;background:#fff;border-radius:20px;padding:28px 24px;box-shadow:0 20px 48px #0000002e}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group label{font-size:13px;font-weight:600;color:#374151}.form-group input{width:100%;padding:12px 14px;border:1px solid #d1d5db;border-radius:10px;font-size:15px;transition:border-color .15s,box-shadow .15s}.form-group input:focus{outline:none;border-color:#0a6cff;box-shadow:0 0 0 3px #0a6cff1f}.form-error{color:#dc2626;font-size:13px;margin:0 0 12px}.submit-btn{width:100%;padding:13px;border:none;border-radius:10px;background:var(--primary-grad);color:#fff;font-size:15px;font-weight:600;transition:opacity .15s}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.form-footer{margin-top:18px;text-align:center;font-size:14px;color:#6b7280}.form-footer a{color:#0a6cff;font-weight:600;text-decoration:none}.form-footer a:hover{text-decoration:underline}:root{--sidebar-width: 200px;--primary: #2563eb;--primary-grad: linear-gradient(90deg, #0a6cff, #00b3d6);--accent-grad: linear-gradient(90deg, #8b2cff, #e6007e);--bg: #f5f7fb;--radius: 12px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .07);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh;font-family:system-ui,-apple-system,sans-serif}button{cursor:pointer}
