:root{font-family:Segoe UI,system-ui,sans-serif;color:#1f2937;background:#f8fafc}*{box-sizing:border-box}body{margin:0;-webkit-text-size-adjust:100%}.app-shell{min-height:100vh}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0f172a}.login-card{background:#fff;padding:2rem;border-radius:12px;width:360px;box-shadow:0 10px 20px #0003}.login-card form{display:grid;gap:1rem}label{display:grid;gap:.5rem;font-size:.9rem}input,select,textarea{padding:.5rem .75rem;border-radius:8px;border:1px solid #cbd5f5;font-size:.95rem}button{padding:.55rem 1rem;border-radius:8px;border:none;background:#2563eb;color:#fff;cursor:pointer;font-weight:600}button.secondary{background:#e2e8f0;color:#0f172a}button.small{min-width:2rem;padding:.35rem .55rem}.inventory-layout{display:flex;flex-direction:column;min-height:100vh}header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:#0f172a;color:#fff}header h1{margin:0;font-size:1.2rem}header .user{font-size:.8rem;color:#cbd5f5}.toolbar{display:flex;justify-content:space-between;gap:1rem;padding:1rem 2rem;background:#f1f5f9}.toolbar .search{display:flex;gap:.75rem;align-items:center}.toolbar .actions{display:flex;gap:.75rem}.content{display:grid;grid-template-columns:280px 1fr;gap:1rem;padding:1rem 2rem 2rem;flex:1;min-width:0}.content>*{min-width:0}.category-panel{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 4px 12px #0f172a14}aside{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 4px 12px #0f172a14}main{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 4px 12px #0f172a14;min-width:0}.category-tree ul{list-style:none;padding-left:1rem}.category-tree .tree-row{display:flex;align-items:center;gap:.25rem}.category-tree button.toggle{width:24px;height:24px;border-radius:4px;padding:0;background:#e2e8f0;color:#0f172a;font-weight:700}.category-tree button.node{flex:1;text-align:left;background:transparent;color:#1f2937;border:none;padding:.35rem .5rem}.category-tree button.node.active{background:#c7d2fe;color:#1e3a8a;border-radius:6px;font-weight:700}.category-tree .tree-bottom-spacer{height:0;pointer-events:none}.category-tree-panel{display:grid;gap:.5rem}.category-tree-panel .field-label{font-size:.9rem;font-weight:600}.category-tree-panel .category-tree{border:none;border-radius:0;padding:0;max-height:320px;overflow:hidden}.category-tree-panel .category-tree>ul{max-height:300px;overflow:auto;padding-right:.5rem;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem}.category-tree-panel .category-tree.disabled{opacity:.6;pointer-events:none}.item-list table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.9rem;table-layout:fixed;max-width:none}.item-list th,.item-list td{text-align:left;padding:.75rem .5rem;border-bottom:1px solid #e2e8f0}.item-list tr:hover{background:#f8fafc;cursor:pointer}.item-list td.actions{display:flex;flex-wrap:wrap;gap:.35rem}.error{color:#dc2626;margin:.5rem 0}.error-banner{margin:0 2rem;padding:.75rem 1rem;background:#fee2e2;color:#991b1b;border-radius:8px}.modal-backdrop{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:#fff;border-radius:12px;width:min(860px,92vw);max-height:90vh;overflow:auto;padding:1rem 1.5rem}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-actions{display:flex;gap:.5rem}.form-grid{display:grid;gap:.75rem}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-2 .full,.form-grid .full{grid-column:1 / -1}.form-actions{display:flex;justify-content:flex-end;margin-top:1rem}.form-actions.spaced{justify-content:space-between;gap:.75rem}.locked-field{width:100%;text-align:left;background:#f1f5f9;color:#0f172a;border:1px solid #cbd5f5;padding:.5rem .75rem;min-height:38px;border-radius:8px;cursor:pointer;font-weight:500}.locked-field:hover{background:#e2e8f0}.locked-input{background:#f1f5f9;color:#64748b}.inline-link{margin-top:.35rem;font-size:.85rem;color:#2563eb;text-decoration:none}.inline-link:hover{text-decoration:underline}.checkbox{display:flex;align-items:center;gap:.5rem}.settings-help{margin:-.35rem 0 .25rem;font-size:.85rem;color:#475569}.settings-column-list{display:grid;gap:.45rem}.settings-drop-boundary{height:14px;border-radius:6px;cursor:grab}.settings-column-row{display:flex;align-items:center;justify-content:flex-start;gap:.75rem;padding:.45rem .6rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:grab;transition:border-color .12s ease,background-color .12s ease;position:relative}.settings-column-row.is-hidden{background:#f1f5f9;border-color:#cbd5e1}.settings-column-row.is-hidden .settings-column-toggle{color:#64748b}.settings-column-row.is-hidden .settings-drag-handle{color:#94a3b8}.settings-column-row.dragging{opacity:.55;background:#f8fafc;cursor:grabbing}.settings-column-row.drag-over-before:before,.settings-column-row.drag-over-after:after{content:"";position:absolute;left:.4rem;right:.4rem;height:2px;background:#2563eb;border-radius:999px}.settings-column-row.drag-over-before:before{top:-2px}.settings-column-row.drag-over-after:after{bottom:-2px}.settings-column-toggle{margin:0;flex:1;cursor:grab}.settings-column-toggle input{cursor:pointer}.settings-column-row.dragging .settings-column-toggle{cursor:grabbing}.settings-drag-handle{color:#64748b;-webkit-user-select:none;user-select:none;font-size:1rem;line-height:1}.card{padding:1rem;background:#f8fafc;border-radius:8px}.item-list{display:block;overflow-x:auto;width:100%;max-width:100%;-webkit-overflow-scrolling:touch}.sort-button{display:inline-block;max-width:100%;background:transparent;border:none;color:inherit;font-weight:600;cursor:pointer;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sort-button:hover{color:#1d4ed8}.stepper{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:.5rem}.stepper input{text-align:center}.context-menu{position:fixed;background:#fff;border-radius:8px;box-shadow:0 10px 20px #0f172a33;padding:.25rem 0;z-index:40}.context-menu ul{list-style:none;margin:0;padding:0}.context-menu li button{width:100%;text-align:left;background:transparent;color:#0f172a;border:none;padding:.5rem 1rem}.context-menu li button:hover{background:#e2e8f0}.context-menu li button:active{background:#cbd5f5}.tooltip-indicator{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;margin-left:.2rem;border-radius:999px;background:#2563eb;color:#fff;font-size:.6rem;font-weight:700;vertical-align:super;position:relative;top:-2px}.location-info-button{border:none;padding:0;cursor:pointer;line-height:1}.location-info-wrap{position:relative;display:inline-flex;align-items:center}.location-tooltip{position:absolute;left:50%;bottom:calc(100% + .35rem);transform:translate(-50%);z-index:40;width:max-content;max-width:min(260px,80vw);padding:.4rem .55rem;border-radius:8px;background:#0f172a;color:#fff;font-size:.75rem;line-height:1.25;white-space:normal;box-shadow:0 8px 16px #0f172a40}.location-tooltip:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);border-width:5px;border-style:solid;border-color:#0f172a transparent transparent transparent}.location-column{width:14ch;max-width:14ch;white-space:normal;word-break:normal;overflow-wrap:anywhere}.location-segment{white-space:normal}.count-column{width:6ch;max-width:6ch}.package-column,.category-column,.distributor-column{width:14ch;max-width:14ch}.description-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.description-column{width:22ch;min-width:22ch;max-width:22ch}.part-number-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}.part-number-column{padding-right:.35rem;width:1%;white-space:nowrap;overflow:hidden}.price-column{width:8ch;max-width:8ch}@media(max-width:1024px){.toolbar{flex-direction:column;align-items:stretch}.toolbar .search,.toolbar .actions{flex-wrap:wrap}header{flex-direction:column;align-items:flex-start;gap:.35rem}.category-drawer-toggle{display:flex}.category-panel{position:fixed;top:0;left:-100%;height:100vh;width:min(280px,80vw);padding:1rem 1rem 1.5rem;border-radius:0 12px 12px 0;background:#fff;z-index:30;transition:left .2s ease;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain}.category-panel .category-tree{max-height:none;overflow:visible}.category-panel .category-tree>ul{max-height:none;overflow:visible;padding-bottom:.75rem}.category-panel .category-tree>ul .tree-bottom-spacer{height:1.5rem}.category-panel.open{left:0}.category-panel:not(.open){pointer-events:none}.drawer-overlay{position:fixed;inset:0;background:#0f172a66;z-index:25}aside.category-panel{background:#fff;border-radius:0 12px 12px 0;padding:1rem;box-shadow:0 4px 12px #0f172a26}.content{grid-template-columns:1fr}aside.category-panel{order:initial}}@media(max-width:1024px)and (hover:none),(max-width:1024px)and (pointer:coarse){.category-panel{padding-bottom:calc(4.75rem + constant(safe-area-inset-bottom));padding-bottom:calc(4.75rem + env(safe-area-inset-bottom))}.category-tree .tree-row,.category-tree .tree-row button,.item-list tbody tr,.item-list tbody td{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.category-panel .category-tree>ul{padding-bottom:calc(1.75rem + constant(safe-area-inset-bottom));padding-bottom:calc(1.75rem + env(safe-area-inset-bottom))}.category-panel .category-tree>ul .tree-bottom-spacer{height:calc(4.5rem + constant(safe-area-inset-bottom));height:calc(4.5rem + env(safe-area-inset-bottom))}}@media(max-width:720px){.content{padding:1rem}.category-panel{width:min(260px,80vw)}.toolbar{padding:.75rem 1rem}.modal{width:94vw;padding:1rem}.form-grid-2{grid-template-columns:1fr}}@media(max-width:600px){header{padding:.6rem 1rem}header h1{font-size:1rem}.toolbar .search,.toolbar .actions{gap:.5rem}}.category-drawer-toggle{display:none;position:fixed;left:.4rem;top:clamp(6.25rem,16vh,8.25rem);transform:none;width:28px;height:28px;border-radius:999px;border:none;background:#0f172a;color:#fff;z-index:24;align-items:center;justify-content:center;cursor:pointer;opacity:.88;box-shadow:0 4px 10px #0f172a38}.category-drawer-toggle:hover{opacity:1}.category-drawer-toggle.is-touch{width:24px;height:24px;font-size:.75rem;left:.3rem;opacity:.78}@media(max-width:1024px){.category-drawer-toggle{display:flex}}
