:root{--bg: #fafafa;--surface: #ffffff;--on-surface: #212121;--on-surface-secondary: #757575;--divider: #e0e0e0;--primary-light-bg: #bbdefb;--image-placeholder: #e8e8e8;--app-bar-bg: #1976d2;--hover-overlay: rgba(0, 0, 0, 0.04);--hover-overlay-strong: rgba(0, 0, 0, 0.08);--accent-text: #cc5800;--shimmer-highlight: rgba(255, 255, 255, 0.65);color-scheme:light}[data-theme=dark]{--bg: #121212;--surface: #1e1e1e;--on-surface: #e6e6e6;--on-surface-secondary: #9aa0a6;--divider: #2f2f2f;--primary-light-bg: #1f3a5a;--image-placeholder: #2a2a2a;--app-bar-bg: #0d3a6b;--hover-overlay: rgba(255, 255, 255, 0.06);--hover-overlay-strong: rgba(255, 255, 255, 0.12);--accent-text: #ffb74d;--shimmer-highlight: rgba(255, 255, 255, 0.09);color-scheme:dark}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:"Roboto",sans-serif;font-size:14px;color:var(--on-surface);background:var(--bg);-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}.app-bar{position:fixed;top:0;left:0;right:0;height:56px;background:var(--app-bar-bg);color:#fff;display:flex;align-items:center;padding:0 16px;z-index:100;box-shadow:0 4px 8px rgba(0,0,0,.15);gap:8px}.app-bar__title{font-size:20px;font-weight:500;white-space:nowrap}@media(max-width: 600px){.app-bar__title{display:none}}.app-bar__search{flex:1;max-width:480px;margin:0 16px;display:flex;align-items:center;background:hsla(0,0%,100%,.15);border-radius:8px;padding:0 12px;transition:background .2s}.app-bar__search:focus-within{background:hsla(0,0%,100%,.25)}.app-bar__search .material-icons{font-size:20px;opacity:.7}.app-bar__search input{flex:1;border:none;background:none;color:#fff;padding:8px;font-size:14px;outline:none}@media(max-width: 768px){.app-bar__search input{font-size:16px}}.app-bar__search input::placeholder{color:hsla(0,0%,100%,.7)}.app-bar__actions{display:flex;align-items:center;gap:8px;margin-left:auto}@media(max-width: 600px){.app-bar__actions .switch-label{display:none}}.menu-toggle{display:none}@media(max-width: 960px){.menu-toggle{display:flex}}.icon-btn{width:40px;height:40px;border:none;background:none;color:inherit;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}.icon-btn:hover{background:rgba(0,0,0,.08)}.app-bar .icon-btn{color:#fff}.app-bar .icon-btn:hover{background:hsla(0,0%,100%,.15)}.switch{position:relative;display:inline-block;width:36px;height:20px}.switch input{opacity:0;width:0;height:0}.switch__slider{position:absolute;cursor:pointer;inset:0;background:hsla(0,0%,100%,.3);border-radius:10px;transition:.3s}.switch__slider::before{content:"";position:absolute;height:16px;width:16px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:.3s}input:checked+.switch__slider{background:#ff6f00}input:checked+.switch__slider::before{transform:translateX(16px)}.switch-label{font-size:12px;color:hsla(0,0%,100%,.8)}.layout{display:flex;margin-top:56px;height:calc(100vh - 56px);overflow:hidden}.sidebar{width:300px;background:var(--surface);border-right:1px solid var(--divider);display:flex;flex-direction:column;position:fixed;top:56px;bottom:0;left:0;z-index:50;transition:transform .3s ease}@media(max-width: 960px){.sidebar{transform:translateX(-100%);box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:0 8px 24px rgba(0,0,0,.2)}}.sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--divider)}.sidebar__header h2{font-size:16px;font-weight:500}.sidebar__tree{padding:8px 0;flex:1;overflow-y:auto}.sidebar__footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--divider);background:var(--bg);font-size:14px;color:var(--on-surface);gap:8px}.sidebar__footer .icon-btn{color:var(--on-surface-secondary)}.sidebar__footer .icon-btn:hover{background:var(--hover-overlay-strong)}.sidebar__footer #logoutBtn:hover{color:#d32f2f;background:rgba(211,47,47,.08)}.sidebar__footer-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.sidebar__footer #currentUser{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sidebar-overlay{display:none}@media(max-width: 960px){.sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}.sidebar.open~.sidebar-overlay{display:block}}.tree-item__row{display:flex;align-items:center;padding:4px 8px 4px 0;cursor:pointer;border-radius:0 24px 24px 0;transition:background .15s;user-select:none}.tree-item__row:hover{background:rgba(0,0,0,.04)}.tree-item__row.active{background:var(--primary-light-bg);color:#1565c0;font-weight:500}.tree-item__expand{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--on-surface-secondary);transition:transform .2s;flex-shrink:0}.tree-item__expand.expanded{transform:rotate(90deg)}.tree-item__expand.hidden{visibility:hidden}.tree-item__icon{margin-right:8px;color:var(--on-surface-secondary);font-size:20px}.tree-item__name{flex:1;font-size:14px;line-height:32px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-item__count{font-size:12px;color:var(--on-surface-secondary);margin-left:4px;margin-right:4px}.tree-item__actions{display:flex;opacity:0;transition:opacity .15s}.tree-item__row:hover .tree-item__actions{opacity:1}.tree-item__actions .icon-btn{width:28px;height:28px}.tree-item__actions .icon-btn .material-icons{font-size:18px}.tree-item__children{margin-left:16px}.content{flex:1;margin-left:300px;padding:16px;overflow-y:auto}@media(max-width: 960px){.content{margin-left:0}}.content__toolbar{display:flex;align-items:center;margin-bottom:16px;gap:16px}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:14px;color:var(--on-surface-secondary);flex:1}.breadcrumb span{cursor:pointer}.breadcrumb span:hover{color:#1976d2}.breadcrumb span.active{color:var(--on-surface);font-weight:500}.breadcrumb .material-icons{font-size:18px}.fab{width:56px;height:56px;border-radius:16px;border:none;background:#1976d2;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 8px rgba(0,0,0,.15);transition:box-shadow .2s,background .2s;position:fixed;bottom:24px;right:24px;z-index:30}.fab:hover{box-shadow:0 8px 24px rgba(0,0,0,.2);background:#1565c0}.fab .material-icons{font-size:24px}.item-filters{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:16px;font-size:13px}.item-filters:empty{display:none}.chip-label{color:var(--on-surface-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.5px;margin-right:4px}.chip-divider{width:1px;height:20px;background:var(--divider);margin:0 6px}.chip{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:16px;border:1px solid var(--divider);background:var(--surface);color:var(--on-surface-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.chip:hover:not(:disabled){border-color:#1976d2;color:#1976d2}.chip:disabled{opacity:.5;cursor:not-allowed}.chip--active{background:var(--primary-light-bg);border-color:#1976d2;color:#1565c0;font-weight:500}.chip--warn.chip--active{background:rgba(255,111,0,.15);border-color:#ff6f00;color:#cc5800}.chip .material-icons{font-size:16px}.item-list{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:16px}@media(max-width: 600px){.item-list{grid-template-columns:repeat(2, 1fr);gap:10px}}.item-card{background:var(--surface);border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);overflow:hidden;position:relative;transition:box-shadow .2s,transform .15s;display:flex;flex-direction:column;cursor:pointer}.item-card:hover{box-shadow:0 4px 8px rgba(0,0,0,.15);transform:translateY(-2px)}.item-card.deleted{opacity:.6;border:2px dashed #d32f2f}.item-card--low-stock{box-shadow:0 0 0 1px rgba(255,111,0,.5),0 2px 4px rgba(0,0,0,.1)}.item-card--out-of-stock{box-shadow:0 0 0 1px rgba(211,47,47,.5),0 2px 4px rgba(0,0,0,.1)}.item-card__stock-badge{position:absolute;top:8px;left:8px;z-index:2;font-size:11px;font-weight:500;padding:3px 8px;border-radius:10px;color:#fff;text-transform:uppercase;letter-spacing:.3px}.item-card__stock-badge--low{background:#ff6f00}.item-card__stock-badge--out{background:#d32f2f}.item-card__image{width:100%;height:180px;object-fit:cover;background:var(--image-placeholder);cursor:pointer}@media(max-width: 600px){.item-card__image{height:120px}}.item-card__no-image{width:100%;height:180px;background:var(--image-placeholder);display:flex;align-items:center;justify-content:center;color:var(--on-surface-secondary)}@media(max-width: 600px){.item-card__no-image{height:120px}}.item-card__no-image .material-icons{font-size:48px}@media(max-width: 600px){.item-card__no-image .material-icons{font-size:32px}}.item-card__body{padding:16px;flex:1}@media(max-width: 600px){.item-card__body{padding:8px}}.item-card__name{font-size:16px;font-weight:500;margin-bottom:4px;word-break:break-word}@media(max-width: 600px){.item-card__name{font-size:13px}}.item-card__description{font-size:13px;color:var(--on-surface-secondary);margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width: 600px){.item-card__description{font-size:11px;margin-bottom:6px}}.item-card__group-badge{display:inline-block;font-size:11px;background:var(--primary-light-bg);color:#1565c0;padding:2px 8px;border-radius:12px;margin-bottom:8px}@media(max-width: 600px){.item-card__group-badge{font-size:10px;padding:2px 6px}}.item-card__amount{display:flex;align-items:center;gap:8px;margin-top:12px}.item-card__amount-label{font-size:11px;color:var(--on-surface-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.item-card__amount-controls{display:flex;align-items:center;gap:6px;margin-left:auto}.item-card__amount-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--divider);background:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--on-surface);transition:background .15s,border-color .15s,color .15s;flex-shrink:0}.item-card__amount-btn:hover:not(:disabled){background:var(--primary-light-bg);border-color:#1976d2;color:#1565c0}.item-card__amount-btn:disabled{opacity:.4;cursor:not-allowed}.item-card__amount-btn .material-icons{font-size:18px}.item-card__amount-value{font-size:18px;font-weight:500;min-width:40px;text-align:center}.item-card__footer{display:flex;border-top:1px solid var(--divider);padding:4px 8px;gap:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 16px;color:var(--on-surface-secondary)}.empty-state .material-icons{font-size:64px;margin-bottom:16px;opacity:.3}.empty-state p{font-size:16px}.dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{background:var(--surface);border-radius:16px;box-shadow:0 8px 24px rgba(0,0,0,.2);width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;animation:dialogIn .2s ease}.dialog--small{max-width:400px}.dialog--wide{max-width:880px}.dialog__columns{display:flex;flex-direction:column;gap:24px}@media(min-width: 720px){.dialog__columns{flex-direction:row;align-items:flex-start}}.dialog__col{display:flex;flex-direction:column;min-width:0}@media(min-width: 720px){.dialog__col{flex:1 1 0}}.dialog__col--fields>.form-field:last-child,.dialog__col--media>.form-field:last-child{margin-bottom:0}.dialog__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--divider)}.dialog__header h2{font-size:18px;font-weight:500}.dialog__body{padding:24px;overflow-y:auto;flex:1}.dialog__footer{display:flex;justify-content:flex-end;gap:8px;padding:8px 24px 16px}@keyframes dialogIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}.form-row{display:flex;gap:12px}.form-row>.form-field{flex:1 1 0;min-width:0}.form-field{margin-bottom:16px}.form-field label{display:block;font-size:12px;font-weight:500;color:var(--on-surface-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.form-field input[type=text],.form-field input[type=password],.form-field input[type=number],.form-field textarea,.form-field select{width:100%;padding:10px 12px;border:1px solid var(--divider);border-radius:8px;font-size:14px;font-family:inherit;color:var(--on-surface);background:var(--surface);transition:border-color .2s;outline:none}@media(max-width: 768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=number],.form-field textarea,.form-field select{font-size:16px}}.form-field input[type=text]:focus,.form-field input[type=password]:focus,.form-field input[type=number]:focus,.form-field textarea:focus,.form-field select:focus{border-color:#1976d2;box-shadow:0 0 0 2px rgba(25,118,210,.15)}.form-field textarea{resize:vertical;min-height:80px}.btn{padding:8px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .2s,box-shadow .2s;background:rgba(0,0,0,0);color:#1976d2}.btn:hover{background:rgba(25,118,210,.08)}.btn--primary{background:#1976d2;color:#fff}.btn--primary:hover{background:#1565c0}.btn--outlined{border:1px solid var(--divider);background:rgba(0,0,0,0);color:var(--on-surface)}.btn--outlined:hover{background:rgba(0,0,0,.04)}.btn--danger{color:#d32f2f}.btn--danger:hover{background:rgba(211,47,47,.08)}.image-upload-area{border:2px dashed var(--divider);border-radius:8px;padding:16px}.image-upload-actions{display:flex;gap:8px;margin-top:12px}.image-upload-actions>.btn{flex:1 1 0;min-width:0;justify-content:center}.image-previews{display:flex;flex-wrap:wrap;gap:8px}.image-preview{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden}.image-preview img{width:100%;height:100%;object-fit:cover}.image-preview__remove{position:absolute;top:2px;right:2px;width:24px;height:24px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px}.image-preview__remove .material-icons{font-size:16px}.existing-images{margin-top:16px;margin-bottom:16px}.existing-images label{display:block;font-size:12px;font-weight:500;color:var(--on-surface-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.existing-images__grid{display:flex;flex-wrap:wrap;gap:8px}.existing-image{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden}.existing-image img{width:100%;height:100%;object-fit:cover}.existing-image__remove{position:absolute;top:2px;right:2px;width:24px;height:24px;border-radius:50%;border:none;background:rgba(211,47,47,.8);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.existing-image__remove .material-icons{font-size:16px}.datasheet-upload{display:flex;flex-direction:column;gap:8px}.datasheet-file{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--divider);border-radius:8px;background:var(--surface);font-size:14px;min-width:0}.datasheet-file__icon{font-size:28px;color:#d32f2f;flex-shrink:0}.datasheet-file__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.datasheet-file__name{color:var(--on-surface);text-decoration:none;font-weight:500;word-break:break-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.datasheet-file__name:hover{color:#1976d2;text-decoration:underline}.datasheet-file__status{font-size:11px;color:var(--on-surface-secondary);text-transform:uppercase;letter-spacing:.5px}.datasheet-file__action{width:32px;height:32px;color:var(--on-surface-secondary);flex-shrink:0;text-decoration:none}.datasheet-file__action .material-icons{font-size:18px}.datasheet-file--pending{border-color:rgba(255,111,0,.4);background:rgba(255,111,0,.06)}.datasheet-file--pending .datasheet-file__status{color:#ff6f00;font-weight:500}.datasheet-upload-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:1px dashed var(--divider);border-radius:8px;background:rgba(0,0,0,0);color:var(--on-surface-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.datasheet-upload-btn:hover{border-color:#1976d2;color:#1976d2;background:rgba(25,118,210,.04)}.datasheet-upload-btn .material-icons{font-size:20px}.detail__datasheet-link{display:inline-flex;align-items:center;gap:6px;color:#1976d2;text-decoration:none;font-weight:500;word-break:break-all}.detail__datasheet-link .material-icons{font-size:16px}.detail__datasheet-link:hover{text-decoration:underline}.camera-body{display:flex;align-items:center;justify-content:center}.camera-body video{width:100%;max-height:400px;border-radius:8px;background:#000}.image-viewer{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:300;display:flex;align-items:center;justify-content:center}.image-viewer img{max-width:90vw;max-height:90vh;object-fit:contain}.image-viewer__close{position:absolute;top:16px;right:16px;color:#fff}.image-viewer__close:hover{background:hsla(0,0%,100%,.15)}.image-viewer__prev,.image-viewer__next{position:absolute;top:50%;transform:translateY(-50%);color:#fff;width:48px;height:48px}.image-viewer__prev:hover,.image-viewer__next:hover{background:hsla(0,0%,100%,.15)}.image-viewer__prev .material-icons,.image-viewer__next .material-icons{font-size:36px}.image-viewer__prev{left:16px}.image-viewer__next{right:16px}.detail{flex:1;margin-left:300px;flex-direction:column;overflow:hidden}@media(max-width: 960px){.detail{margin-left:0}}.detail__header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--divider);background:var(--surface)}.detail__header .icon-btn{color:var(--on-surface)}.detail__title{font-size:20px;font-weight:500}.detail__content{display:flex;gap:24px;padding:24px;flex:1;min-height:0;overflow-y:auto}@media(max-width: 768px){.detail__content{flex-direction:column;min-height:unset;overflow-y:visible}}@media(max-width: 768px){.detail{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;height:calc(100vh - 56px);height:calc(100dvh - 56px)}}.detail__images-section{flex:1;min-width:0}.detail__main-image{width:100%;max-height:400px;object-fit:contain;border-radius:8px;background:var(--image-placeholder);cursor:pointer;display:block}.detail__image-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.detail__image-thumb{width:72px;height:72px;object-fit:cover;border-radius:6px;cursor:pointer;border:2px solid rgba(0,0,0,0);transition:border-color .2s,transform .15s}.detail__image-thumb:hover{border-color:#1976d2;transform:scale(1.05)}.detail__no-image{width:100%;height:200px;background:var(--image-placeholder);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--on-surface-secondary)}.detail__no-image .material-icons{font-size:48px;margin-bottom:8px}.detail__info-section{flex:1;min-width:0}.detail__group-badge{display:inline-block;font-size:12px;background:var(--primary-light-bg);color:#1565c0;padding:4px 12px;border-radius:12px;margin-bottom:12px;font-weight:500}.detail__description{font-size:14px;color:var(--on-surface);line-height:1.6;margin-bottom:16px;white-space:pre-wrap;word-break:break-word}.detail__no-desc{color:var(--on-surface-secondary);font-style:italic}.detail__fields{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.detail__field{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--bg);border-radius:8px}.detail__field-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--on-surface-secondary);text-transform:uppercase;letter-spacing:.5px}.detail__field-label .material-icons{font-size:15px}.detail__field-value{font-size:14px;color:var(--on-surface);white-space:pre-wrap;word-break:break-word;padding-left:21px}.detail__meta{display:flex;flex-direction:column;gap:6px;margin-bottom:24px;padding:12px;background:var(--bg);border-radius:8px}.detail__meta-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--on-surface-secondary)}.detail__meta-item .material-icons{font-size:18px}.detail__amount-section{background:var(--surface);border:1px solid var(--divider);border-radius:8px;padding:20px}.detail__current-amount{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--divider)}.detail__amount-label{font-size:13px;color:var(--on-surface-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.detail__amount-value{font-size:28px;font-weight:700;color:#1976d2}.detail__amount-form label{display:block;font-size:12px;font-weight:500;color:var(--on-surface-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.detail__amount-input-row{display:flex;gap:12px;align-items:center}@media(max-width: 480px){.detail__amount-input-row{flex-direction:column;align-items:stretch}.detail__amount-input-row .btn{width:100%;justify-content:center}}.detail__amount-input{flex:1;padding:10px 12px;border:1px solid var(--divider);border-radius:8px;font-size:14px;font-family:inherit;color:var(--on-surface);background:var(--surface);outline:none;transition:border-color .2s}@media(max-width: 768px){.detail__amount-input{font-size:16px}}.detail__amount-input:focus{border-color:#1976d2;box-shadow:0 0 0 2px rgba(25,118,210,.15)}.detail__actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--divider)}@media(max-width: 768px){body.item-detail-open{height:auto}body.item-detail-open .layout{height:auto;min-height:calc(100vh - 56px);min-height:calc(100dvh - 56px);overflow:visible}body.item-detail-open #itemDetail.detail{height:auto;overflow:visible;overscroll-behavior:auto;-webkit-overflow-scrolling:auto}}.snackbar{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);background:#323232;color:#fff;padding:12px 16px 12px 24px;border-radius:8px;font-size:14px;z-index:400;box-shadow:0 4px 8px rgba(0,0,0,.15);transition:transform .3s ease;max-width:90vw;display:flex;align-items:center;gap:16px}.snackbar.show{transform:translateX(-50%) translateY(0)}.snackbar__text{flex:1}.snackbar__action{border:none;background:rgba(0,0,0,0);color:#ff6f00;font-weight:500;text-transform:uppercase;font-size:13px;letter-spacing:.5px;cursor:pointer;padding:6px 10px;border-radius:4px;transition:background .15s}.snackbar__action:hover{background:hsla(0,0%,100%,.1)}.ripple{position:relative;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--divider);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--on-surface-secondary)}.loading-spinner{width:40px;height:40px;border:3px solid var(--divider);border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.img-loading{background-color:var(--image-placeholder);background-image:linear-gradient(100deg, transparent 30%, var(--shimmer-highlight) 50%, transparent 70%);background-size:200% 100%;background-repeat:no-repeat;animation:shimmer 1.3s ease-in-out infinite;color:rgba(0,0,0,0)}@keyframes shimmer{from{background-position:150% 0}to{background-position:-150% 0}}.page-loader{position:fixed;inset:0;z-index:500;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.4);cursor:progress}.page-loader.show{display:flex}.page-loader__spinner{width:48px;height:48px;border:4px solid hsla(0,0%,100%,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg, #1976d2 0%, #1565c0 100%)}.auth-card{background:var(--surface);border-radius:16px;box-shadow:0 8px 24px rgba(0,0,0,.2);width:100%;max-width:400px;padding:32px;margin:16px}.auth-card__header{text-align:center;margin-bottom:24px}.auth-card__header h1{font-size:22px;font-weight:500;color:var(--on-surface);margin-top:8px}.auth-card__icon{font-size:48px;color:#1976d2}.auth-form h2{font-size:18px;font-weight:500;margin-bottom:20px;color:var(--on-surface)}.auth-form .form-field input{padding:12px}.auth-error{background:rgba(211,47,47,.08);color:#d32f2f;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px;border-left:3px solid #d32f2f}.auth-btn{width:100%;padding:12px;font-size:15px;justify-content:center}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;margin-top:16px;font-size:13px;color:var(--on-surface-secondary)}.auth-switch a{color:#1976d2;text-decoration:none;font-weight:500}.auth-switch a:hover{text-decoration:underline}.search-spinner{width:14px;height:14px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin:0 6px;display:none;flex-shrink:0}.search-spinner.show{display:inline-block}.search-status{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--on-surface-secondary);margin-bottom:12px}.search-status__count{font-weight:500;color:var(--on-surface)}.search-status__scope{display:inline-flex;align-items:center;border:1px solid var(--divider);border-radius:14px;overflow:hidden;background:var(--surface)}.search-status__scope-btn{border:none;background:rgba(0,0,0,0);padding:4px 12px;font-size:12px;font-family:inherit;color:var(--on-surface-secondary);cursor:pointer;transition:background .15s,color .15s}.search-status__scope-btn:hover:not(.active){background:rgba(0,0,0,.04)}.search-status__scope-btn.active{background:#1976d2;color:#fff}.empty-state__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}.empty-state__actions:empty{display:none}.tree-item__row.dragging{opacity:.45}.tree-item__row.drop-target{background:rgba(25,118,210,.12);box-shadow:inset 0 0 0 2px #1976d2}.tree-item__row.drop-target-invalid{background:rgba(211,47,47,.08);box-shadow:inset 0 0 0 2px #d32f2f;cursor:not-allowed}.tree-item__more{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--on-surface-secondary);border-radius:50%;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.tree-item__more:hover{background:rgba(0,0,0,.08);color:var(--on-surface)}.tree-item__more .material-icons{font-size:18px}.context-menu{position:fixed;z-index:500;background:var(--surface);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.2);padding:6px 0;min-width:180px;font-size:14px;animation:contextMenuIn .12s ease}.context-menu__item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;color:var(--on-surface);user-select:none;transition:background .1s}.context-menu__item:hover{background:rgba(0,0,0,.05)}.context-menu__item--danger{color:#d32f2f}.context-menu__item .material-icons{font-size:18px;color:var(--on-surface-secondary)}.context-menu__item--danger .material-icons{color:#d32f2f}.context-menu__divider{height:1px;background:var(--divider);margin:4px 0}@keyframes contextMenuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .tree-item__row:hover{background:var(--hover-overlay)}[data-theme=dark] .tree-item__row.active{background:rgba(25,118,210,.22);color:#90caf9}[data-theme=dark] .icon-btn:hover{background:var(--hover-overlay-strong)}[data-theme=dark] .btn:hover{background:rgba(25,118,210,.12)}[data-theme=dark] .btn--outlined:hover{background:var(--hover-overlay)}[data-theme=dark] .chip--active{color:#90caf9}[data-theme=dark] .chip--warn.chip--active{color:var(--accent-text)}[data-theme=dark] .breadcrumb span:hover{color:#90caf9}[data-theme=dark] .context-menu__item:hover{background:var(--hover-overlay)}[data-theme=dark] .auth-body{background:linear-gradient(135deg, #102540 0%, #051730 100%)}[data-theme=dark] .image-preview__remove{background:rgba(0,0,0,.75)}.theme-toggle .material-icons{font-size:20px}[data-theme=dark] .theme-toggle .icon-light{display:none}:root:not([data-theme=dark]) .theme-toggle .icon-dark{display:none}.sidebar__links{padding:8px 0;border-bottom:1px solid var(--divider)}.sidebar-link{display:flex;align-items:center;gap:8px;width:100%;padding:8px 16px;border:none;background:none;cursor:pointer;font-family:inherit;font-size:14px;color:var(--on-surface);text-align:left;transition:background .15s}.sidebar-link:hover{background:var(--hover-overlay)}.sidebar-link.active{background:var(--primary-light-bg);color:#1565c0;font-weight:500}[data-theme=dark] .sidebar-link.active{background:rgba(25,118,210,.22);color:#90caf9}.sidebar-link .material-icons{font-size:20px;color:var(--on-surface-secondary)}.sidebar-link__count{margin-left:auto;font-size:12px;color:var(--on-surface-secondary);background:rgba(255,111,0,.15);color:var(--accent-text);padding:2px 8px;border-radius:10px;font-weight:500;min-width:20px;text-align:center}.sidebar-link--low-stock.active .sidebar-link__count{background:#ff6f00;color:#fff}.item-list--list{display:flex;flex-direction:column;gap:8px}.item-list--list .item-card{flex-direction:row;align-items:stretch;height:auto;min-height:96px}@media(max-width: 600px){.item-list--list .item-card{min-height:72px}}.item-list--list .item-card__image,.item-list--list .item-card__no-image{width:96px;height:auto;align-self:stretch;flex-shrink:0}@media(max-width: 600px){.item-list--list .item-card__image,.item-list--list .item-card__no-image{width:72px}}.item-list--list .item-card__body{flex:1;display:flex;flex-direction:column;padding:10px 14px}@media(max-width: 600px){.item-list--list .item-card__body{padding:8px 10px}}.item-list--list .item-card__name{font-size:15px;margin-bottom:2px}.item-list--list .item-card__group-badge{align-self:flex-start;margin-bottom:4px}.item-list--list .item-card__description{font-size:12px;margin-bottom:4px;-webkit-line-clamp:1}.item-list--list .item-card__amount{margin-top:auto}.item-list--list .item-card__stock-badge{top:6px;left:6px}.item-list--list .item-card .bulk-select-checkbox{top:8px;right:8px}.item-card.selectable .bulk-select-checkbox{display:flex}.item-card.selected{box-shadow:0 0 0 2px #1976d2,0 2px 4px rgba(0,0,0,.1)}.item-card.selected::after{content:"";position:absolute;inset:0;background:rgba(25,118,210,.06);pointer-events:none}.bulk-select-checkbox{display:none;position:absolute;top:8px;right:8px;z-index:3;width:28px;height:28px;border-radius:50%;border:2px solid #fff;background:rgba(0,0,0,.45);align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:background .15s,transform .15s;box-shadow:0 2px 4px rgba(0,0,0,.1)}.bulk-select-checkbox .material-icons{font-size:18px;visibility:hidden}.selected .bulk-select-checkbox{background:#1976d2;border-color:#1976d2}.selected .bulk-select-checkbox .material-icons{visibility:visible}.bulk-select-checkbox:hover{transform:scale(1.08)}.bulk-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#1976d2;color:#fff;padding:8px 16px;border-radius:8px;margin-bottom:12px;box-shadow:0 4px 8px rgba(0,0,0,.15)}.bulk-bar__count{font-weight:500;margin-right:auto}.bulk-bar__btn{border:1px solid hsla(0,0%,100%,.4);background:rgba(0,0,0,0);color:#fff;padding:6px 12px;border-radius:8px;font-size:13px;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background .15s}.bulk-bar__btn:hover:not(:disabled){background:hsla(0,0%,100%,.15)}.bulk-bar__btn:disabled{opacity:.5;cursor:not-allowed}.bulk-bar__btn .material-icons{font-size:16px}.bulk-bar__close{width:32px;height:32px;border-radius:50%;border:none;background:rgba(0,0,0,0);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.bulk-bar__close:hover{background:hsla(0,0%,100%,.15)}.view-toggle{display:inline-flex;border:1px solid var(--divider);border-radius:8px;overflow:hidden;background:var(--surface);margin-left:auto}.view-toggle__btn{border:none;background:rgba(0,0,0,0);color:var(--on-surface-secondary);padding:4px 10px;cursor:pointer;display:inline-flex;align-items:center;transition:background .15s,color .15s;font-family:inherit}.view-toggle__btn:hover:not(.active){background:var(--hover-overlay)}.view-toggle__btn.active{background:#1976d2;color:#fff}.view-toggle__btn .material-icons{font-size:18px}.form-field__error{display:none;color:#d32f2f;font-size:12px;margin-top:4px}.form-field.has-error input[type=text],.form-field.has-error input[type=password],.form-field.has-error input[type=number],.form-field.has-error textarea,.form-field.has-error select{border-color:#d32f2f;box-shadow:0 0 0 2px rgba(211,47,47,.15)}.form-field.has-error .form-field__error{display:block}.searchable-select{position:relative}.searchable-select__trigger{width:100%;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--divider);border-radius:8px;background:var(--surface);color:var(--on-surface);font-family:inherit;font-size:14px;cursor:pointer;text-align:left;transition:border-color .2s}.searchable-select__trigger:hover{border-color:var(--on-surface-secondary)}.searchable-select__trigger:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 2px rgba(25,118,210,.15)}.searchable-select__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select__value--placeholder{color:var(--on-surface-secondary)}.searchable-select__arrow{color:var(--on-surface-secondary);font-size:22px}.searchable-select__panel{margin-top:6px;border:1px solid var(--divider);border-radius:8px;background:var(--surface);box-shadow:0 4px 8px rgba(0,0,0,.15);overflow:hidden}.searchable-select__search{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--divider)}.searchable-select__search .material-icons{font-size:18px;color:var(--on-surface-secondary)}.searchable-select__search input{flex:1;border:none;outline:none;background:rgba(0,0,0,0);color:var(--on-surface);font-family:inherit;font-size:14px}@media(max-width: 768px){.searchable-select__search input{font-size:16px}}.searchable-select__list{max-height:220px;overflow-y:auto}.searchable-select__option{padding:8px 12px;font-size:14px;color:var(--on-surface);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.searchable-select__option:hover{background:var(--hover-overlay)}.searchable-select__option.selected{background:var(--primary-light-bg);color:#1565c0;font-weight:500}.searchable-select__empty{padding:12px;font-size:13px;color:var(--on-surface-secondary);text-align:center}.location-field{display:flex;align-items:flex-start;gap:8px}.location-field>.searchable-select{flex:1;min-width:0}.location-field__manage{flex:0 0 auto;white-space:nowrap}.location-field__manage .material-icons{font-size:18px}.locations-view__body{flex:1;min-height:0;overflow-y:auto;padding:24px}.loc-manager__toolbar{margin-bottom:12px}.loc-tree{border:1px solid var(--divider);border-radius:8px;overflow:hidden}.loc-tree__empty{padding:24px;text-align:center;color:var(--on-surface-secondary);font-size:14px}.loc-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--divider)}.loc-row:last-child{border-bottom:none}.loc-row:hover{background:var(--hover-overlay)}.loc-row__icon{font-size:20px;color:var(--on-surface-secondary);flex:0 0 auto}.loc-row__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--on-surface);font-size:14px}.loc-row__count{flex:0 0 auto;font-size:12px;color:var(--on-surface-secondary);background:rgba(255,111,0,.15);border-radius:10px;padding:1px 8px}.loc-row__actions{flex:0 0 auto;display:flex;gap:2px}.loc-row__actions .material-icons{font-size:18px}
