@import"https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=IBM+Plex+Sans:wght@400;500;600&display=swap";:root{color-scheme:light;--bg: #f4f6f9;--surface: #ffffff;--surface-alt: #f4f6f8;--border: #e2e6ec;--border-strong: #ccd2dc;--text-primary: #171a21;--text-secondary: #4c5563;--text-muted: #697180;--accent: #3257c9;--accent-hover: #274499;--accent-tint: #e8eefc;--sae: #b45c0c;--sae-tint: #fbeada;--avionics: #3c4794;--avionics-tint: #e9ebf6;--success: #1a7f4f;--success-tint: #e2f2e9;--warning: #8f5f06;--warning-tint: #faeecf;--danger: #b53535;--danger-tint: #fbe6e6;--common: #5f6775;--common-tint: #eceef1;--avatar-admin: #2b3040;--overlay: rgba(20, 24, 33, .42);--focus-ring: var(--accent);--radius-lg: 14px;--radius-md: 10px;--radius-sm: 6px;--shadow-card: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .07);--shadow-drawer: -8px 0 28px rgba(16, 24, 40, .14);--cat-fasteners: #565d6b;--cat-fasteners-bg: #eef0f2;--cat-raw: #866731;--cat-raw-bg: #f4ecdd;--cat-composites: #63548c;--cat-composites-bg: #eee9f5;--cat-electronics: #1a726e;--cat-electronics-bg: #e0f2f0;--cat-avionics: #3c4794;--cat-avionics-bg: #e9ebf6;--cat-propellers: #3f7d3a;--cat-propellers-bg: #e6f1df;--cat-tools: #494d56;--cat-tools-bg: #ebeced;--cat-adhesives: #9a4a2b;--cat-adhesives-bg: #f6e7e0;--cat-other: #565d6b;--cat-other-bg: #eef0f2}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #0b0d10;--surface: #15181d;--surface-alt: #1d212a;--border: #2a2f39;--border-strong: #3b424f;--text-primary: #edeff3;--text-secondary: #b2bac7;--text-muted: #8a94a3;--accent: #7098f2;--accent-hover: #8fadf6;--accent-tint: #18233f;--sae: #e0913f;--sae-tint: #2a1c0c;--avionics: #8f9ada;--avionics-tint: #191d30;--success: #45c483;--success-tint: #102a1c;--warning: #dda63a;--warning-tint: #2b2210;--danger: #e46b6b;--danger-tint: #2e1616;--common: #9aa2af;--common-tint: #23272f;--avatar-admin: #495064;--overlay: rgba(0, 0, 0, .6);--shadow-card: 0 1px 2px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .45);--shadow-drawer: -8px 0 40px rgba(0, 0, 0, .7);--cat-fasteners: #9aa3b2;--cat-fasteners-bg: #1e222b;--cat-raw: #c9a668;--cat-raw-bg: #29231a;--cat-composites: #a48fd0;--cat-composites-bg: #221d31;--cat-electronics: #45bdb6;--cat-electronics-bg: #12262a;--cat-avionics: #8f9ada;--cat-avionics-bg: #1b1f31;--cat-propellers: #63bf5c;--cat-propellers-bg: #13210f;--cat-tools: #8b929f;--cat-tools-bg: #1d212a;--cat-adhesives: #d38a63;--cat-adhesives-bg: #291c15;--cat-other: #9aa3b2;--cat-other-bg: #1e222b}}:root[data-theme=dark]{color-scheme:dark;--bg: #0b0d10;--surface: #15181d;--surface-alt: #1d212a;--border: #2a2f39;--border-strong: #3b424f;--text-primary: #edeff3;--text-secondary: #b2bac7;--text-muted: #8a94a3;--accent: #7098f2;--accent-hover: #8fadf6;--accent-tint: #18233f;--sae: #e0913f;--sae-tint: #2a1c0c;--avionics: #8f9ada;--avionics-tint: #191d30;--success: #45c483;--success-tint: #102a1c;--warning: #dda63a;--warning-tint: #2b2210;--danger: #e46b6b;--danger-tint: #2e1616;--common: #9aa2af;--common-tint: #23272f;--avatar-admin: #495064;--overlay: rgba(0, 0, 0, .6);--shadow-card: 0 1px 2px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .45);--shadow-drawer: -8px 0 40px rgba(0, 0, 0, .7);--cat-fasteners: #9aa3b2;--cat-fasteners-bg: #1e222b;--cat-raw: #c9a668;--cat-raw-bg: #29231a;--cat-composites: #a48fd0;--cat-composites-bg: #221d31;--cat-electronics: #45bdb6;--cat-electronics-bg: #12262a;--cat-avionics: #8f9ada;--cat-avionics-bg: #1b1f31;--cat-tools: #8b929f;--cat-tools-bg: #1d212a;--cat-adhesives: #d38a63;--cat-adhesives-bg: #291c15;--cat-other: #9aa3b2;--cat-other-bg: #1e222b}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:IBM Plex Sans,system-ui,sans-serif;color:var(--text-primary);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}h1,h2,h3,.font-display{font-family:Manrope,system-ui,sans-serif;margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{font-family:inherit;cursor:pointer;color:inherit}input,select,textarea{font-family:inherit}::placeholder{color:var(--text-muted);opacity:1}::selection{background:var(--accent-tint);color:var(--text-primary)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}a:focus-visible,button:focus-visible,.chip:focus-visible,.navitem:focus-visible,.navitem-mobile:focus-visible,.tab:focus-visible,.item-card:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation-duration:.001ms!important}}.app-shell{display:flex;height:100%}.sidebar{width:236px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between;padding:20px 14px;overflow-y:auto}.brand{display:flex;align-items:center;justify-content:center;background:#000;border-radius:var(--radius-md);padding:14px 16px;margin-bottom:16px}.brand-logo-img{width:100%;max-width:178px;height:auto;display:block}.brand-logo{width:32px;height:32px;border-radius:8px;background:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.brand-name{font-family:Manrope;font-weight:800;font-size:14.5px}.nav{display:flex;flex-direction:column;gap:2px}.navitem{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;color:var(--text-secondary);border:none;background:none;width:100%;text-align:left;transition:background-color .12s,color .12s}.navitem:hover{background:var(--surface-alt);color:var(--text-primary)}.navitem.active{background:var(--accent-tint);color:var(--accent)}.navitem .count{margin-left:auto;background:var(--warning-tint);color:var(--warning);font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px}.user-chip{display:flex;align-items:center;gap:10px;padding:6px 8px}.avatar{width:32px;height:32px;border-radius:999px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.main{flex:1;overflow:hidden;display:flex;flex-direction:column;min-width:0}.topbar{min-height:64px;flex-shrink:0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 28px;background:var(--surface)}.topbar h1{font-weight:700;font-size:17px}.topbar .sub{font-size:11.5px;color:var(--text-muted);margin-top:2px}.topbar-titles{min-width:0}.topbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.topbar-theme{display:none}.content{flex:1;overflow-y:auto;padding:24px 28px}.theme-toggle{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-alt)}.theme-toggle button{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:none;background:none;color:var(--text-muted);padding:5px 9px;border-radius:999px;font-size:12px;font-weight:600;line-height:1}.theme-toggle button:hover{color:var(--text-primary)}.theme-toggle button.active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-card)}.theme-toggle.compact button{padding:6px}.seg-btn{display:flex;align-items:center;justify-content:center;padding:8px 11px;border:none;background:var(--surface);color:var(--text-muted);transition:background-color .12s,color .12s}.seg-btn:hover{background:var(--surface-alt);color:var(--text-primary)}.seg-btn.active{background:var(--accent-tint);color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.grid{display:grid;gap:16px}.row{display:flex;gap:10px;align-items:center}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);font-weight:600;font-size:13px;padding:9px 14px;display:inline-flex;align-items:center;gap:7px;justify-content:center;transition:background-color .12s,border-color .12s}.btn:hover{background:var(--surface-alt)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-success{background:var(--success);border-color:var(--success);color:#fff}.btn-success:hover{filter:brightness(1.05);background:var(--success)}.btn-danger-outline{color:var(--danger);border-color:var(--border-strong)}.btn-danger-outline:hover{border-color:var(--danger);background:var(--danger-tint)}.btn-sm{padding:6px 12px;font-size:12px}.btn:disabled{opacity:.55;cursor:default}.input,.select,.textarea{width:100%;padding:10px 13px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:13.5px;outline:none;background:var(--surface);color:var(--text-primary);transition:border-color .12s,box-shadow .12s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23697180' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:32px}.textarea{resize:vertical;min-height:68px}.lbl{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;display:block}.chip{padding:6px 13px;border-radius:999px;font-size:12.5px;font-weight:600;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:background-color .12s,color .12s,border-color .12s}.chip:hover{border-color:var(--text-muted);color:var(--text-primary)}.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.pill{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}.dot{display:inline-block;width:8px;height:8px;border-radius:999px;flex-shrink:0}table{border-collapse:collapse;width:100%}th{text-align:left;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:0 10px 10px}td{padding:12px 10px;font-size:13.5px;border-top:1px solid var(--border);vertical-align:middle;color:var(--text-primary)}tbody tr{transition:background-color .12s}tbody tr:hover{background:var(--surface-alt)}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{padding:15px 17px;display:flex;flex-direction:column}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.stat .label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.stat-icon{width:27px;height:27px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat .value{font-family:Manrope;font-weight:800;font-size:23px;letter-spacing:-.01em;margin-top:10px;color:var(--text-primary);font-variant-numeric:tabular-nums}.stat .hint{font-size:11.5px;color:var(--text-muted);margin-top:3px}.hint{color:var(--text-muted)}.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.item-card{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-card);cursor:pointer;color:var(--text-primary);transition:border-color .12s,background .12s,transform .12s}.item-card:hover{border-color:var(--border-strong);background:var(--surface-alt);transform:translateY(-1px)}.cat-icon{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:40;animation:fade-in .15s ease}.drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:92vw;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-drawer);z-index:41;overflow-y:auto;padding:24px;animation:slide-in .18s ease}@keyframes fade-in{0%{opacity:0}}@keyframes slide-in{0%{transform:translate(16px);opacity:.4}}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{position:relative;width:420px;max-width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-drawer);padding:24px;animation:modal-in .16s ease}@keyframes modal-in{0%{transform:translateY(6px) scale(.98);opacity:0}}.icon-btn{background:var(--surface-alt);border:1px solid var(--border);border-radius:999px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color .12s,border-color .12s}.icon-btn:hover{background:var(--surface);border-color:var(--border-strong)}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--border)}.tab{padding:9px 4px;font-size:13.5px;font-weight:600;color:var(--text-muted);border:none;background:none;border-bottom:2px solid transparent;transition:color .12s,border-color .12s}.tab:hover{color:var(--text-secondary)}.tab.active{color:var(--text-primary);border-bottom:2px solid var(--accent)}.spinner{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:999px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{height:100%;display:flex;align-items:center;justify-content:center}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--text-primary);color:var(--surface);padding:11px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:600;z-index:60;box-shadow:0 6px 20px #00000040;animation:toast-in .2s ease}@keyframes toast-in{0%{transform:translate(-50%,8px);opacity:0}}.empty{padding:48px 0;text-align:center;color:var(--text-muted);font-size:13.5px}.progress-track{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.progress-fill{height:100%;border-radius:999px;transition:width .3s ease}.section-title{font-family:Manrope;font-weight:700;font-size:14.5px;color:var(--text-primary)}.login-shell{display:flex;height:100%;overflow:hidden}.login-brand{width:460px;flex-shrink:0;background:#000;color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-form-panel{flex:1;display:flex;align-items:center;justify-content:center;background:var(--surface);padding:40px 24px;overflow-y:auto;position:relative}.drawer-meta{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}.drawer-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px}.drawer-filterbar{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 2px}.bin-minimap{display:grid;gap:2px;width:84px;height:fit-content;flex-shrink:0;padding:4px;border:1px solid var(--border);border-radius:6px;background:var(--surface-alt)}.bin-minimap span{aspect-ratio:1;border-radius:1.5px;background:var(--border-strong)}.bin-minimap span.here{background:var(--accent)}.cabinet{overflow-x:auto;padding:4px 0 10px}.cabinet-frame{min-width:660px;background:var(--surface-alt);border:1px solid var(--border-strong);border-radius:14px;padding:12px;box-shadow:inset 0 1px #ffffff0a,inset 0 0 30px #0000000f}.cabinet-grid{display:grid;gap:8px}.bin{border:none;padding:0;background:transparent;border-radius:8px;transition:transform .14s ease,opacity .2s,filter .2s}.bin-face{position:relative;display:flex;flex-direction:column;min-height:96px;padding:9px 10px 13px;border-radius:8px;background:var(--surface);border:1px solid var(--border-strong);text-align:left;overflow:hidden}.bin-code{position:absolute;top:7px;right:9px;font-size:10px;font-weight:700;color:var(--text-muted);letter-spacing:.03em}.bin-items{display:flex;flex-direction:column;gap:3px;margin-top:15px}.bin-item{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;line-height:1.25;color:var(--text-primary);min-width:0}.bin-item-dot{width:6px;height:6px;border-radius:999px;flex-shrink:0}.bin-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bin-more{font-size:10.5px;font-weight:600;color:var(--text-muted);margin-left:12px}.bin-empty-text{margin-top:16px;font-size:10.5px;color:var(--text-muted)}.bin-stripe{position:absolute;left:0;bottom:0;width:100%;height:3px}.bin.is-empty .bin-face{border-style:dashed;background:transparent}.bin:hover .bin-face{border-color:var(--accent)}.bin.is-open{transform:translateY(-3px) scale(1.05);z-index:4}.bin.is-open .bin-face{border:2px solid var(--accent);box-shadow:0 14px 30px #0003}.cabinet.has-open .bin:not(.is-open){opacity:.5}.cabinet.has-filter .bin.is-dimmed{opacity:.2;filter:grayscale(.7);pointer-events:none}.cabinet.has-filter .bin.is-match .bin-face{border-color:var(--accent)}@media (prefers-reduced-motion: reduce){.bin.is-open{transform:none}}.barcode-svg{display:block;width:100%;height:34px}.print-label{width:196px;height:98px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:#111;padding:7px 9px;display:flex;flex-direction:column;overflow:hidden}.label-name{font-size:11px;font-weight:700;line-height:1.2;color:#111;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.label-barcode{flex:1;display:flex;align-items:center;margin-top:3px}.label-barcode svg{width:100%;height:32px;display:block}.label-code{font-size:10px;letter-spacing:.09em;text-align:center;color:#111;font-family:var(--font-mono, "IBM Plex Mono", monospace)}.label-meta{display:flex;justify-content:space-between;gap:6px;font-size:8.5px;color:#333;margin-top:2px}.label-print{padding:22px;max-width:760px;margin:0 auto}.label-print-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.label-sheet{display:flex;flex-wrap:wrap;gap:10px}@media print{.no-print{display:none!important}@page{size:50mm 25mm;margin:0}html,body,#root{height:auto;background:#fff}.label-print{padding:0;margin:0;max-width:none}.label-sheet{display:block;gap:0}.print-label{width:50mm;height:25mm;border:none;border-radius:0;padding:2mm 2.5mm;page-break-after:always;break-after:page}.label-barcode svg{height:10mm}}.tf-autocomplete{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-drawer);overflow:hidden;max-height:280px;overflow-y:auto}.tf-autocomplete-row{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;border:none;background:none;text-align:left;padding:9px 12px;font-size:13px;color:var(--text-primary);border-bottom:1px solid var(--border)}.tf-autocomplete-row:last-child{border-bottom:none}.tf-autocomplete-row:hover{background:var(--accent-tint)}.tf-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:6px 0;border-bottom:1px solid var(--border);margin-bottom:4px}.tf-handler{display:inline-flex;align-items:center;gap:6px;text-transform:none;letter-spacing:0;font-weight:400}.tf-handler-label{font-size:11px;color:var(--text-muted)}.tf-handler .input{width:150px;padding:4px 8px;font-size:12px}.tf-handler-static{text-transform:none;letter-spacing:0;font-weight:400;font-size:11.5px;color:var(--text-secondary)}.tf-handler-static strong{color:var(--text-primary);font-weight:600}.tf-line{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--border)}.tf-line:last-child{border-bottom:none}.nav-mobile{display:none;position:fixed;bottom:0;left:0;right:0;height:62px;background:var(--surface);border-top:1px solid var(--border);z-index:50;flex-direction:row;align-items:stretch;padding:0 4px;gap:0}.navitem-mobile{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);font-size:10.5px;font-weight:600;padding:6px 0 10px;border:none;background:none;text-decoration:none;transition:color .12s}.navitem-mobile:hover{color:var(--text-secondary)}.navitem-mobile.active{color:var(--accent)}@media (max-width: 900px){.sidebar{display:none}.nav-mobile{display:flex}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:14px 14px 78px}.dash-2col,.dash-3col,.scan-grid,.low-stock-grid,.form-2col,.add-grid{grid-template-columns:1fr!important}.item-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.filter-bar-row{flex-wrap:wrap}.filter-bar-row .filter-search{width:100%;min-width:0;flex-basis:100%}.filter-bar-row .filter-select{flex:1}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll table{min-width:560px}.topbar{padding:10px 16px}.topbar h1{font-size:15px}.topbar .sub{display:none}.topbar-theme{display:inline-flex}.drawer{width:100vw;max-width:100vw}.tabs{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:1px}.tab-container{padding:12px 14px 0!important}}@media (max-width: 820px){.login-brand{display:none}}
