:root{--mj-gold: #c5a880;--mj-gold-dark: #a98d64;--mj-gold-light: #e6dac8;--mj-black: #1a1a1a;--mj-charcoal: #2a2a2a;--mj-sand: #f4efe9;--mj-sand-dark: #d8cdbe;--mj-sand-light: #FAF8F5;--mj-coral: #d57a66;--mj-green: #4f6e5c;--mj-white: #ffffff;--mj-gray-text: #666666;--mj-light-gray: #e6e6e6;--mj-border: rgba(197, 168, 128, .2);--font-heading: "Outfit", sans-serif;--font-body: "Inter", sans-serif;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .04);--shadow-md: 0 8px 24px rgba(26, 26, 26, .08);--shadow-lg: 0 16px 40px rgba(26, 26, 26, .12);--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .4);--glass-blur: blur(20px);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-body);background-color:#f0ebe4;color:var(--mj-black);min-height:100vh;margin:0;overflow-x:hidden;overflow-y:scroll}#root{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center}.app-container{width:100%;max-width:480px;height:100vh;max-height:900px;background-color:var(--mj-sand-light);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;position:relative;overflow:hidden;border-radius:0}@media (min-width: 481px){.app-container{width:480px;height:92vh;max-height:800px;border-radius:var(--radius-lg);border:8px solid var(--mj-black)}}.app-header{padding:18px 20px;background:var(--mj-white);border-bottom:1px solid var(--mj-border);display:flex;justify-content:space-between;align-items:center;z-index:10}.brand-title{font-family:var(--font-heading);font-weight:600;font-size:20px;letter-spacing:2px;color:var(--mj-black);text-transform:uppercase}.brand-accent{color:var(--mj-gold)}.store-badge{background-color:var(--mj-sand);color:var(--mj-gold-dark);font-size:11px;font-weight:600;padding:4px 8px;border-radius:var(--radius-sm);letter-spacing:.5px;text-transform:uppercase}.app-content{flex:1;overflow-y:auto;padding:20px 20px 90px;display:flex;flex-direction:column;gap:20px}.search-box-container{position:relative;width:100%}.search-input{width:100%;padding:14px 16px 14px 44px;border:1px solid var(--mj-sand-dark);border-radius:var(--radius-md);font-family:var(--font-body);font-size:14px;background-color:var(--mj-white);color:var(--mj-black);transition:all .3s ease;outline:none}.search-input:focus{border-color:var(--mj-gold);box-shadow:0 0 0 3px #c5a88026}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--mj-gold);width:18px;height:18px;pointer-events:none}.upload-card{flex:1;min-height:250px;border:2px dashed var(--mj-gold);border-radius:var(--radius-lg);background-color:var(--mj-white);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:30px 20px;text-align:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;gap:16px}.upload-card:hover{background-color:#c5a8800d;transform:translateY(-2px)}.upload-icon-wrapper{width:80px;height:80px;border-radius:50%;background-color:var(--mj-sand);display:flex;justify-content:center;align-items:center;color:var(--mj-gold-dark);transition:all .3s ease}.upload-card:hover .upload-icon-wrapper{background-color:var(--mj-gold-light);transform:scale(1.08)}.upload-title{font-family:var(--font-heading);font-weight:500;font-size:18px;color:var(--mj-black)}.upload-subtitle{font-size:13px;color:var(--mj-gray-text);max-width:260px;line-height:1.4}.file-input{display:none}.scanner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000000d9;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:100;color:var(--mj-white);padding:30px}.scan-viewport{position:relative;width:240px;height:240px;border-radius:var(--radius-lg);overflow:hidden;border:2px solid var(--mj-gold);box-shadow:0 0 30px #c5a88066;margin-bottom:30px}.scan-image{width:100%;height:100%;object-fit:cover}.scan-line{position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(180deg,rgba(197,168,128,0),var(--mj-gold) 50%,rgba(197,168,128,0));box-shadow:0 0 15px var(--mj-gold);animation:scan 2.5s ease-in-out infinite}.scan-laser{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(197,168,128,0) 60%,rgba(197,168,128,.1) 100%);animation:scanLaser 2.5s ease-in-out infinite}.scanning-text-container{text-align:center;width:100%}.scanning-title{font-family:var(--font-heading);font-weight:500;font-size:20px;letter-spacing:1px;margin-bottom:8px;color:var(--mj-gold-light)}.scanning-status{font-size:13px;color:#aaa;margin-bottom:24px;height:18px}.scan-progress-bar{width:180px;height:4px;background-color:#ffffff1a;border-radius:2px;margin:0 auto;overflow:hidden}.scan-progress-fill{height:100%;background-color:var(--mj-gold);width:0%;border-radius:2px;animation:progressFill 2.5s linear forwards}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.results-count{font-family:var(--font-heading);font-size:16px;font-weight:500}.new-scan-btn{background-color:var(--mj-sand);border:1px solid var(--mj-sand-dark);color:var(--mj-black);font-size:12px;font-weight:600;padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;font-family:var(--font-body)}.new-scan-btn:hover{background-color:var(--mj-gold-light);border-color:var(--mj-gold)}.results-grid{display:flex;flex-direction:column;gap:14px}.product-card{display:flex;background-color:var(--mj-white);border-radius:var(--radius-md);border:1px solid var(--mj-border);overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}.product-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--mj-gold)}.card-img-wrapper{width:95px;height:95px;flex-shrink:0;position:relative;background-color:var(--mj-sand-light)}.card-img{width:100%;height:100%;object-fit:cover}.match-badge{position:absolute;top:6px;left:6px;background-color:#4f6e5cf2;color:var(--mj-white);font-size:10px;font-weight:700;padding:3px 6px;border-radius:4px}.card-details{flex:1;padding:12px 14px;display:flex;flex-direction:column;justify-content:space-between;min-width:0}.card-name{font-family:var(--font-heading);font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--mj-black)}.card-meta{display:flex;flex-direction:column;gap:4px}.card-code{font-size:11px;color:var(--mj-gray-text);font-family:monospace}.card-stock{font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px}.stock-in{color:var(--mj-green)}.stock-out{color:var(--mj-coral)}.card-action-arrow{display:flex;align-items:center;padding-right:14px;color:var(--mj-gold);transition:transform .2s ease}.product-card:hover .card-action-arrow{transform:translate(3px)}.drawer-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0009;z-index:150;display:flex;align-items:flex-end;justify-content:center}.detail-drawer{width:100%;background-color:var(--mj-white);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);padding:24px 20px;display:flex;flex-direction:column;gap:20px;max-height:85%;overflow-y:auto;box-shadow:0 -8px 30px #00000026;animation:slideUp .3s cubic-bezier(.4,0,.2,1) forwards}.drawer-drag-handle{width:40px;height:4px;background-color:var(--mj-sand-dark);border-radius:2px;align-self:center;margin-bottom:-4px}.drawer-header{display:flex;justify-content:space-between;align-items:flex-start}.drawer-title-group{display:flex;flex-direction:column;gap:4px}.drawer-title{font-family:var(--font-heading);font-size:20px;font-weight:700;color:var(--mj-black)}.drawer-close-btn{background:none;border:none;font-size:24px;line-height:1;color:var(--mj-gray-text);cursor:pointer;padding:4px}.detail-product-layout{display:flex;gap:16px}.detail-img-wrapper{width:110px;height:110px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--mj-border);flex-shrink:0}.detail-img{width:100%;height:100%;object-fit:cover}.detail-specs{display:flex;flex-direction:column;gap:8px;flex:1;justify-content:center}.spec-row{display:flex;justify-content:space-between;font-size:13px;padding-bottom:6px;border-bottom:1px solid var(--mj-sand)}.spec-label{color:var(--mj-gray-text)}.spec-value{font-weight:500;font-family:monospace}.variant-selector-title{font-size:13px;font-weight:600;color:var(--mj-black);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.variant-chips{display:flex;gap:8px;flex-wrap:wrap}.variant-chip{padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--mj-sand-dark);background-color:var(--mj-white);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.variant-chip.active{border-color:var(--mj-gold);background-color:var(--mj-sand);color:var(--mj-gold-dark)}.barcode-section{background-color:var(--mj-sand-light);border:1px solid var(--mj-border);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.barcode-title{font-size:12px;font-weight:600;color:var(--mj-gray-text);letter-spacing:.5px}.barcode-svg-container{background-color:var(--mj-white);padding:12px;border-radius:var(--radius-sm);border:1px solid var(--mj-sand-dark);display:flex;justify-content:center;align-items:center;width:100%}.barcode-line-art{height:50px;width:100%;max-width:220px}.barcode-digits{font-family:monospace;font-size:14px;letter-spacing:4px;font-weight:600;color:var(--mj-black);margin-top:-4px}.barcode-actions{display:flex;gap:8px;width:100%}.action-btn{flex:1;padding:12px;border-radius:var(--radius-sm);font-weight:600;font-size:13px;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:6px;transition:all .2s ease;font-family:var(--font-body)}.action-btn.primary{background-color:var(--mj-black);color:var(--mj-white);border:none}.action-btn.primary:hover{background-color:#333}.action-btn.secondary{background-color:var(--mj-white);border:1px solid var(--mj-sand-dark);color:var(--mj-black)}.action-btn.secondary:hover{background-color:var(--mj-sand-light)}.stock-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stock-item{background-color:var(--mj-white);border:1px solid var(--mj-sand);border-radius:var(--radius-sm);padding:10px;font-size:12px}.stock-item-name{color:var(--mj-gray-text);margin-bottom:2px}.stock-item-qty{font-weight:600;font-size:14px}.console-toggle-btn{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background-color:var(--mj-charcoal);color:var(--mj-gold-light);border:1px solid var(--mj-gold);border-radius:20px;padding:8px 16px;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:6px;box-shadow:var(--shadow-md);z-index:10;transition:all .2s ease}.console-toggle-btn:hover{background-color:var(--mj-black);transform:translate(-50%) translateY(-2px)}.console-drawer-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0006;z-index:200;display:flex;align-items:flex-end}.console-drawer{width:100%;height:60%;background-color:#121212;color:#0f6;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-top:2px solid var(--mj-gold);display:flex;flex-direction:column;box-shadow:0 -10px 40px #00000080;animation:slideUp .3s cubic-bezier(.4,0,.2,1) forwards}.console-header{padding:12px 20px;background-color:#1a1a1a;border-bottom:1px solid #333333;display:flex;justify-content:space-between;align-items:center}.console-title{color:var(--mj-white);font-family:var(--font-heading);font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase}.console-close-btn{background:none;border:none;color:#888;font-size:20px;cursor:pointer}.console-content{flex:1;padding:16px;overflow-y:auto;font-family:Courier New,Courier,monospace;font-size:12px;line-height:1.4;display:flex;flex-direction:column;gap:12px}.log-entry{display:flex;flex-direction:column;gap:4px}.log-time{color:#888;font-size:10px}.log-message{color:#ddd}.log-code-block{background-color:#1e1e1e;border:1px solid #333333;border-radius:var(--radius-sm);padding:10px;color:#8df;overflow-x:auto;white-space:pre-wrap;word-break:break-all;margin-top:4px;max-width:100%}@keyframes scan{0%{top:0%}50%{top:98%}to{top:0%}}@keyframes scanLaser{0%{opacity:.3}50%{opacity:.8}to{opacity:.3}}@keyframes progressFill{0%{width:0%}25%{width:35%}60%{width:70%}to{width:100%}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}
