:root{--color-background: #f2f2f7;--color-surface: #ffffff;--color-surface-secondary: #f2f2f7;--color-surface-elevated: #ffffff;--color-border: #c6c6c8;--color-border-subtle: #e5e5ea;--color-text-primary: #1c1c1e;--color-text-secondary: #6e6e73;--color-text-placeholder: #aeaeb2;--color-text-on-accent: #ffffff;--color-text-disabled: #c7c7cc;--color-accent: #007aff;--color-accent-hover: #0062cc;--color-accent-active: #004fa3;--color-accent-subtle: #e5f0ff;--color-danger: #ff3b30;--color-danger-hover: #cc2f26;--color-danger-subtle: #fff0ef;--color-warning: #ff9500;--color-warning-subtle: #fff8ec;--color-success: #34c759;--color-success-subtle: #edfaf1;--color-overlay: rgba(0, 0, 0, .4);--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1.0625rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.75rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .06);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--input-height-mobile: 2.75rem;--input-height-desktop: 2.25rem;--button-height-mobile: 2.75rem;--button-height-desktop: 2.25rem;--nav-height: 3.5rem;--header-height: 3rem;--layout-max-width-content: 720px;--layout-max-width-app: 860px;--layout-max-width-desktop-wide: 1200px;--layout-max-width-desktop-ultra-wide: 1480px;--layout-max-width-form: 24rem;--z-header: 100;--z-sidebar: 200;--z-modal: 1000;--z-modal-dialog: 1010;--z-toast: 9999;--color-sidebar-bg: #1c2f4a;--color-sidebar-bg-hover: #243d5e;--color-sidebar-item-active-bg: rgba(255, 255, 255, .12);--color-sidebar-text: rgba(255, 255, 255, .88);--color-sidebar-text-active: #ffffff;--color-sidebar-border: rgba(255, 255, 255, .08);--sidebar-width-expanded: 220px;--sidebar-width-collapsed: 3.5rem;--sidebar-transition: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-family-base);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-background);min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100dvh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}p{line-height:var(--line-height-normal);color:var(--color-text-primary)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover);text-decoration:underline}ul,ol{list-style:none}img,svg{display:block;max-width:100%}input,textarea,select,button{font-family:inherit;font-size:inherit}input,textarea,select{color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);width:100%;min-height:var(--input-height-mobile);box-sizing:border-box;outline:none;transition:border-color .15s ease}select{line-height:var(--line-height-normal);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}input::placeholder,textarea::placeholder{color:var(--color-text-placeholder)}input:focus,textarea:focus,select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}button{cursor:pointer;border:none;background:none;display:inline-flex;align-items:center;justify-content:center;min-height:var(--button-height-mobile);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);font-weight:var(--font-weight-medium);transition:background-color .15s ease,color .15s ease}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.divider{height:1px;background-color:var(--color-border-subtle);border:none;margin:var(--space-4) 0}.text-secondary{color:var(--color-text-secondary)}.text-small{font-size:var(--font-size-sm)}.app-shell{display:flex;flex-direction:column;min-height:100dvh;background-color:var(--color-background)}.app-content-wrapper{display:flex;flex-direction:column;flex:1;min-width:0}.app-sidebar{display:none}.sidebar{width:var(--sidebar-width-expanded);background-color:var(--color-sidebar-bg);display:flex;flex-direction:column;padding:var(--space-4) var(--space-3) var(--space-6);gap:var(--space-1);height:100%;overflow:hidden;transition:width var(--sidebar-transition)}.sidebar--collapsed{width:var(--sidebar-width-collapsed);padding-left:var(--space-2);padding-right:var(--space-2)}.sidebar--collapsed .sidebar__header{display:none}.sidebar--collapsed .sidebar__item{justify-content:center;gap:0;padding:var(--space-3) var(--space-2)}.sidebar--collapsed .sidebar__label{display:none}.sidebar--collapsed .sidebar__toggle{justify-content:center;padding:var(--space-3) var(--space-2)}.sidebar__header{padding:var(--space-3) var(--space-2);padding-bottom:var(--space-4);margin-bottom:var(--space-2);border-bottom:1px solid var(--color-sidebar-border)}.sidebar__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-sidebar-text-active);letter-spacing:-.01em}.sidebar__nav{display:flex;flex-direction:column;gap:var(--space-1)}.sidebar__item{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);background:none;border:none;color:var(--color-sidebar-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;width:100%;text-align:left;min-height:unset;transition:background-color var(--sidebar-transition),color var(--sidebar-transition)}.sidebar__item:hover{background-color:var(--color-sidebar-bg-hover);color:var(--color-sidebar-text-active)}.sidebar__item:hover .nav-icon{opacity:1}.sidebar__item--active{background-color:var(--color-sidebar-item-active-bg);color:var(--color-sidebar-text-active);font-weight:var(--font-weight-semibold)}.sidebar__item--active .nav-icon{opacity:1}.sidebar__item .nav-icon{opacity:.75;flex-shrink:0}.sidebar__label{white-space:nowrap;overflow:hidden}.sidebar__item--child{padding-left:var(--space-6)}.sidebar__item--child-flush{padding-left:var(--space-10)}.sidebar__chevron{margin-left:auto;transition:transform var(--sidebar-transition)}.sidebar__chevron--expanded{transform:rotate(180deg)}.sidebar__alert-badge{margin-left:auto;flex-shrink:0;min-width:18px;height:18px;padding:0 3px;background:var(--color-danger);color:var(--color-text-on-accent);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:18px;text-align:center;white-space:nowrap;box-sizing:border-box}.sidebar--collapsed .sidebar__alert-badge{display:none}.sidebar__version{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3) var(--space-3);overflow:hidden}.sidebar__version-app{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-sidebar-text);opacity:.7;white-space:nowrap}.sidebar__version-build{font-size:var(--font-size-xs);color:var(--color-sidebar-text);opacity:.45;white-space:nowrap;font-variant-numeric:tabular-nums}.sidebar--collapsed .sidebar__version{display:none}.sidebar__toggle{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-3);margin-top:auto;border-top:1px solid var(--color-sidebar-border);border-radius:var(--radius-md);background:none;border:none;color:var(--color-sidebar-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;width:100%;justify-content:flex-end;min-height:unset;transition:background-color var(--sidebar-transition),color var(--sidebar-transition)}.sidebar__toggle:hover{background-color:var(--color-sidebar-bg-hover);color:var(--color-sidebar-text-active)}.sidebar__toggle .nav-icon{opacity:.75;flex-shrink:0}.sidebar__toggle:hover .nav-icon{opacity:1}.app-header{position:sticky;top:0;z-index:var(--z-header);height:var(--header-height);background-color:var(--color-surface);border-bottom:1px solid var(--color-border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4)}.app-header__left{display:flex;align-items:center;gap:var(--space-2)}.app-header__right{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex-shrink:1}.app-header__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.app-main{flex:1 0 auto;width:100%;box-sizing:border-box;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.app-header__user-info{display:flex;flex-direction:column;align-items:flex-end;min-width:0;max-width:9rem;gap:1px}.app-header__user-name{font-size:var(--font-size-xs);color:var(--color-text-primary);font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:var(--line-height-tight)}.app-header__user-role{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-regular);white-space:nowrap;line-height:var(--line-height-tight)}.app-header__user-sep{display:none}@media(min-width:640px){.app-header__user-info{flex-direction:row;align-items:center;max-width:16rem;gap:var(--space-2)}.app-header__user-name,.app-header__user-role{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:inherit;max-width:unset;overflow:visible;text-overflow:unset}.app-header__user-sep{display:inline;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}}.app-header__logout{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-accent);background:none;border:none;padding:var(--space-2) var(--space-3);min-height:unset;border-radius:var(--radius-sm);cursor:pointer;transition:color .15s ease}.app-header__logout:hover:not(:disabled){color:var(--color-accent-hover)}.app-header__logout:disabled{color:var(--color-text-disabled);cursor:not-allowed}.burger-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:2.25rem;height:2.25rem;min-height:unset;padding:0;border:none;background:none;border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;transition:background-color .15s ease}.burger-btn:hover,.burger-btn:focus-visible{background-color:var(--color-surface-secondary);outline:none}.burger-bar{display:block;width:20px;height:2px;background-color:var(--color-text-primary);border-radius:var(--radius-full);transition:transform .25s ease,opacity .2s ease;transform-origin:center}.burger-btn--open .burger-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.burger-btn--open .burger-bar:nth-child(2){opacity:0;transform:scaleX(0)}.burger-btn--open .burger-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.burger-menu{position:absolute;top:100%;left:0;width:100%;background-color:var(--color-surface);border-bottom:1px solid var(--color-border-subtle);box-shadow:var(--shadow-md);overflow:hidden;max-height:0;opacity:0;transition:max-height .28s ease,opacity .2s ease;pointer-events:none;z-index:var(--z-sidebar)}.burger-menu--open{max-height:calc(100dvh - var(--header-height) - 2rem);opacity:1;pointer-events:auto;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.burger-menu__item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-5);background:none;border:none;border-radius:0;min-height:unset;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;text-align:left;border-bottom:1px solid var(--color-border-subtle);transition:background-color .15s ease,color .15s ease}.burger-menu__item:last-child{border-bottom:none}.burger-menu__item:hover{background-color:var(--color-accent-subtle);color:var(--color-accent)}.burger-menu__item--active{color:var(--color-accent);font-weight:var(--font-weight-semibold);background-color:var(--color-accent-subtle)}.burger-menu__item--child{padding-left:var(--space-10)}.burger-menu__check{margin-left:auto;color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.nav-icon{width:1.25rem;height:1.25rem;flex-shrink:0}.scan-input-placeholder{display:flex;flex-direction:column;gap:var(--space-2)}@media(min-width:769px){input,textarea,select{min-height:var(--input-height-desktop)}button{min-height:var(--button-height-desktop)}.app-main,.page-container{width:100%;max-width:var(--layout-max-width-content);margin-inline:auto;padding:var(--space-6) var(--space-4)}}@media(min-width:1025px){.app-shell{flex-direction:row;align-items:stretch}.app-sidebar{display:flex;flex-shrink:0;position:sticky;top:0;height:100dvh;overflow-y:auto;box-shadow:var(--shadow-lg)}.burger-btn{display:none}.burger-menu{display:none!important}.app-main,.page-container{max-width:var(--layout-max-width-app)}}@media(min-width:1280px){.app-main,.page-container{max-width:var(--layout-max-width-desktop-wide)}}@media(min-width:1536px){.app-main,.page-container{max-width:var(--layout-max-width-desktop-ultra-wide)}}.page-container{width:100%;box-sizing:border-box;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.wms-toast-container{position:fixed;top:calc(var(--header-height, 3rem) + var(--space-4, 1rem));right:var(--space-4, 1rem);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-3, .75rem);pointer-events:none;max-width:400px;width:calc(100% - var(--space-8, 2rem))}.wms-toast{display:flex;align-items:flex-start;gap:var(--space-3, .75rem);padding:var(--space-4, 1rem) var(--space-4, 1rem);background:var(--color-surface);border-radius:var(--radius-md, .75rem);box-shadow:var(--shadow-lg);border-left:4px solid transparent;font-family:var(--font-family-base, -apple-system, BlinkMacSystemFont, sans-serif);font-size:var(--font-size-sm, .875rem);line-height:var(--line-height-normal, 1.5);color:var(--color-text-primary);pointer-events:auto;min-width:260px;max-width:400px;width:100%;box-sizing:border-box;position:relative}.wms-toast__icon{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full, 9999px);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-bold, 700);line-height:1}.wms-toast__text{flex:1;word-break:break-word;padding-top:.125rem}.wms-toast__close{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:1.25rem;line-height:1;padding:0;color:var(--color-text-secondary);opacity:.6;transition:opacity .15s ease;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;margin-top:.0625rem}.wms-toast__close:hover,.wms-toast__close:focus-visible{opacity:1}.wms-toast__close:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm, .375rem)}.wms-toast--success{border-left-color:var(--color-success)}.wms-toast--success .wms-toast__icon{background:var(--color-success-subtle);color:var(--color-success)}.wms-toast--error{border-left-color:var(--color-danger)}.wms-toast--error .wms-toast__icon{background:var(--color-danger-subtle);color:var(--color-danger)}.wms-toast--warning{border-left-color:var(--color-warning)}.wms-toast--warning .wms-toast__icon{background:var(--color-warning-subtle);color:var(--color-warning)}.wms-toast--info{border-left-color:var(--color-accent)}.wms-toast--info .wms-toast__icon{background:var(--color-accent-subtle);color:var(--color-accent)}@keyframes wms-toast-slide-in{0%{transform:translate(110%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes wms-toast-slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(110%);opacity:0}}.wms-toast--slide-in{animation:wms-toast-slide-in .3s ease-out both}.wms-toast--slide-out{animation:wms-toast-slide-out .35s ease-in forwards}@media(max-width:480px){.wms-toast-container{top:calc(var(--header-height, 3rem) + var(--space-2, .5rem));right:var(--space-2, .5rem);left:var(--space-2, .5rem);width:auto;max-width:100%}.wms-toast{min-width:auto;max-width:100%;width:100%;padding:var(--space-3, .75rem) var(--space-3, .75rem)}}@media(prefers-reduced-motion:reduce){.wms-toast--slide-in,.wms-toast--slide-out{animation:none}.wms-toast--slide-out{opacity:0}}.notfound{flex:1 1 auto;display:flex;align-items:center;justify-content:center;width:100%;min-height:60vh;padding:var(--space-6) var(--space-4)}.notfound__card{width:100%;max-width:30rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-5);padding:var(--space-10) var(--space-8);background-color:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.notfound__icon{display:flex;align-items:center;justify-content:center;width:5rem;height:5rem;border-radius:var(--radius-full);background-color:var(--color-warning-subtle);color:var(--color-warning);flex-shrink:0}.notfound__icon svg{width:2.5rem;height:2.5rem}.notfound__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-tight);margin:0}.notfound__message{font-size:var(--font-size-md);color:var(--color-text-secondary);line-height:var(--line-height-normal);max-width:26rem;margin:0}.notfound__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;width:100%;margin-top:var(--space-2)}.notfound__btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--button-height-mobile);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.notfound__btn svg{width:1.25rem;height:1.25rem;flex-shrink:0}.notfound__btn--primary{background-color:var(--color-accent);color:var(--color-text-on-accent)}.notfound__btn--primary:hover{background-color:var(--color-accent-hover);color:var(--color-text-on-accent);text-decoration:none}.notfound__btn--primary:active{background-color:var(--color-accent-active)}.notfound__btn--secondary{background-color:var(--color-surface);color:var(--color-accent);border-color:var(--color-border)}.notfound__btn--secondary:hover{background-color:var(--color-surface-secondary);color:var(--color-accent-hover);text-decoration:none}@media(max-width:480px){.notfound__card{padding:var(--space-8) var(--space-5);gap:var(--space-4)}.notfound__actions{flex-direction:column}.notfound__btn{width:100%}}@media(min-width:769px){.notfound__card{max-width:32rem;padding:var(--space-12) var(--space-10)}.notfound__title{font-size:var(--font-size-3xl)}}.login-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-4);background-color:var(--color-background)}.login-card{width:100%;max-width:var(--layout-max-width-form);background-color:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-6);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--space-6)}.login-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.login-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.login-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.login-form{display:flex;flex-direction:column;gap:var(--space-4)}.login-field{display:flex;flex-direction:column;gap:var(--space-2)}.login-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.login-submit{width:100%;background-color:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);min-height:var(--button-height-mobile);border-radius:var(--radius-md);border:none;cursor:pointer;transition:background-color .15s ease}.login-submit:hover:not(:disabled){background-color:var(--color-accent-hover)}.login-submit:active:not(:disabled){background-color:var(--color-accent-active)}.login-submit:disabled{opacity:.6;cursor:not-allowed}@media(min-width:481px){.login-card{padding:var(--space-10) var(--space-8)}}.login-version{display:flex;flex-direction:column;align-items:center;gap:2px;padding-top:var(--space-2)}.login-version__app{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);opacity:.7}.login-version__build{font-size:var(--font-size-xs);color:var(--color-text-secondary);opacity:.5;font-variant-numeric:tabular-nums}.alert-badge{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-width:40px;height:40px;padding:0 var(--space-2);background:transparent;color:var(--color-text-secondary);border:none;border-radius:var(--radius-md);cursor:pointer;flex-shrink:0;transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent}.alert-badge:hover{background:var(--color-accent-subtle);color:var(--color-accent)}.alert-badge:active{opacity:.75}.alert-badge__bell{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px}.alert-badge__icon{width:20px;height:20px;flex-shrink:0}.alert-badge__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-1);background:var(--color-danger);color:var(--color-text-on-accent);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:1;text-align:center;white-space:nowrap;pointer-events:none;box-sizing:border-box;flex-shrink:0}
