:root{color-scheme:light;--primary:#de6a12;--primary-2:#f08a38;--primary-ink:#fff;--primary-soft:#fceedf;--primary-ring:rgba(222,106,18,.32);--bg:#e4e2dd;--bg-2:#eeece7;--surface:#faf9f6;--surface-2:#f0eee9;--surface-3:#e9e6e0;--border:#dcd8d1;--border-strong:#c9c5bf;--text:#1c1b19;--text-2:#57544f;--muted:#8a867f;--success:#2e7d46;--success-soft:#e7f0ea;--success-border:#bcd9c6;--danger:#c0402b;--danger-soft:#f7e7e4;--danger-border:#eac4bc;--gold:#b5820a;--radius:14px;--radius-sm:11px;--radius-lg:22px;--shadow-xs:0 1px 2px rgba(28,27,25,.06);--shadow-sm:0 1px 3px rgba(28,27,25,.09),0 1px 2px rgba(28,27,25,.05);--shadow-md:0 8px 22px -10px rgba(28,27,25,.28),0 3px 8px -5px rgba(28,27,25,.14);--shadow-lg:0 26px 52px -18px rgba(28,27,25,.4),0 10px 22px -12px rgba(28,27,25,.22);--glow-primary:0 8px 18px -8px rgba(222,106,18,.7);--ease:cubic-bezier(.22,.61,.36,1);--font-sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:3px solid transparent;border-radius:20px}body,html{background:radial-gradient(1100px 560px at 100% -8%,rgba(222,106,18,.07),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font-sans);font-size:15px;margin:0;min-height:100dvh;padding:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}h1,h2,h3{font-weight:600;letter-spacing:-.02em;margin:0}.mono{font-family:var(--font-mono);font-size:.9em}.muted{color:var(--muted)}.app-container{display:flex;flex-direction:column;min-height:100dvh}.app-header{backdrop-filter:saturate(150%) blur(14px);-webkit-backdrop-filter:saturate(150%) blur(14px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border-strong) 60%,transparent);gap:12px;justify-content:space-between;padding:calc(11px + var(--safe-top)) 18px 11px;position:sticky;top:0;z-index:20}.app-header,.logo-area{align-items:center;display:flex}.logo-area{gap:11px}.logo-icon{background:linear-gradient(150deg,var(--primary-2),var(--primary));border-radius:12px;box-shadow:var(--glow-primary);color:#fff;display:grid;height:38px;place-items:center;width:38px}.app-header h1{font-size:17px;line-height:1.05}.subtitle{color:var(--muted);font-size:11px;font-weight:500;letter-spacing:0;margin:1px 0 0}.user-area{align-items:center;display:flex;gap:8px}.user-name{color:var(--text-2);font-size:13.5px;font-weight:500;max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-main{animation:fade-in .35s var(--ease);flex:1;margin:0 auto;max-width:980px;padding:20px 16px calc(28px + var(--safe-bottom));width:100%}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px}.card+.card{margin-top:14px}.card-header{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:16px}.card-header h2{font-size:16px}.card-header h2,.card-header h3{align-items:center;display:flex;gap:9px}.card-header h3{font-size:15px}.card-header h2 svg,.card-header h3 svg{color:var(--primary)}.header-left{display:flex}.btn,.header-left{align-items:center;gap:8px}.btn{border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:14px;font-weight:600;justify-content:center;letter-spacing:-.01em;min-height:44px;padding:11px 18px;transition:transform .12s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease),filter .18s var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:translateY(1px) scale(.99)}.btn:disabled{box-shadow:none;cursor:default;opacity:.5;transform:none}.btn-primary{background:linear-gradient(150deg,var(--primary-2),var(--primary));box-shadow:var(--glow-primary),inset 0 1px #ffffff38;color:var(--primary-ink)}.btn-primary:not(:disabled):hover{box-shadow:0 12px 24px -8px #de6a12cc,inset 0 1px #ffffff47;filter:brightness(1.03)}.btn-action,.btn-secondary{background:var(--surface);border-color:var(--border-strong);box-shadow:var(--shadow-xs);color:var(--text)}.btn-action:not(:disabled):hover,.btn-secondary:not(:disabled):hover{background:var(--surface-2);border-color:var(--muted)}.btn-icon{background:transparent;border:1px solid transparent;border-radius:11px;color:var(--muted);cursor:pointer;display:inline-grid;height:40px;place-items:center;transition:background .15s var(--ease),color .15s var(--ease),transform .12s var(--ease);width:40px}.btn-icon:hover{background:var(--surface-2);color:var(--text)}.btn-icon:active{transform:scale(.92)}.file-btn{overflow:hidden;position:relative}.badge{align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text-2);display:inline-flex;font-size:11.5px;font-weight:600;gap:5px;letter-spacing:.01em;padding:3px 10px}.badge-success{background:var(--success-soft);border-color:var(--success-border);color:var(--success)}.badge-danger{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.chip{align-items:center;background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 22%,transparent);border-radius:8px;color:#a4530d;display:inline-flex;font-size:12px;font-weight:500;margin:2px 4px 2px 0;padding:3px 9px}.dashboard{animation:fade-in .35s var(--ease)}.module-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.module-tile{align-items:center;cursor:pointer;display:flex;flex-direction:column;gap:13px;padding:26px 16px;text-align:center;transition:transform .16s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}.module-tile:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));box-shadow:var(--shadow-md);transform:translateY(-3px)}.module-icon{background:linear-gradient(150deg,#fdf3e7,var(--primary-soft));border-radius:16px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary);display:grid;height:58px;place-items:center;transition:transform .16s var(--ease);width:58px}.module-tile:hover .module-icon{transform:scale(1.06)}.module-name{font-size:14px;font-weight:600;letter-spacing:-.01em}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.field>span{color:var(--text-2);font-size:12.5px;font-weight:600;letter-spacing:-.01em}.field input:not([type]),.field input[type=password],.field input[type=text]{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-sans);font-size:15px;padding:12px 13px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background .15s var(--ease);width:100%}.field input::-moz-placeholder{color:var(--muted)}.field input::placeholder{color:var(--muted)}.field input:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring);outline:none}.field.check{align-items:center;flex-direction:row;gap:9px}.checkbox-list{display:flex;flex-direction:column;gap:4px;margin:0 -4px;max-height:280px;overflow:auto;padding:4px}.check{align-items:center;border-radius:9px;cursor:pointer;display:flex;font-size:14px;gap:10px;padding:7px 8px;transition:background .14s var(--ease)}.check:hover{background:var(--surface-2)}.check.disabled{cursor:default;opacity:.55}.check input[type=checkbox]{accent-color:var(--primary);cursor:pointer;height:18px;width:18px}.check code{background:var(--surface-2);border-radius:6px;color:var(--muted);font-family:var(--font-mono);font-size:11.5px;padding:1px 6px}.form-error{background:var(--danger-soft);border:1px solid var(--danger-border);border-radius:10px;color:var(--danger);font-size:13px;margin:4px 0;padding:9px 12px}.table-card{overflow:hidden;padding:0}.table-card .data-table{display:block;overflow-x:auto}.data-table{border-collapse:collapse;font-size:14px;width:100%}.data-table td,.data-table th{border-bottom:1px solid var(--border);padding:13px 16px;text-align:left;white-space:nowrap}.data-table th{background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.data-table tbody tr{transition:background .14s var(--ease)}.data-table tbody tr:hover{background:var(--surface-2)}.data-table tr:last-child td{border-bottom:none}.data-table tr.inactive{opacity:.5}.row-actions{display:flex;gap:2px;justify-content:flex-end}.product-info .data-table{border:1px solid var(--border);border-radius:12px;margin-top:4px;overflow:hidden}.login-wrap{background:radial-gradient(900px 520px at 50% -18%,rgba(222,106,18,.16),transparent 60%);display:grid;min-height:100dvh;padding:20px;place-items:center}.login-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:380px;padding:30px 26px;text-align:center;width:100%}.login-logo{background:linear-gradient(150deg,var(--primary-2),var(--primary));border-radius:20px;box-shadow:0 14px 30px -10px var(--primary-ring);color:#fff;display:grid;height:66px;margin:4px auto 16px;place-items:center;width:66px}.login-card h1{font-size:23px}.login-sub{color:var(--muted);font-size:14px;margin:5px 0 22px}.login-card .field{text-align:left}.login-card .btn{margin-top:8px;width:100%}.scanner-actions{display:flex;flex-wrap:wrap;gap:10px}.scanner-actions .btn{flex:1;min-width:150px}.sidebar-grid{display:flex;flex-direction:column;gap:14px;margin-top:14px}.result-text{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-mono);font-size:14px;line-height:1.5;min-height:66px;padding:12px 13px;resize:vertical;width:100%}.action-grid{display:flex;gap:10px;margin-top:10px}.action-grid .btn{flex:1}.product-info h3{font-size:17px;margin-bottom:14px}.product-details-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-bottom:12px}.detail-item{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:3px;padding:10px 12px}.detail-label{color:var(--muted);font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.detail-value{font-size:15px;font-weight:600}.product-loading{display:grid;padding:28px;place-items:center}.spinner{animation:spin .75s linear infinite;border:3px solid var(--border);border-radius:50%;border-top-color:var(--primary);height:30px;width:30px}@keyframes spin{to{transform:rotate(1turn)}}.history-list{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.history-item{align-items:center;border-bottom:1px solid var(--border);border-radius:10px;display:flex;gap:8px;margin:0 -8px;padding:11px 8px;transition:background .14s var(--ease)}.history-item:hover{background:var(--surface-2)}.history-item:last-child{border-bottom:none}.history-item-main{cursor:pointer;flex:1;min-width:0}.history-item-title{display:block;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-meta{font-size:12px;gap:8px;margin-top:2px}.empty-state,.history-item-meta{align-items:center;color:var(--muted);display:flex}.empty-state{flex-direction:column;gap:10px;padding:30px 16px;text-align:center}.empty-state svg{opacity:.55}.empty-state h2{color:var(--text);font-size:18px}.modal-overlay{align-items:flex-end;animation:overlay-in .2s var(--ease);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1c1b1980;display:flex;inset:0;justify-content:center;position:fixed;z-index:50}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal-form,.modal-scanner{animation:sheet-up .28s var(--ease);background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lg);max-width:520px;padding-bottom:calc(18px + var(--safe-bottom));width:100%}.modal-form:before,.modal-scanner:before{background:var(--border-strong);border-radius:999px;content:"";display:block;height:4px;margin:-6px auto 14px;width:40px}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.reader{aspect-ratio:1/1;background:#14110d;border-radius:16px;overflow:hidden;position:relative;width:100%}.reader video{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.reader-frame{box-shadow:0 0 0 100vmax #14110d70;inset:16%;pointer-events:none;transition:box-shadow .15s var(--ease)}.reader-frame,.reader-frame:before{border-radius:16px;position:absolute}.reader-frame:before{background:linear-gradient(var(--primary-2),var(--primary-2)) 0 0 /26px 3px no-repeat,linear-gradient(var(--primary-2),var(--primary-2)) 0 0 /3px 26px no-repeat,linear-gradient(var(--primary-2),var(--primary-2)) 100% 0 /26px 3px no-repeat,linear-gradient(var(--primary-2),var(--primary-2)) 100% 0 /3px 26px no-repeat,linear-gradient(var(--primary-2),var(--primary-2)) 0 100% /26px 3px no-repeat,linear-gradient(var(--primary-2),var(--primary-2)) 0 100% /3px 26px no-repeat,linear-gradient(var(--primary-2),var(--primary-2)) 100% 100% /26px 3px no-repeat,linear-gradient(var(--primary-2),var(--primary-2)) 100% 100% /3px 26px no-repeat;content:"";filter:drop-shadow(0 0 6px var(--primary-ring));inset:0}.reader-frame:after{animation:scanline 2.2s var(--ease) infinite;background:linear-gradient(90deg,transparent,var(--primary-2),transparent);box-shadow:0 0 12px 2px #f08a38b3;content:"";height:2px;left:8%;position:absolute;right:8%;top:0}@keyframes scanline{0%{opacity:0;top:6%}15%{opacity:1}85%{opacity:1}to{opacity:0;top:94%}}.reader-frame.flash{box-shadow:0 0 0 100vmax #2e7d4652,inset 0 0 0 3px #4caf6e}.reader-frame.flash:after{animation:none;opacity:0}.camera-controls{align-items:center;display:flex;gap:10px;margin-top:14px}.camera-select{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);flex:1;font-family:var(--font-sans);font-size:14px;padding:11px 12px}.camera-controls .btn-icon{background:var(--surface-2);border-color:var(--border);height:44px;width:44px}.modal-form{max-width:480px;padding:22px}.modal-form h3{font-size:17px;margin-bottom:16px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}@media(min-width:640px){.modal-overlay{align-items:center;padding:20px}.modal-form,.modal-scanner{border-radius:var(--radius-lg);padding-bottom:22px}.modal-form:before,.modal-scanner:before{display:none}.product-details-grid{grid-template-columns:repeat(4,1fr)}}
