:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17201d;background:#f6f7f5;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17201d;--muted: #66746e;--line: #dde4de;--panel: #ffffff;--soft: #f4f7f5;--accent: #13745a;--accent-dark: #0f5d49;--danger: #9f2d20;--warning: #9a6a00;--blue: #2563eb}*{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:linear-gradient(180deg,#ffffffd6,#f6f7f5f0),#f6f7f5}button,input,select{font:inherit}button,label{-webkit-tap-highlight-color:transparent}.app-shell{width:min(1480px,100%);margin:0 auto;padding:28px clamp(18px,2.4vw,34px) 42px}.auth-shell{display:grid;align-items:center;min-height:100vh;width:min(1120px,100%);padding-top:clamp(22px,4vh,54px);padding-bottom:clamp(22px,4vh,54px)}.topbar{display:grid;grid-template-columns:minmax(420px,1fr) auto;align-items:start;gap:24px;margin-bottom:22px;padding:8px 0 24px;border-bottom:1px solid rgba(214,226,220,.72)}.topbar-copy{min-width:0}.topbar h1,.panel h2,.product-info h3{margin:0;letter-spacing:0}.topbar h1{color:var(--ink);font-size:clamp(1.85rem,2.8vw,2.75rem);line-height:1.08;font-weight:900}.header-subtitle{max-width:700px;margin:10px 0 0;color:#607169;font-size:1rem;font-weight:650;line-height:1.45}.app-nav{display:grid;grid-template-columns:repeat(5,max-content);justify-content:flex-end;align-content:start;gap:8px}.nav-button{display:inline-flex;align-items:center;gap:8px;min-height:42px;border:1px solid var(--line);border-radius:8px;padding:8px 13px;color:#40524b;background:#fff;cursor:pointer;font-size:.88rem;font-weight:850;box-shadow:0 7px 18px #161f1a09}.nav-button.active{color:#0f5d49;border-color:#a8d8c6;background:#eef9f4}.nav-button:disabled{cursor:progress;opacity:.72;transform:none}.nav-button.sync-nav-button{color:#0f5d49;border-color:#b9d8cb;background:#f4fbf8}.nav-button.user-chip{max-width:180px;overflow:hidden;color:#5a2f25;background:#fff7f4;text-overflow:ellipsis;white-space:nowrap}.mobile-nav-bar,.mobile-menu-layer{display:none}.mobile-active-view,.mobile-menu-toggle{align-items:center;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 7px 18px #161f1a0a}.mobile-active-view{display:grid;gap:1px;min-width:0;padding:8px 12px}.mobile-active-view span{color:#718078;font-size:.66rem;font-weight:900;text-transform:uppercase}.mobile-active-view strong{min-width:0;color:var(--accent-dark);font-size:.9rem;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-menu-toggle{display:inline-flex;justify-content:center;gap:8px;padding:0 13px;color:#26362f;cursor:pointer;font-weight:900}.mobile-menu-layer{position:fixed;z-index:80;inset:0}.mobile-menu-backdrop{position:absolute;inset:0;border:0;background:#0e16126b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:pointer}.mobile-menu-panel{position:absolute;top:0;right:0;display:grid;align-content:start;gap:16px;width:min(360px,calc(100vw - 22px));min-height:100%;padding:16px;border-left:1px solid rgba(221,228,222,.9);background:#fffefb;box-shadow:-18px 0 56px #0f191433}.mobile-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #e5ebe7;padding-bottom:14px}.mobile-menu-heading span{display:block;color:#718078;font-size:.72rem;font-weight:900;text-transform:uppercase}.mobile-menu-heading strong{display:block;margin-top:3px;color:var(--ink);font-size:1.05rem}.mobile-menu-list{display:grid;gap:9px}.mobile-nav-item{width:100%;justify-content:flex-start;min-height:48px;padding:10px 12px;white-space:normal}.mobile-nav-item.user-chip{max-width:none}.eyebrow{display:inline-flex;align-items:center;min-height:24px;margin:0 0 8px;border-radius:8px;padding:4px 8px;color:#52645c;background:#eef5f1;font-size:.7rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.top-sync-notice{margin:-4px 0 22px}.action-row,.panel-heading,.product-title-row,.tag-row{display:flex;align-items:center}.live-pill,.availability,.tag-row span{display:inline-flex;align-items:center;gap:7px;min-height:32px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:#33443e;background:var(--panel);font-size:.86rem;font-weight:800;white-space:nowrap}.workspace-grid,.lower-grid{display:grid;gap:18px}.workspace-grid{grid-template-columns:minmax(360px,.72fr) minmax(520px,1.28fr);align-items:stretch}.lower-grid{grid-template-columns:minmax(340px,.72fr) minmax(0,1.28fr);margin-top:18px}.panel{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 18px 48px #161f1a12}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:18px}.settings-panel,.settings-side-panel{padding:22px}.auth-layout{display:grid;place-items:center;width:100%}.login-panel{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(380px,.85fr);width:min(1040px,100%);max-width:none;min-height:560px;overflow:hidden;padding:0;background:#fffef9}.login-brand-side{position:relative;display:grid;place-items:center;min-width:0;overflow:hidden;padding:clamp(30px,4vw,56px);color:#10231d;background:#f4fbf8}.login-brand-shape{position:absolute;inset:0 auto 0 0;width:118%;border-radius:0 50% 50% 0;background:linear-gradient(145deg,#26c982,#17b976 54%,#11a86d);box-shadow:inset -18px 0 50px #094a341f}.login-brand-content{position:relative;z-index:1;display:grid;justify-items:center;width:min(380px,100%);text-align:center}.login-brand-icon{display:grid;width:86px;height:86px;place-items:center;margin-bottom:22px;border-radius:50%;color:#fff;background:#ffffff29}.login-brand-eyebrow{margin:0 0 10px;color:#ffffffd1;font-size:.82rem;font-weight:850;text-transform:uppercase}.login-brand-content h2{margin:0;color:#fff;font-size:clamp(1.55rem,2.2vw,2rem);line-height:1.08;font-weight:930}.login-brand-content p{max-width:330px;margin:14px 0 0;color:#ffffffe0;font-size:.96rem;font-weight:680;line-height:1.45}.login-side-switch{min-width:220px;min-height:42px;margin-top:48px;border:2px solid rgba(255,255,255,.82);border-radius:999px;color:#fff;background:transparent;cursor:pointer;font-weight:850}.login-form-side{display:grid;align-content:center;min-width:0;padding:clamp(32px,4vw,58px);background:#fffef9}.login-form-heading{margin-bottom:30px}.login-form-heading h2{margin:0;color:var(--ink);font-size:clamp(2rem,3vw,2.55rem);line-height:1.05;font-weight:940}.login-form-heading p{margin:8px 0 0;color:#62726b;font-weight:680}.login-form{gap:16px}.login-form input{min-height:46px;border-color:#d8e1dd;border-radius:8px;padding:10px 14px;background:#eaf1ee;font-size:.96rem}.login-form input:focus{background:#fff}.password-input-wrap{position:relative;display:flex;align-items:center;min-width:0}.password-input-wrap input{padding-right:48px}.password-toggle{position:absolute;right:8px;display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:8px;color:#52645c;background:#eef5f1;cursor:pointer;transition:color .16s ease,background .16s ease,transform .16s ease}.password-toggle:hover{color:var(--accent-dark);background:#dff2ea;transform:translateY(-1px)}.password-toggle:focus-visible{outline:3px solid rgba(19,116,90,.22);outline-offset:2px}.login-panel .settings-submit{min-height:48px;margin-top:12px;border-radius:999px;background:linear-gradient(135deg,#20c481,#159a6c);box-shadow:0 12px 24px #11976738}.login-bottom-switch{justify-self:center;border:0;color:#445a51;background:transparent;cursor:pointer;font-size:.88rem;font-weight:760;text-decoration:underline}.login-link-row{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:14px}.settings-hero,.settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.settings-hero{justify-content:flex-start}.settings-icon,.connection-status{display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.settings-icon{flex:0 0 auto;width:52px;height:52px;color:#0f5d49;background:#eef9f4}.settings-header h2,.settings-hero h2,.settings-side-panel h2{margin:0;font-size:1.35rem}.settings-header p,.settings-hero p,.settings-side-panel p{max-width:680px;margin:8px 0 0;color:var(--muted);font-weight:650;line-height:1.45}.connection-status{min-height:38px;gap:8px;border:1px solid var(--line);padding:8px 12px;color:#52645c;background:#f5f7f5;font-weight:850;white-space:nowrap}.connection-status.valid{color:#0f6f50;border-color:#a9ddc5;background:#eef9f4}.connection-status.invalid{color:#9f2d20;border-color:#f0b1a9;background:#fff2ef}.settings-form{display:grid;gap:14px}.odoo-form{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-form label{display:grid;gap:7px;color:#52645c;font-size:.78rem;font-weight:850;text-transform:uppercase}.settings-form input,.settings-form select{min-height:46px;width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;color:var(--ink);background:#fff;font-size:.95rem;font-weight:700;text-transform:none}.settings-form input:focus,.settings-form select:focus{outline:3px solid rgba(19,116,90,.18);border-color:#83bba7}.settings-form .notice,.settings-actions{grid-column:1 / -1}.notice.success{color:#0f5d49;border-color:#bde2d1;background:#effaf5}.settings-actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:4px}.settings-submit{width:100%}.settings-safe-list{display:grid;gap:8px;margin:20px 0}.settings-safe-list span{display:flex;align-items:center;min-height:34px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;color:#43564f;background:#f8faf8;font-weight:800}.locked-recognition-panel{display:grid;place-items:center;min-height:520px;padding:34px 24px;text-align:center}.locked-recognition-panel h2{margin-top:2px;font-size:clamp(1.45rem,2vw,2rem)}.locked-recognition-panel p:not(.eyebrow){max-width:620px;margin:10px auto 0;color:#5f7068;font-weight:750;line-height:1.55}.locked-icon{display:grid;width:76px;height:76px;place-items:center;margin-bottom:14px;border:1px solid #c7e7db;border-radius:18px;color:#0f7057;background:#edf9f4}.locked-status{display:grid;gap:5px;width:min(460px,100%);margin:22px auto 0;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfb}.locked-status span{color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase}.locked-status strong{color:var(--ink)}.locked-actions{justify-content:center;margin-top:22px}.sync-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.sync-status>div{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfb}.sync-status span{color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase}.sync-status strong{color:var(--ink);font-size:1rem}.capture-panel,.result-panel,.matches-panel,.catalog-panel{padding:20px}.result-panel{display:flex;flex-direction:column}.matches-panel{margin-top:18px}.panel-heading{justify-content:space-between;gap:14px;margin-bottom:16px}.panel h2{font-size:1.08rem}.icon-button,.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;cursor:pointer;font-weight:850;letter-spacing:0;transition:transform .16s ease,border-color .16s ease,background .16s ease}.icon-button{width:38px;height:38px;color:#33443e;background:#eef2ef;border:1px solid transparent}.icon-button:hover,.primary-button:hover,.secondary-button:hover{transform:translateY(-1px);border-color:#b7c8bf}.icon-button:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.dropzone:focus-visible{outline:3px solid rgba(19,116,90,.22);outline-offset:2px}.icon-button:disabled{cursor:progress;opacity:.7}.icon-button.danger{color:#9f2d20;background:#fff0ed}.dropzone{position:relative;display:grid;place-items:center;min-height:350px;overflow:hidden;border:1px dashed #b8c6bf;border-radius:8px;background:linear-gradient(135deg,#13745a0f,#2563eb0a),#fbfcfb;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.dropzone:hover{border-color:#8ab7a5;background:linear-gradient(135deg,#13745a17,#2563eb0d),#fbfcfb}.dropzone.has-preview{border-style:solid;background:#f7f9f8}.dropzone img{width:100%;height:100%;max-height:440px;object-fit:contain}.camera-stage{position:relative;width:100%;height:100%;min-height:350px;overflow:hidden;border-radius:8px}.camera-stage video{width:100%;height:100%;min-height:350px;max-height:440px;object-fit:cover;background:#111916}.camera-focus-guide{position:absolute;inset:0;z-index:2;pointer-events:auto;touch-action:none;background:radial-gradient(ellipse at center,#0000 0% 34%,#0003)}.focus-frame{position:absolute;border:1px solid rgba(255,255,255,.42);border-radius:14px;cursor:move;touch-action:none;box-shadow:0 0 0 999px #080c0a2e,inset 0 0 0 1px #13745a5c}.corner{position:absolute;width:34px;height:34px;border-color:#fff;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}.corner-top-left{top:-2px;left:-2px;border-top:4px solid;border-left:4px solid;border-top-left-radius:14px}.corner-top-right{top:-2px;right:-2px;border-top:4px solid;border-right:4px solid;border-top-right-radius:14px}.corner-bottom-left{bottom:-2px;left:-2px;border-bottom:4px solid;border-left:4px solid;border-bottom-left-radius:14px}.corner-bottom-right{right:-2px;bottom:-2px;border-right:4px solid;border-bottom:4px solid;border-bottom-right-radius:14px}.focus-line{position:absolute;background:#fff3}.focus-line.horizontal{top:50%;left:12%;width:76%;height:1px}.focus-line.vertical{top:12%;left:50%;width:1px;height:76%}.resize-handle{position:absolute;width:24px;height:24px;border-radius:50%;background:#fffffff2;box-shadow:0 2px 10px #00000042,inset 0 0 0 2px #13745a85;touch-action:none}.resize-nw{top:-12px;left:-12px;cursor:nwse-resize}.resize-ne{top:-12px;right:-12px;cursor:nesw-resize}.resize-sw{bottom:-12px;left:-12px;cursor:nesw-resize}.resize-se{right:-12px;bottom:-12px;cursor:nwse-resize}.focus-helper{position:absolute;transform:translate(-50%);max-width:min(76%,420px);border-radius:999px;padding:8px 12px;color:#fff;background:#0a100dc7;box-shadow:0 8px 24px #00000038;font-size:.88rem;font-weight:850;text-align:center;pointer-events:none}.focus-reset-button{position:absolute;top:12px;right:12px;min-height:34px;border:1px solid rgba(255,255,255,.34);border-radius:999px;padding:0 12px;color:#fff;background:#0a100db8;cursor:pointer;font-size:.82rem;font-weight:900;box-shadow:0 8px 22px #00000038}.camera-overlay{position:absolute;z-index:3;right:12px;bottom:12px;left:12px;display:flex;justify-content:center}.camera-overlay span{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:999px;background:#101614d1;color:#fff;font-size:.86rem;font-weight:800;text-align:center}.dropzone input,.secondary-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.empty-preview{display:grid;gap:10px;place-items:center;color:#50635b;text-align:center}.empty-preview svg{width:58px;height:58px;stroke-width:1.8}.empty-preview strong{color:#31423a;font-size:1.04rem;font-weight:900}.empty-preview span{color:#718078;font-size:.92rem;font-weight:750}.action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.secondary-button,.primary-button{position:relative;min-height:46px;padding:0 14px;width:100%}.secondary-button{color:#26362f;border:1px solid #d7e0da;background:var(--panel)}.primary-button{grid-column:1 / -1;min-width:160px;color:#fff;background:var(--accent);border:1px solid var(--accent);box-shadow:0 10px 20px #13745a29}.primary-button:disabled{cursor:progress;opacity:.78}.notice{display:flex;align-items:flex-start;gap:10px;margin-top:14px;border-radius:8px;padding:11px 12px;font-size:.92rem;font-weight:700;line-height:1.35}.notice.error{color:#8c271d;background:#fff0ed;border:1px solid #e9b8ae}.notice.warn{color:#705610;background:#fff8df}.notice.compact{margin-top:0;margin-bottom:12px}.selected-file{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;border:1px solid #dce5df;border-radius:8px;padding:10px 12px;background:#fbfcfb}.selected-file div{display:grid;min-width:0;gap:3px}.selected-file span{color:#718078;font-size:.74rem;font-weight:900;text-transform:uppercase}.selected-file strong{min-width:0;color:#26362f;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-button{flex:0 0 auto;border:0;border-radius:8px;padding:8px 10px;color:var(--accent-dark);background:#e8f7ef;cursor:pointer;font-size:.86rem;font-weight:900}.recognition-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;border:1px solid #d6e2dc;border-radius:8px;padding:12px 14px;background:#f8faf8}.recognition-summary span{display:block;color:#65746d;font-size:.78rem;font-weight:900;text-transform:uppercase}.recognition-summary strong{display:block;margin-top:3px;color:var(--ink);font-size:1.02rem}.recognition-summary.high{border-color:#9bd6bd;background:#effaf5}.recognition-summary.medium{border-color:#ead28d;background:#fff9e8}.recognition-summary.low{border-color:#e9b8ae;background:#fff4f1}.summary-score{display:grid;min-width:62px;height:42px;place-items:center;border-radius:8px;color:#fff;background:var(--accent);font-size:1.05rem;font-weight:950}.recognition-summary.medium .summary-score{background:var(--warning)}.recognition-summary.low .summary-score{background:var(--danger)}.live-pill{grid-column:1 / -1;justify-content:center;color:var(--accent-dark);border-color:#b9dccf;background:#eef8f3}.product-detail{display:grid;grid-template-columns:minmax(220px,.48fr) minmax(0,1fr);gap:18px;min-height:300px}.product-image{display:grid;place-items:center;overflow:hidden;border-radius:8px;border:1px solid #e3e9e4;background:#f6f8f6;color:var(--muted)}.product-image img{width:100%;height:100%;min-height:300px;max-height:390px;object-fit:contain;background:#fff}.product-info{display:flex;min-width:0;flex-direction:column;justify-content:space-between;gap:16px}.product-title-row{justify-content:space-between;align-items:flex-start;gap:12px}.product-info h3{font-size:clamp(1.25rem,1.7vw,1.75rem);line-height:1.12;overflow-wrap:anywhere}.sku{margin:0 0 7px;color:var(--accent);font-weight:900}.availability{color:#0e6a4d;background:#e8f7ef;border-color:#9bd6bd}.description{margin:0;color:#53615b;line-height:1.55}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{min-width:0;border:1px solid #e3e9e4;border-radius:8px;padding:11px;background:#fafbfa}.metric span{display:block;color:#718078;font-size:.78rem;font-weight:800;text-transform:uppercase}.metric strong{display:block;margin-top:4px;color:#17201d;font-size:1rem;overflow-wrap:anywhere}.tag-row{gap:8px;flex-wrap:wrap}.tag-row span{min-height:28px;border-radius:8px;background:#eef5ff;border-color:#cfe0ff;color:#224f86}.empty-result{display:grid;min-height:350px;grid-template-columns:minmax(210px,.68fr) minmax(330px,1fr);place-items:center;align-content:center;gap:24px;color:#6a7972;font-weight:900}.empty-state-main{display:grid;place-items:center;gap:10px;text-align:center}.empty-state-main svg{width:52px;height:52px;stroke-width:1.7}.empty-state-main strong{color:#31423a;font-size:1.05rem}.empty-state-main span{max-width:300px;color:#718078;font-size:.94rem;font-weight:700;line-height:1.45}.empty-state-main.no-match{color:#8c271d}.empty-state-main.no-match svg,.empty-state-main.no-match strong{color:#9f2d20}.empty-state-main.no-match span{color:#8c4a41}.expected-card{display:grid;gap:12px;width:min(520px,100%);border:1px solid #e2e9e4;border-radius:8px;padding:14px;background:#fbfcfb}.expected-card-title{color:#31423a;font-size:.82rem;font-weight:950;text-transform:uppercase}.expected-card-body{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:14px}.expected-image{width:88px;height:88px;border-radius:8px;background:linear-gradient(135deg,#13745a14,#2563eb0f),#eef2ef}.expected-fields{display:grid;gap:8px;min-width:0}.expected-line{display:grid;grid-template-columns:126px minmax(0,1fr);align-items:center;gap:10px;min-width:0}.expected-line span{color:#718078;font-size:.78rem;font-weight:900;text-transform:uppercase}.expected-line strong{min-height:25px;border-radius:8px;padding:4px 8px;color:#31423a;background:#eef2ef;font-size:.86rem;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-list,.catalog-table{display:grid;gap:11px}.no-similar-products{display:flex;align-items:center;gap:12px;min-height:92px;border:1px solid #e9b8ae;border-radius:8px;padding:16px;color:#8c271d;background:#fff0ed}.no-similar-products strong,.no-similar-products span{display:block}.no-similar-products strong{color:#8c271d;font-size:1.02rem}.no-similar-products span{margin-top:4px;color:#8c4a41;font-weight:750}.match-row,.product-row{display:grid;align-items:center;gap:12px;min-width:0;border:1px solid #e3e9e4;border-radius:8px;background:#fff}.match-row{grid-template-columns:38px 64px minmax(0,1fr) 62px;min-height:80px;padding:11px 14px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.match-row.high:first-child{border-color:#b9dccf;background:linear-gradient(90deg,#e8f7efa6,#fff 58%)}.match-row.medium:first-child{border-color:#ead28d;background:linear-gradient(90deg,#fff8dfd9,#fff 58%)}.match-row.low:first-child{border-color:#e9b8ae;background:linear-gradient(90deg,#fff0edc7,#fff 58%)}.match-placeholder{opacity:.78}.match-placeholder:first-child{border-color:#e3e9e4;background:#fff}.muted-rank{background:#dfe7e1;color:#607169}.placeholder-image{border:0;background:linear-gradient(135deg,#13745a14,#2563eb0f),#eef2ef}.placeholder-bar span{background:#dce6df}.match-row:hover{border-color:#bfd0c7;box-shadow:0 8px 24px #161f1a0f;transform:translateY(-1px)}.rank{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;color:#fff;background:#23342d;font-size:.92rem;font-weight:900}.match-main{min-width:0}.match-image{display:grid;width:58px;height:58px;place-items:center;overflow:hidden;border:1px solid #e3e9e4;border-radius:8px;background:#eef2ee;color:#6a7972}.match-image img{width:100%;height:100%;object-fit:contain;background:#fff}.match-title{display:flex;justify-content:space-between;gap:12px;min-width:0}.match-title strong,.match-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-title span{color:#65746d;font-weight:800}.match-meta{display:flex;align-items:center;gap:8px;margin-top:5px;min-width:0}.match-meta span{display:inline-flex;align-items:center;min-width:0;min-height:22px;border-radius:999px;padding:2px 8px;color:#5d6e66;background:#f1f4f2;font-size:.78rem;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-meta .high{color:#0e6a4d;background:#e8f7ef}.match-meta .medium{color:#765400;background:#fff3c7}.match-meta .low{color:#8c271d;background:#fff0ed}.confidence-bar{height:8px;margin-top:8px;overflow:hidden;border-radius:999px;background:#e2e8e2}.confidence-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--blue))}.match-row.medium .confidence-bar span{background:linear-gradient(90deg,#9a6a00,#d69e00)}.match-row.low .confidence-bar span{background:linear-gradient(90deg,#9f2d20,#d15d4d)}.score{color:var(--accent);font-weight:950;text-align:right}.match-row.medium .score{color:#765400}.match-row.low .score{color:#9f2d20}.detected-overlay{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:18px;background:#1016148c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.detected-card{position:relative;display:grid;gap:14px;width:min(460px,100%);border:1px solid #c8d8cf;border-radius:8px;padding:22px;background:#fff;box-shadow:0 24px 80px #0c141047}.detected-close{position:absolute;top:12px;right:12px}.detected-icon{display:grid;width:58px;height:58px;place-items:center;border-radius:50%;color:#0e6a4d;background:#e8f7ef;box-shadow:inset 0 0 0 1px #b9dccf}.detected-card h2{margin:-4px 0 0;font-size:1.65rem}.detected-product{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:14px;min-width:0;border:1px solid #e1e6e1;border-radius:8px;padding:10px;background:#fbfcfb}.detected-image{display:grid;width:60px;height:60px;place-items:center;overflow:hidden;border-radius:8px;background:#eef2ee;color:#6a7972}.detected-image img{width:100%;height:100%;object-fit:contain;background:#fff}.detected-product strong,.detected-product span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detected-product span{margin-top:4px;color:#65746d;font-weight:800}.detected-score{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:8px;padding:12px 14px;color:#0e6a4d;background:#e8f7ef;font-weight:850}.detected-score strong{font-size:1.45rem}.detected-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.muted{margin:0;color:#718078;font-weight:700}.section-help{margin:7px 0 0;color:#718078;font-size:.92rem;font-weight:700}.search-box{display:flex;align-items:center;gap:8px;width:min(320px,100%);min-height:40px;border:1px solid #d5ddd6;border-radius:8px;padding:0 10px;color:#6a7972;background:#fff}.catalog-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;width:min(370px,100%)}.catalog-heading{align-items:flex-start}.catalog-source{display:inline-flex;align-items:center;min-height:24px;margin-left:8px;border-radius:999px;padding:3px 8px;color:#176f55;background:#e8f7ef;font-size:.78rem;vertical-align:middle}.search-box input{min-width:0;width:100%;border:0;outline:0;color:#17201d;background:transparent}.product-row{grid-template-columns:54px minmax(180px,1fr) minmax(110px,.5fr) minmax(140px,.5fr) 70px;min-height:68px;padding:8px 12px 8px 8px}.product-row-placeholder{opacity:.72}.mini-image{display:grid;width:46px;height:46px;place-items:center;overflow:hidden;border-radius:8px;background:#eef2ee;color:#6a7972}.mini-image img{width:100%;height:100%;object-fit:cover}.row-text,.row-meta{display:grid;gap:4px;min-width:0}.row-text strong,.row-text span,.row-meta span,.barcode,.stock{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-text span,.row-meta span,.barcode,.stock{color:#65746d;font-size:.9rem;font-weight:750}.row-meta strong{color:#17201d}.barcode,.stock{display:inline-flex;align-items:center;gap:7px}.stock{justify-content:flex-end;color:#0e6a4d}.empty-catalog{display:grid;place-items:center;min-height:260px;border:1px dashed #cbd8cf;border-radius:8px;padding:24px;color:#607169;background:#fbfcfb;text-align:center}.empty-catalog strong{margin-top:10px;color:var(--ink);font-size:1.08rem}.empty-catalog span{max-width:420px;margin-top:6px;font-weight:750;line-height:1.45}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1240px){.topbar{grid-template-columns:1fr}.app-nav{display:flex;flex-wrap:wrap;justify-content:flex-start}.nav-button.user-chip{max-width:220px}}@media(max-width:1060px){.workspace-grid,.lower-grid,.settings-layout{grid-template-columns:1fr}.login-panel{grid-template-columns:1fr;width:min(680px,100%);min-height:auto}.login-brand-side{min-height:330px}.login-brand-shape{width:100%;border-radius:0 0 46% 46%}.login-side-switch{margin-top:26px}.empty-result{grid-template-columns:1fr}.product-row{grid-template-columns:54px minmax(0,1fr) minmax(90px,.35fr) 64px}.barcode{display:none}}@media(max-width:768px){.app-shell{padding:12px}.auth-shell{align-items:start;min-height:100vh;padding:14px}.topbar{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:16px;padding:4px 0 16px}.topbar h1{font-size:clamp(1.45rem,7.5vw,2rem);line-height:1.06}.header-subtitle{max-width:100%;margin-top:6px;font-size:clamp(.82rem,3.5vw,.94rem);line-height:1.36}.panel-heading,.settings-header,.settings-hero,.product-title-row{align-items:flex-start;flex-direction:column}.desktop-nav{display:none}.mobile-nav-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%}.mobile-menu-layer{display:block}.nav-button{justify-content:center;min-width:0;padding:8px 9px;text-align:center;white-space:normal}.mobile-nav-item{justify-content:flex-start;min-height:48px;padding:10px 12px;text-align:left}.mobile-nav-item.user-chip{max-width:none}.odoo-form{grid-template-columns:1fr}.login-panel{width:100%}.login-brand-side,.login-form-side{padding:24px 20px}.login-brand-side{min-height:300px}.login-brand-icon{width:70px;height:70px;margin-bottom:14px}.login-brand-content h2,.login-form-heading h2{font-size:1.7rem}.login-side-switch{min-width:180px}.capture-panel,.result-panel,.matches-panel,.catalog-panel,.settings-panel,.settings-side-panel{padding:16px}.dropzone{min-height:clamp(230px,62vw,330px)}.dropzone img{max-height:360px}.camera-stage,.camera-stage video{min-height:clamp(230px,62vw,330px);max-height:360px}.empty-result{min-height:auto}.empty-result{gap:18px;padding:6px 0}.expected-card{width:100%;padding:12px}.expected-card-body{grid-template-columns:70px minmax(0,1fr);gap:12px;align-items:start}.expected-image{width:64px;height:64px}.expected-line{grid-template-columns:minmax(76px,.72fr) minmax(0,1fr);gap:7px}.expected-line span,.expected-line strong{min-width:0}.expected-line span{font-size:.66rem}.expected-line strong{min-height:24px;font-size:.76rem}.product-detail{grid-template-columns:1fr;min-height:auto}.product-image img{min-height:260px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalog-tools,.secondary-button,.primary-button{width:100%}.match-row{grid-template-columns:42px 62px minmax(0,1fr) auto;grid-template-areas:"rank image main score";align-items:center;gap:10px;min-height:auto;padding:12px}.match-image{grid-area:image;width:58px;height:58px}.rank{grid-area:rank}.match-main{grid-area:main}.score{grid-area:score;justify-self:end}.match-title{display:grid;gap:3px}.match-title strong,.match-title span{overflow:visible;text-overflow:clip;white-space:normal}.match-meta{flex-wrap:wrap}.match-meta span{white-space:normal}.product-row{grid-template-columns:48px minmax(0,1fr) 58px}.detected-actions{grid-template-columns:1fr}.row-meta{display:none}}@media(max-width:640px){.app-shell{padding:10px}.topbar{gap:10px;margin-bottom:12px}.mobile-nav-bar{grid-template-columns:1fr auto}.mobile-menu-toggle{min-width:92px}.workspace-grid,.lower-grid,.settings-layout{gap:12px}.panel{border-radius:8px;box-shadow:0 12px 34px #161f1a0e}.capture-panel,.result-panel,.matches-panel,.catalog-panel,.settings-panel,.settings-side-panel{padding:14px}.panel-heading{gap:8px;margin-bottom:12px}.panel h2{font-size:1rem}.eyebrow{min-height:22px;margin-bottom:7px;padding:4px 8px;font-size:.64rem}.dropzone{min-height:clamp(210px,66vw,285px)}.dropzone img{max-height:310px}.camera-stage,.camera-stage video{min-height:clamp(230px,72vw,320px);max-height:340px}.empty-preview{gap:8px;padding:12px}.empty-preview svg{width:46px;height:46px}.empty-preview strong{font-size:.94rem;line-height:1.28}.empty-preview span{font-size:.82rem}.selected-file{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.link-button{width:100%}.result-panel{grid-template-rows:auto auto auto}.empty-result{gap:14px}.empty-state-main svg{width:42px;height:42px}.empty-state-main strong{font-size:.96rem}.empty-state-main span{max-width:100%;font-size:.84rem}.expected-card{gap:10px}.expected-card-body{grid-template-columns:58px minmax(0,1fr);gap:10px}.expected-image{width:54px;height:54px}.expected-line{grid-template-columns:minmax(72px,.72fr) minmax(0,1fr);gap:6px}.expected-line span,.expected-line strong{white-space:normal;overflow-wrap:anywhere}.recognition-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:11px}.product-detail{gap:14px}.product-image img{min-height:210px;max-height:280px}.metric-grid{grid-template-columns:1fr}.matches-panel{margin-top:12px}.match-list{gap:10px}.match-row{grid-template-columns:40px 56px minmax(0,1fr);grid-template-areas:"rank image main" "rank image score";gap:8px 10px;padding:12px}.rank{width:34px;height:34px}.match-image{width:54px;height:54px}.match-title{gap:4px}.match-title strong{font-size:.94rem;line-height:1.25}.match-title span{font-size:.82rem;line-height:1.25}.match-meta{gap:6px;margin-top:7px}.match-meta span{min-height:21px;padding:2px 7px;font-size:.72rem}.confidence-bar{height:7px;margin-top:9px}.score{justify-self:start;align-self:start;font-size:.98rem;text-align:left}.no-similar-products{align-items:flex-start;padding:14px}.catalog-tools{display:grid;grid-template-columns:1fr auto;gap:8px}.search-box{min-width:0;width:100%}.product-row{grid-template-columns:52px minmax(0,1fr) auto;gap:10px;padding:10px}.product-row .price-col{grid-column:2 / -1}}@media(max-width:480px){.app-shell{padding:8px}.topbar h1{font-size:clamp(1.35rem,8vw,1.75rem)}.header-subtitle{font-size:.8rem}.mobile-nav-bar{grid-template-columns:minmax(0,1fr) 82px}.mobile-menu-toggle{min-width:0;padding:0 10px}.mobile-menu-panel{width:calc(100vw - 16px);padding:14px}.capture-panel,.result-panel,.matches-panel,.catalog-panel,.settings-panel,.settings-side-panel{padding:12px}.dropzone{min-height:218px}.camera-stage,.camera-stage video{min-height:245px}.focus-helper{display:none}.focus-reset-button{top:8px;right:8px;min-height:30px;padding:0 9px;font-size:.72rem}.action-row{grid-template-columns:1fr}.secondary-button,.primary-button{min-height:44px;padding:0 10px;font-size:.9rem}.expected-card-body{grid-template-columns:52px minmax(0,1fr)}.expected-image{width:48px;height:48px}.expected-line{grid-template-columns:minmax(68px,.66fr) minmax(0,1fr)}.expected-line span{font-size:.6rem}.expected-line strong{font-size:.72rem}.recognition-summary{grid-template-columns:1fr}.summary-score{justify-self:start;min-width:58px}.product-info h3{font-size:1.18rem}.match-row{grid-template-columns:36px 50px minmax(0,1fr);gap:8px;padding:11px}.match-image{width:48px;height:48px}.rank{width:32px;height:32px}.product-row{grid-template-columns:48px minmax(0,1fr)}.product-row .stock-col,.stock{justify-self:start}.settings-actions{display:grid;grid-template-columns:1fr}}
