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