:root{--bg-primary:#f8fafc;--bg-secondary:#f1f5f9;--bg-surface:#fff;--bg-card:#fff;--bg-card-hover:#f8fafc;--border-color:#e2e8f0;--border-subtle:#cbd5e1;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--accent-blue:#0284c7;--accent-blue-hover:#0369a1;--accent-purple:#6366f1;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#ef4444;--gradient-primary:linear-gradient(135deg, #0284c7 0%, #2563eb 100%);--gradient-glow:radial-gradient(circle at 50% 0%, #0284c70f, transparent 70%);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 16px #00000014;--shadow-glow:0 0 20px #0284c726;--table-code-color:#0284c7;--table-name-color:#0f172a;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}[data-theme=dark]{--bg-primary:#0b1329;--bg-secondary:#131f37;--bg-surface:#1e293b;--bg-card:#1a2642d9;--bg-card-hover:#24345af2;--border-color:#ffffff1f;--border-subtle:#ffffff0f;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-blue:#38bdf8;--accent-blue-hover:#0284c7;--accent-purple:#818cf8;--accent-emerald:#34d399;--accent-amber:#fbbf24;--accent-rose:#f43f5e;--table-code-color:#fb923c;--table-name-color:#fff;--gradient-primary:linear-gradient(135deg, #6366f1 0%, #38bdf8 100%);--gradient-glow:radial-gradient(circle at 50% 0%, #38bdf81f, transparent 70%);--shadow-sm:0 2px 6px #00000040;--shadow-md:0 8px 24px #00000059;--shadow-glow:0 0 20px #38bdf840}.master-code-cell{font-family:var(--font-mono,monospace);font-weight:700;color:var(--table-code-color,#0284c7)!important}.master-name-cell{font-weight:600;color:var(--table-name-color,#0f172a)!important}[data-theme=dark] .master-code-cell,.dark .master-code-cell,body[data-theme=dark] .master-code-cell,html[data-theme=dark] .master-code-cell,[data-theme=dark] span.master-code-cell{color:#fb923c!important}[data-theme=dark] .master-name-cell,.dark .master-name-cell,body[data-theme=dark] .master-name-cell,html[data-theme=dark] .master-name-cell,[data-theme=dark] span.master-name-cell{color:#fff!important}@media (width<=768px){.desktop-nav-only{display:none!important}}@media (width>=769px){.mobile-bottom-nav{display:none!important}}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-sans);background-color:var(--bg-primary);background-image:var(--gradient-glow);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}.font-mono{font-family:var(--font-mono)}.font-bold{font-weight:600}.text-accent-blue{color:var(--accent-blue)!important}.text-accent-emerald{color:var(--accent-emerald)!important}.text-muted{color:var(--text-muted)!important}.text-right{text-align:right!important}.opacity-40{opacity:.4}.app-navbar{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-color);z-index:50;background:#0b1329d9;justify-content:space-between;align-items:center;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}.app-brand{align-items:center;gap:.75rem;display:flex}.app-brand-icon{border-radius:var(--radius-md);background:var(--gradient-primary);color:#fff;width:38px;height:38px;box-shadow:var(--shadow-glow);justify-content:center;align-items:center;display:flex}.app-title-group h1{color:var(--text-primary);font-size:1.15rem;font-weight:700;line-height:1.2}.app-title-group p{color:var(--text-secondary);font-size:.78rem}.app-actions{align-items:center;gap:.6rem;display:flex}.btn-pill{border-radius:var(--radius-full);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background:#ffffff0d;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.82rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-pill:hover{border-color:var(--accent-blue);background:#ffffff1a;transform:translateY(-1px)}.btn-pill.primary{background:var(--accent-blue);color:#0b1329;border-color:var(--accent-blue);font-weight:600}.btn-pill.primary:hover{box-shadow:var(--shadow-glow);background:#7dd3fc}.app-container{box-sizing:border-box;flex-direction:column;flex:1;max-width:100%;padding:1rem 1.5rem;display:flex}.app-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.toolbar-left{flex:1;align-items:center;gap:.75rem;min-width:280px;max-width:480px;display:flex}.toolbar-right{align-items:center;gap:.5rem;display:flex}.search-box{border:1.5px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-surface);align-items:center;width:100%;height:38px;padding:0 10px;transition:border-color .2s,box-shadow .2s;display:flex}.search-box:focus-within{border-color:var(--accent-blue);box-shadow:0 0 0 3px #38bdf833}.search-icon{color:var(--text-muted);flex-shrink:0;margin-right:8px}.search-input{min-width:0;color:var(--text-primary);outline:none;flex:1;font-size:.88rem;background:0 0!important;border:none!important}.search-input::placeholder{color:var(--text-muted)}.search-clear-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:2px;display:flex}.search-clear-btn:hover{color:var(--text-primary);background:#ffffff1a}.category-nav-panel{width:100%;margin-bottom:.75rem}.category-tabs{scrollbar-width:thin;align-items:center;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.category-tabs::-webkit-scrollbar{height:4px}.category-tabs::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.category-pill{border-radius:var(--radius-full);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#131f37cc;align-items:center;gap:6px;padding:.35rem .75rem;font-size:.82rem;transition:all .15s;display:inline-flex}.category-pill:hover{color:var(--text-primary);background:#1a2642e6;border-color:#ffffff40}.category-pill.active{background:var(--accent-blue);color:#0b1329;border-color:var(--accent-blue);font-weight:600;box-shadow:0 0 12px #38bdf859}.cat-code-badge{background:#ffffff1a;border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.72rem;font-weight:700;display:inline-flex}.category-pill.active .cat-code-badge{color:#0b1329;background:#0b132933}.pill-badge{border-radius:var(--radius-full);background:#ffffff14;padding:1px 6px;font-size:.72rem}.category-pill.active .pill-badge{color:#0b1329;background:#0b132940}.virtual-table-root{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);height:100%;min-height:0;max-height:100%;box-shadow:var(--shadow-sm);flex-direction:column;flex:1;display:flex;overflow:hidden}.table-status-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);color:var(--text-secondary);flex-shrink:0;justify-content:space-between;align-items:center;padding:.5rem 1rem;font-size:.82rem;display:flex}[data-theme=dark] .table-status-bar{background:#131f37e6}.status-left{align-items:center;gap:.5rem;display:flex}.selected-badge{color:var(--accent-blue);border-radius:var(--radius-full);background:#0284c71f;border:1px solid #0284c740;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;display:inline-flex}[data-theme=dark] .selected-badge{background:#38bdf826;border-color:#38bdf84d}.virtual-viewport{contain:content;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--bg-card);outline:none;flex:1;position:relative;height:100%!important;min-height:0!important;max-height:100%!important;overflow:auto scroll!important}.virtual-h-wrapper{width:max-content;min-width:100%}table.excel-table{border-collapse:collapse;table-layout:fixed;border-spacing:0;background:var(--bg-card);width:max-content;min-width:100%;font-size:.86rem}table.excel-table thead{z-index:20;position:sticky;top:0}table.excel-table th{color:#334155;border-right:1px solid var(--border-color);white-space:nowrap;-webkit-user-select:none;user-select:none;z-index:10;box-sizing:border-box;background:#f8fafc;border-bottom:2px solid #cbd5e1;height:38px;padding:0;font-size:.84rem;font-weight:700;position:sticky;top:0;overflow:hidden}[data-theme=dark] table.excel-table th{color:#cbd5e1;background:#192642;border-bottom:1.5px solid #38bdf8;border-right:1px solid #2d3f66}.resizer{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;z-index:15;background:0 0;width:6px;height:100%;transition:background .15s;position:absolute;top:0;right:0}.resizer:hover,.resizer.isResizing{background:var(--accent-blue)!important;opacity:1!important}.table-header-content{box-sizing:border-box;cursor:pointer;justify-content:space-between;align-items:center;width:100%;height:100%;padding:6px 10px;display:flex}.table-header-content:hover{background:#0000000a}[data-theme=dark] .table-header-content:hover{background:#ffffff0d}.table-header-content.align-right{justify-content:flex-end}.table-header-content.align-center{justify-content:center}.sort-icon-wrapper{align-items:center;margin-left:6px;display:inline-flex}.sort-icon.active{color:var(--accent-blue)}.sort-icon.inactive{opacity:.3}table.excel-table tr{height:40px;transition:background-color .12s}table.excel-table td{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);height:40px;max-height:40px;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;background:#fff;padding:2px 10px;line-height:1.35;overflow:hidden}table.excel-table tr:hover td{background-color:#f0f9ff}table.excel-table tr.row-selected td{background-color:#e0f2fe}[data-theme=dark] table.excel-table td{border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);background:#0f172a73}[data-theme=dark] table.excel-table tr:hover td{background-color:#38bdf814}[data-theme=dark] table.excel-table tr.row-selected td{background-color:#38bdf829}.checkbox-btn{cursor:pointer;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.th-checkbox-wrapper,.td-checkbox-wrapper{justify-content:center;align-items:center;width:100%;display:flex}.characteristic-badge{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:5px;padding:2px 8px;font-size:.78rem;font-weight:500;transition:all .15s;display:inline-flex}.characteristic-badge:hover{filter:brightness(1.2);transform:scale(1.02)}.badge-normal{color:#34d399;background:#34d39926;border-color:#34d39966}.badge-small{color:#38bdf8;background:#38bdf826;border-color:#38bdf866}.badge-bulk{color:#c084fc;background:#a855f726;border-color:#a855f766}.cell-input-disguise{border:1px solid #0000;border-radius:4px;align-items:center;width:100%;height:30px;padding:0 4px;transition:all .15s;display:flex}.cell-input-disguise:hover{background:#ffffff08;border-color:#ffffff26}.cell-input-disguise.focused{border-color:var(--accent-blue);background:#0f172ae6;box-shadow:0 0 0 2px #38bdf833}.cell-hidden-input{width:100%;color:var(--text-primary);text-align:center;outline:none;font-size:.86rem;background:0 0!important;border:none!important}.product-name-cell{text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}.barcode-cell{color:var(--text-secondary);align-items:center;gap:6px;font-size:.82rem;display:flex}.barcode-icon{opacity:.5}.cat-badge{color:var(--text-secondary);background:#ffffff14;border-radius:4px;padding:1px 6px;font-size:.75rem;font-weight:600;display:inline-flex}.notes-badge{color:#fbbf24;text-overflow:ellipsis;background:#fbbf2426;border-radius:4px;max-width:130px;padding:1px 6px;font-size:.75rem;display:inline-block;overflow:hidden}.empty-cell,.loading-cell{text-align:center;background:0 0!important;height:280px!important}.table-empty,.table-loader{flex-direction:column;justify-content:center;align-items:center;padding:3rem 1rem;display:flex}.empty-icon{color:var(--text-muted);opacity:.4;margin-bottom:.75rem}.empty-title{color:var(--text-primary);margin-bottom:.25rem;font-size:1.05rem;font-weight:600}.empty-subtitle{color:var(--text-muted);font-size:.82rem}.spinner{border:3px solid #38bdf833;border-top-color:var(--accent-blue);border-radius:50%;width:32px;height:32px;margin-bottom:.75rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.app-container{padding:.75rem}.virtual-viewport{height:100%!important}table.excel-table tr{height:48px!important}table.excel-table td{padding:4px 8px;font-size:.9rem;height:48px!important;max-height:48px!important}table.excel-table th{height:42px;padding:0}}.master-db-container .table-status-bar{display:none!important}.master-db-container .virtual-viewport{background:#fff!important;border:none!important;border-radius:0!important}.master-db-container table.excel-table th{color:#475569!important;background:#f8fafc!important;border-bottom:2px solid #cbd5e1!important;border-right:1px solid #e2e8f0!important;font-weight:700!important}.master-db-container table.excel-table th:hover{background:#f1f5f9!important}.master-db-container table.excel-table td{color:#1e293b!important;background:#fff!important;border-bottom:1px solid #e2e8f0!important;border-right:1px solid #f1f5f9!important;font-size:.86rem!important}.master-db-container table.excel-table tr:hover td{background-color:#f0f9ff!important}.master-db-container table.excel-table tr.row-selected td{background-color:#e0f2fe!important}.app-main-workspace{flex-direction:column;flex:1;width:100%;min-height:0;padding:8px 4px 72px;display:flex;overflow:hidden}@media (width>=768px){.app-main-workspace{padding:12px 14px 24px}}.settings-scroll-container{width:100%;max-width:1100px;height:100%;margin:0 auto;padding:.25rem .25rem 2rem;overflow-y:auto}.settings-card-section{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:16px;flex-direction:column;gap:1.25rem;width:100%;padding:1.25rem 1rem;display:flex;box-shadow:0 4px 20px #0000000d}@media (width<=640px){.settings-card-section{border-radius:12px;padding:1rem .65rem}.settings-scroll-container{padding:.15rem .15rem 2rem}}.dataset-switcher{border-radius:var(--radius-full);border:1px solid var(--border-color);background:#ffffff0a;align-items:center;gap:.35rem;padding:3px;display:flex}.dataset-btn{color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;padding:3px 8px;font-size:.76rem;font-weight:500;transition:all .15s}.dataset-btn:hover{color:var(--text-primary)}.dataset-btn.active{background:var(--accent-blue);color:#0b1329;font-weight:600}
