@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg:#f1f4f5;--surface:#fff;--surface-2:#eaeeef;--surface-sunken:#e4e9ea;--border:#d7dee0;--border-strong:#bfc9cc;--ink:#182226;--ink-muted:#55636a;--ink-faint:#8b989e;--accent:#9c4e1f;--accent-hover:#83411a;--accent-active:#6e3715;--accent-soft:#f3e3d4;--accent-soft-border:#e3c7ac;--on-accent:#fff;--success:#2e7d4f;--success-soft:#dfefe4;--success-soft-border:#b9ddc4;--warning:#9c6b0b;--warning-soft:#f5ead2;--warning-soft-border:#e5ce94;--danger:#b23b34;--danger-soft:#f5e0de;--danger-soft-border:#e4b7b2;--info:#3d6c8c;--info-soft:#dee9ee;--info-soft-border:#b7cfda;--chart-blue:#0e7fb0;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:48px;--sp-9:64px;--shadow-sm:0 1px 2px #18222614, 0 1px 1px #1822260a;--shadow-md:0 6px 16px #1822261f, 0 2px 6px #1822260f;--shadow-lg:0 16px 40px #1822262e, 0 4px 12px #18222614;--font-ui:"IBM Plex Sans", -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{font-family:var(--font-ui);color:var(--ink);background:var(--bg);font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}h1,h2,h3,h4,p{margin:0}button{font:inherit}.icon{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em;flex:none;width:1em;height:1em;display:inline-block}.mono{font-family:var(--font-mono)}.app-shell{background:var(--bg);width:100%;min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:none;width:240px;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:10px;height:60px;padding:0 20px;display:flex}.sidebar-brand .mark{background:var(--accent);color:#fff;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:flex}.sidebar-brand .name{letter-spacing:-.01em;font-size:15px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:14px 12px;display:flex;overflow-y:auto}.sidebar-footer{border-top:1px solid var(--border);height:48px;color:var(--ink-faint);cursor:pointer;background:0 0;border-bottom:none;border-left:none;border-right:none;flex:none;align-items:center;gap:8px;width:100%;padding:0 20px;font-size:12px;font-weight:600;display:flex}.navitem{border-radius:var(--r-sm);color:var(--ink-muted);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 12px;font-size:13px;font-weight:500;display:flex;position:relative}.navitem.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.navitem.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:-12px}.navitem .icon{width:18px;height:18px}.navitem .chev{width:14px;height:14px;color:var(--ink-faint);margin-left:auto;transition:transform .15s}.navitem .chev.open{transform:rotate(90deg)}.navsub{flex-direction:column;gap:1px;margin:2px 0 8px;padding-left:30px;display:flex}.navsubitem{border-radius:var(--r-sm);color:var(--ink-muted);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:7px 10px;font-size:13px;display:flex}.navsubitem.active{color:var(--accent);background:var(--accent-soft);font-weight:600}.navcount{background:var(--info-soft);color:var(--info);border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:700}.navsubitem.active .navcount{background:var(--accent-soft);color:var(--accent)}.navcount.warn{background:var(--warning-soft);color:var(--warning)}.navsubitem.active .navcount.warn{background:var(--accent-soft);color:var(--accent)}.main-col{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:5;flex:none;justify-content:space-between;align-items:center;gap:18px;height:60px;padding:0 28px;display:flex;position:sticky;top:0}.breadcrumb{white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:13px;display:flex;overflow:hidden}.breadcrumb .sep,.breadcrumb .crumb{color:var(--ink-faint)}.breadcrumb .crumb.current{color:var(--ink);font-weight:600}.topbar-actions{flex:none;align-items:center;gap:18px;display:flex}.search{width:280px;position:relative}.search input{border:1px solid var(--border-strong);background:var(--surface-2);width:100%;font-size:13px;font-family:var(--font-ui);color:var(--ink);border-radius:999px;padding:8px 14px 8px 34px}.search .icon{width:15px;height:15px;color:var(--ink-faint);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.notif-btn{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:0;display:flex;position:relative}.notif-dot{background:var(--danger);border:2px solid var(--surface);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;right:-3px}.profile-menu{position:relative}.profile-trigger{cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:0;display:flex}.avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.profile-name-block{text-align:left;line-height:1.25}.profile-name-block .name{font-size:13px;font-weight:600}.profile-name-block .role{color:var(--ink-faint);font-size:11px}.profile-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:220px;box-shadow:var(--shadow-lg);z-index:20;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.profile-dropdown-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.avatar-lg{background:var(--accent);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}.profile-dropdown-header .name{font-size:13px;font-weight:600}.profile-dropdown-header .sub{color:var(--ink-faint);font-size:11.5px}.profile-dropdown-group{padding:6px 0}.profile-dropdown-group+.profile-dropdown-group{border-top:1px solid var(--border)}.menu-item{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 16px;font-size:13px;display:flex}.menu-item:hover{background:var(--surface-2)}.menu-item .icon{width:16px;height:16px;color:var(--ink-faint)}.menu-item.danger,.menu-item.danger .icon{color:var(--danger)}.notif-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:360px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);z-index:20;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-dropdown-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.notif-dropdown-head .title{font-size:14px;font-weight:600}.notif-dropdown-head button{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.notif-dropdown-head button:disabled{color:var(--ink-faint);cursor:default}.notif-list{max-height:360px;overflow-y:auto}.notif-item{border-bottom:1px solid var(--border);gap:12px;padding:12px 20px;display:flex;position:relative}.notif-item:last-child{border-bottom:none}.notif-item.unread{background:var(--accent-soft)}.notif-ico{border-radius:50%;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.notif-ico .icon{width:16px;height:16px}.notif-t1{font-size:13px;font-weight:600}.notif-t2{color:var(--ink-muted);margin-top:2px;font-size:12px}.notif-time{color:var(--ink-faint);margin-top:3px;font-size:11px}.notif-dropdown-foot{text-align:center;border-top:1px solid var(--border);padding:12px}.notif-dropdown-foot button{cursor:pointer;color:var(--accent);background:0 0;border:none;font-size:12.5px;font-weight:600}.menu-toggle-btn{cursor:pointer;width:40px;height:40px;color:var(--ink);background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin-left:-8px;display:none}.sidebar-rail{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:none;align-items:center;width:64px;height:100vh;display:none;position:sticky;top:0}.sidebar-rail-brand{border-bottom:1px solid var(--border);flex:none;justify-content:center;align-items:center;width:100%;height:60px;display:flex}.sidebar-rail-nav{flex-direction:column;flex:1;align-items:center;gap:8px;padding:14px 0;display:flex}.railitem{border-radius:var(--r-sm);width:40px;height:40px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:relative}.railitem.active{background:var(--accent-soft);color:var(--accent)}.railitem.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:-14px}.railitem .icon{width:19px;height:19px}.sidebar-rail-foot{border-top:1px solid var(--border);width:100%;height:48px;color:var(--ink-faint);cursor:pointer;background:0 0;border-bottom:none;border-left:none;border-right:none;flex:none;justify-content:center;align-items:center;display:flex}.drawer-scrim{z-index:90;background:#18222673;position:fixed;inset:0}.sidebar-drawer{background:var(--surface);width:280px;max-width:84vw;box-shadow:var(--shadow-lg);z-index:91;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-drawer-head{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;height:56px;padding:0 12px 0 18px;display:flex}.sidebar-drawer-close{width:44px;height:44px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.sidebar-drawer-foot{border-top:1px solid var(--border);flex:none;align-items:center;gap:10px;padding:14px 16px;display:flex}@media (width<=1024px){.sidebar-rail{display:flex}}@media (width<=640px){.sidebar-rail{display:none}.menu-toggle-btn{display:flex}}.sidebar.collapsed-forced{display:none}.sidebar-rail.expanded-forced{display:flex}@media (width<=640px){.sidebar-rail.expanded-forced{display:none}}.content{flex:1;padding:28px 32px}.page-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.page-head h1{font-size:24px;font-weight:700}.page-sub{color:var(--ink-muted);margin-top:3px;font-size:12.5px}.back-link{cursor:pointer;color:var(--accent);background:0 0;border:none;align-items:center;gap:5px;margin-bottom:10px;padding:0;font-size:12.5px;font-weight:600;display:inline-flex}.back-link .icon{width:13px;height:13px}.btn{font-family:var(--font-ui);border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.btn .icon{width:14px;height:14px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{color:var(--ink-muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover:not(:disabled){filter:brightness(.94)}.btn-danger-outline{color:var(--danger);border-color:var(--danger);background:var(--surface)}.btn-danger-outline:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{padding:6px 11px;font-size:12.5px}.btn-block{width:100%}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.fsearch{flex:1;min-width:260px;position:relative}.fsearch input{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);width:100%;font-size:13px;font-family:var(--font-ui);color:var(--ink);padding:9px 40px 9px 14px}.fsearch .scanbtn{border-radius:var(--r-sm);background:var(--accent-soft);width:32px;color:var(--accent);cursor:pointer;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:5px;bottom:5px;right:5px}.fsearch .scanbtn .icon{width:16px;height:16px}.fselect{flex:none;width:152px;position:relative}.fselect select{appearance:none;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);width:100%;font-size:13px;font-family:var(--font-ui);color:var(--ink);padding:9px 30px 9px 12px}.fselect .icon{width:14px;height:14px;color:var(--ink-faint);pointer-events:none;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.table-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12.5px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px;font-size:11px;font-weight:600}th.num,td.num{text-align:right}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable .sicon{vertical-align:-1px;width:12px;height:12px;color:var(--ink-faint);margin-left:4px}th.sorted{color:var(--ink)}th.sorted .sicon{color:var(--accent)}tbody td{border-bottom:1px solid var(--border);color:var(--ink);vertical-align:middle;padding:10px 12px}tbody tr:last-child td{border-bottom:none}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover td{background:var(--surface-2)}tbody tr.sel td,tbody tr.sel:hover td{background:var(--accent-soft)}.bulkbar{background:var(--accent-soft);border:1px solid var(--accent-soft-border);border-radius:var(--r-md);align-items:center;gap:12px;margin-bottom:14px;padding:10px 16px;display:flex}.bulkbar-clear{background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;width:26px;height:26px;color:var(--ink-muted);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.bulkbar-count{color:var(--accent);font-size:13px;font-weight:600}.thumb{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);width:30px;height:30px;color:var(--ink-faint);justify-content:center;align-items:center;display:flex}.thumb .icon{width:14px;height:14px}.pname{color:var(--ink);font-weight:600}.ordno{font-weight:700}.stockwarn{color:var(--warning);font-weight:600}.stockdanger{color:var(--danger);font-weight:600}.kebab{border-radius:var(--r-sm);background:var(--surface-2);width:26px;height:26px;color:var(--ink);cursor:pointer;border:none;justify-content:center;align-items:center;display:flex}.kebab .icon{width:16px;height:16px}.kebab-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:170px;box-shadow:var(--shadow-lg);z-index:20;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.kebab-menu button{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:9px;padding:9px 12px;font-size:12.5px;display:flex}.kebab-menu button:hover{background:var(--surface-2)}.kebab-menu button.danger{color:var(--danger)}.kebab-wrap{display:inline-flex;position:relative}.kebab-menu-sep{background:var(--border);height:1px}.edit-cell{align-items:center;gap:4px;display:flex;overflow:visible}.edit-input{width:64px;font-family:var(--font-mono);border:1px solid var(--accent);border-radius:var(--r-sm);box-shadow:0 0 0 3px var(--accent-soft);outline:none;padding:4px 6px;font-size:12.5px}.mini-btn{border-radius:var(--r-sm);cursor:pointer;border:none;flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.mini-btn.ok{background:var(--success-soft);color:var(--success)}.mini-btn.cancel{background:var(--surface-2);color:var(--ink-faint)}.stepper-mini{border:1px solid var(--accent);border-radius:var(--r-sm);box-shadow:0 0 0 3px var(--accent-soft);flex:none;align-items:center;display:flex;overflow:hidden}.stepper-mini button{background:var(--surface-2);width:18px;height:22px;color:var(--ink);cursor:pointer;border:none;font-size:12px}.stepper-mini input{text-align:center;width:34px;font-family:var(--font-mono);border:none;padding:0;font-size:12px}.editable-cell{cursor:pointer}.editable-cell:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.table-caption{color:var(--ink-faint);padding:3px 2px 9px;font-size:11px;font-style:italic}.table-caption b{color:var(--ink-muted);font-style:normal;font-weight:600}.pagination{border-top:1px solid var(--border);color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:12.5px;display:flex}.pg-controls{align-items:center;gap:4px;display:flex}.pg-btn{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);cursor:pointer;width:26px;height:26px;color:var(--ink-muted);justify-content:center;align-items:center;font-size:12.5px;display:flex}.pg-btn:disabled{opacity:.45;cursor:not-allowed}.pg-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.pg-btn .icon{width:13px;height:13px}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-soft);color:var(--success);border-color:var(--success-soft-border)}.badge-warning{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-soft-border)}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-soft-border)}.badge-info{background:var(--info-soft);color:var(--info);border-color:var(--info-soft-border)}.badge-neutral{background:var(--surface-2);color:var(--ink-muted);border-color:var(--border)}.stat-row{flex-wrap:wrap;gap:16px;margin-bottom:24px;display:flex}.stat-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);flex:1;min-width:160px;padding:16px 20px}.stat-label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:12px}.stat-value{font-family:var(--font-mono);font-size:26px;font-weight:600}.stat-link{font-size:12px;font-weight:600}.qa-row{flex-wrap:wrap;gap:16px;margin-bottom:24px;display:flex}.qa-hero{background:var(--accent);color:#fff;border-radius:var(--r-lg);cursor:pointer;text-align:left;border:none;flex-direction:column;flex:1.3;justify-content:space-between;min-width:240px;min-height:204px;padding:24px 26px;display:flex}.qa-hero .ico{background:#ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.qa-hero .ico .icon{width:22px;height:22px}.qa-secondary{flex-direction:column;flex:1;gap:12px;min-width:220px;min-height:204px;display:flex}.qa-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;text-align:left;flex:1;align-items:center;gap:12px;padding:0 16px;display:flex}.qa-item:hover{background:var(--surface-2)}.qa-item .ico{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.qa-item .ico .icon{width:17px;height:17px}.list-row-panel{flex-wrap:wrap;gap:16px;display:flex}.list-panel{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);flex:1;min-width:260px}.list-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.list-head>div{font-size:14px;font-weight:600}.list-head a,.list-head button{cursor:pointer;color:var(--accent);background:0 0;border:none;font-size:12.5px;font-weight:600}.list-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:11px 18px;display:flex}.list-row:last-child{border-bottom:none}.list-title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.list-meta{color:var(--ink-faint);margin-top:2px;font-size:11.5px}.list-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;min-height:160px;padding:24px 20px;display:flex}.list-empty .circ{background:var(--surface-2);width:36px;height:36px;color:var(--ink-faint);border-radius:50%;justify-content:center;align-items:center;display:flex}.list-empty.positive .circ{background:var(--success-soft);color:var(--success)}.list-empty h5{margin:0;font-size:13px;font-weight:600}.list-empty p{color:var(--ink-muted);max-width:24ch;margin:0;font-size:12px}.field{flex-direction:column;gap:6px;display:flex}.field-label{justify-content:space-between;align-items:center;display:flex}.field-label .lbl{color:var(--ink);font-size:13px;font-weight:600}.field-label .opt{color:var(--ink-faint);font-size:11px;font-weight:500}.field .error-msg{color:var(--danger);align-items:center;gap:5px;font-size:12px;display:flex}.field .error-msg .icon{flex:none}.tag-auto{background:var(--info-soft);color:var(--info);border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-flex}.input,select.input,textarea.input{font-family:var(--font-ui);color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);width:100%;padding:9px 11px;font-size:13.5px}.input:focus,select.input:focus,textarea.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input.has-error{border-color:var(--danger)}.input.has-error:focus{box-shadow:0 0 0 3px var(--danger-soft)}.input.filled{background:var(--info-soft);border-color:var(--info-soft-border)}.hint{color:var(--ink-faint);font-size:12px}.row3{flex-wrap:wrap;gap:12px;display:flex}.row3>*{flex:1;min-width:160px}.select-wrap{position:relative}.select-wrap select{appearance:none;padding-right:30px}.select-wrap .chev{width:14px;height:14px;color:var(--ink-faint);pointer-events:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.price-wrap{position:relative}.price-wrap input{padding-left:24px}.price-wrap .cur{color:var(--ink-faint);font-size:13px;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.barcode-field{position:relative}.barcode-field input{height:48px;font-size:16px;font-family:var(--font-mono);border-radius:var(--r-md);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);padding:0 48px 0 16px}.barcode-field .scanbtn{border-radius:var(--r-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;width:36px;display:flex;position:absolute;top:6px;bottom:6px;right:6px}.barcode-field .scanbtn .icon{width:17px;height:17px}.disclosure{border-top:1px solid var(--border);cursor:pointer;background:0 0;border-bottom:none;border-left:none;border-right:none;justify-content:space-between;align-items:center;width:100%;margin-top:6px;padding:12px 2px;display:flex}.disclosure .left{color:var(--ink-muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.disclosure .icon{width:16px;height:16px;color:var(--ink-faint);transition:transform .15s}.disclosure .icon.open{transform:rotate(90deg)}.form-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:26px;padding-top:18px;display:flex}.checkbox-row{color:var(--ink-muted);align-items:center;gap:8px;font-size:13px;display:flex}.checkbox-row input{width:15px;height:15px;accent-color:var(--accent)}.perm-grid{grid-template-columns:1fr 1fr;gap:10px 16px;display:grid}.role-perms{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.perm-matrix-actions{gap:8px;margin-bottom:12px;display:flex}.perm-module{border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:10px}.perm-module-head{border-bottom:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-md) var(--r-md) 0 0;justify-content:space-between;align-items:center;padding:9px 12px;display:flex}.perm-module-head .checkbox-row{color:var(--ink);font-weight:700}.perm-module-count{color:var(--ink-faint);font-size:11px;font-weight:600}.perm-module-body{padding:10px 12px}.wizard-stepper{align-items:center;margin-bottom:22px;display:flex}.wizard-step{align-items:center;gap:8px;display:flex}.wizard-step .circle{border-radius:50%;flex:none;justify-content:center;align-items:center;width:25px;height:25px;font-size:11.5px;font-weight:700;display:flex}.wizard-step.done .circle{background:var(--success);color:#fff;cursor:pointer}.wizard-step.active .circle{background:var(--accent);color:#fff}.wizard-step.todo .circle{background:var(--surface-2);color:var(--ink-faint);border:1px solid var(--border)}.wizard-step .label{white-space:nowrap;font-size:12px;font-weight:600}.wizard-step.todo .label{color:var(--ink-faint)}.wizard-step.done .label{cursor:pointer}.wizard-step-line{background:var(--border);flex:1;height:1px;margin:0 6px}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.tab-btn{color:var(--ink-muted);white-space:nowrap;border-bottom:2px solid #0000;flex:none;align-items:center;gap:7px;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.tab-btn:hover{color:var(--ink)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-btn .tab-count{color:var(--ink-faint);background:var(--surface-2);border-radius:999px;padding:1px 6px;font-size:11px;font-weight:700}.tab-btn.active .tab-count{color:var(--accent);background:var(--accent-soft)}.dpanel{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);margin-bottom:16px}.dpanel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:13px 18px;display:flex}.dpanel-head h3{text-transform:uppercase;letter-spacing:.03em;color:var(--ink-muted);font-size:13.5px;font-weight:700}.dpanel-body{padding:16px 18px}.kv-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.kv label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:11px;display:block}.kv .val{font-size:13.5px;font-weight:600}.inv-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.inv-tile{border:1px solid var(--border);border-radius:var(--r-md);padding:12px 14px}.inv-tile.avail{background:var(--success-soft);border-color:var(--success-soft-border)}.inv-tile label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:10.5px;display:block}.inv-tile.avail label{color:var(--success)}.inv-tile .n{font-family:var(--font-mono);font-size:20px;font-weight:700}.inv-tile.avail .n{color:var(--success)}.inv-formula{color:var(--ink-faint);margin-top:10px;font-size:11.5px}.dupe-banner{background:var(--danger-soft);border:1px solid var(--danger-soft-border);border-radius:var(--r-md);align-items:flex-start;gap:10px;margin-top:6px;padding:11px 14px;display:flex}.dupe-banner .icon{width:16px;height:16px;color:var(--danger);flex:none;margin-top:1px}.dupe-banner .body{color:var(--ink);font-size:12.5px}.dupe-banner .body b{color:var(--danger)}.dupe-banner a{font-weight:600}.banner{background:var(--warning-soft);border:1px solid var(--warning-soft-border);border-radius:var(--r-md);align-items:flex-start;gap:10px;margin-bottom:18px;padding:12px 16px;display:flex}.banner .icon{width:16px;height:16px;color:var(--warning);flex:none;margin-top:1px}.banner .body{color:var(--ink);font-size:13px}.banner .body b{color:var(--warning)}.barcode-visual{align-items:flex-end;gap:1px;height:44px;margin:10px 0;display:flex}.barcode-visual span{background:var(--ink);width:2px;height:100%}.gallery-thumbs{gap:8px;margin-top:8px;display:flex}.thumb-sm{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);width:52px;height:52px;color:var(--ink-faint);justify-content:center;align-items:center;display:flex}.thumb-sm.active{border-color:var(--accent);border-width:2px}.spec-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.spec-row:last-child{border-bottom:none}.spec-row .k{color:var(--ink-muted)}.spec-row .v{font-weight:600}.price-mrp{color:var(--ink-faint);font-size:12.5px;text-decoration:line-through}.price-sell{font-family:var(--font-mono);color:var(--ink);font-size:26px;font-weight:700}table.hist{border-collapse:collapse;width:100%;font-size:12.5px}table.hist th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);border-bottom:1px solid var(--border);padding:8px 4px;font-size:10.5px;font-weight:600}table.hist td{border-bottom:1px solid var(--border);padding:9px 4px}table.hist tr:last-child td{border-bottom:none}.hist-type{align-items:center;gap:5px;font-size:11.5px;font-weight:600;display:inline-flex}.hist-type.in{color:var(--success)}.hist-type.out{color:var(--danger)}.hist-type.adj{color:var(--warning)}.mtype{align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.mtype.in{color:var(--success)}.mtype.out{color:var(--chart-blue)}.mtype.adj{color:var(--warning)}.modal-overlay{z-index:100;background:#18222670;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--r-lg);width:400px;max-width:100%;box-shadow:var(--shadow-lg);border:1px solid var(--border);overflow:hidden}.modal-head{border-bottom:1px solid var(--border);padding:16px 20px}.modal-head h4{margin:0 0 3px;font-size:15px;font-weight:600}.modal-head .sub{color:var(--ink-muted);font-size:12.5px}.modal-body{max-height:60vh;padding:18px 20px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);background:var(--surface-2);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.current-stat{background:var(--surface-2);border-radius:var(--r-sm);color:var(--ink-muted);justify-content:space-between;align-items:center;margin-bottom:14px;padding:10px 12px;font-size:12.5px;display:flex}.current-stat b{font-family:var(--font-mono);color:var(--ink);font-size:14px}.stepper{border:1px solid var(--accent);border-radius:var(--r-sm);box-shadow:0 0 0 3px var(--accent-soft);align-items:stretch;width:150px;display:flex;overflow:hidden}.stepper button{background:var(--surface-2);cursor:pointer;width:34px;color:var(--ink);border:none;font-size:15px}.stepper input{text-align:center;width:100%;font-family:var(--font-mono);background:var(--surface);border:none;font-size:14px}.confirm-icon{background:var(--danger-soft);width:40px;height:40px;color:var(--danger);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.confirm-icon.warn{background:var(--warning-soft);color:var(--warning)}.confirm-icon .icon{width:20px;height:20px}.confirm-body{gap:14px;padding:20px;display:flex}.confirm-text h4{margin:0 0 6px;font-size:14.5px;font-weight:600}.info-note{background:var(--info-soft);border-radius:var(--r-sm);color:var(--ink);gap:9px;padding:10px 12px;font-size:12px;display:flex}.info-note .icon{color:var(--info);flex:none;width:14px;height:14px;margin-top:1px}.warn-note{background:var(--danger-soft);border-radius:var(--r-sm);color:var(--ink);gap:9px;margin:16px 20px 0;padding:11px 13px;font-size:12px;display:flex}.warn-note .icon{color:var(--danger);flex:none;width:14px;height:14px;margin-top:1px}.confirm-text p{color:var(--ink-muted);margin:0;font-size:13px;line-height:1.5}.toast-stack{z-index:200;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--ink);color:#fff;border-radius:var(--r-md);min-width:280px;max-width:360px;box-shadow:var(--shadow-lg);align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;animation:.18s toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast .icon{flex:none;width:17px;height:17px;margin-top:1px}.toast.success .icon{color:#7bd69c}.toast.error .icon{color:#f0a39d}.toast.info .icon{color:#9cc7de}.toast-close{color:#fff9;cursor:pointer;background:0 0;border:none;flex:none;margin-left:auto;padding:0}.state-panel{text-align:center;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 24px;display:flex}.state-panel.danger{border-color:var(--danger-soft-border)}.state-icon{background:var(--surface-2);width:48px;height:48px;color:var(--ink-faint);border-radius:50%;justify-content:center;align-items:center;display:flex}.state-icon.danger{background:var(--danger-soft);color:var(--danger)}.state-icon .icon{width:22px;height:22px}.state-title{font-size:15px;font-weight:600}.state-desc{color:var(--ink-muted);max-width:34ch;font-size:13px}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--border) 37%, var(--surface-2) 63%);border-radius:var(--r-sm);background-size:400% 100%;animation:1.4s infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:100%}to{background-position:0}}.choice-row{flex-wrap:wrap;gap:10px;display:flex}.choice-btn{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);min-width:120px;color:var(--ink);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:13.5px;font-weight:600;display:flex}.choice-btn.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.choice-btn.selected.increase{border-color:var(--success);background:var(--success-soft);color:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.choice-btn.selected.decrease{border-color:var(--danger);background:var(--danger-soft);color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.reason-chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:12.5px;font-weight:600}.reason-chip.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.rgrid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=900px){.rgrid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.rgrid{grid-template-columns:1fr}}.rcard{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);text-align:left;cursor:pointer;flex-direction:column;gap:10px;padding:20px;display:flex}.rcard:hover{border-color:var(--border-strong)}.rcard .ico{border-radius:var(--r-md);justify-content:center;align-items:center;width:38px;height:38px;display:flex}.rcard h3{font-size:15px;font-weight:700}.rcard p{color:var(--ink-muted);flex:1;font-size:12.5px;line-height:1.5}.rcard .rcard-link{color:var(--accent);align-items:center;gap:5px;font-size:12.5px;font-weight:600;display:inline-flex}.rtoolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.rfield{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);height:38px;color:var(--ink);white-space:nowrap;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex}.rfield.rfield-search{min-width:200px;position:relative}.rfield.rfield-search input{font-family:var(--font-ui);color:var(--ink);background:0 0;border:none;outline:none;width:100%;font-size:13px}.spacer{flex:1}.export-wrap{position:relative}.btn-export{border-radius:var(--r-md);background:var(--accent);height:38px;color:var(--on-accent);font-family:var(--font-ui);cursor:pointer;border:none;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.export-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);width:170px;box-shadow:var(--shadow-sm);z-index:15;position:absolute;top:44px;right:0;overflow:hidden}.export-item{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:9px;width:100%;padding:9px 13px;font-size:13px;display:flex}.export-item:hover{background:var(--surface-2)}.export-item .icon{width:15px;height:15px;color:var(--ink-faint)}.stats{flex-wrap:wrap;gap:16px;margin-bottom:20px;display:flex}.stat{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);flex:1;min-width:160px;padding:16px 20px}.stat label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;font-size:11.5px;display:block}.stat .n{font-family:var(--font-mono);font-size:24px;font-weight:700}.stat.warn .n{color:var(--warning)}.stat.bad .n{color:var(--danger)}.propbar{border-radius:var(--r-pill);gap:2px;height:26px;display:flex;overflow:hidden}.propbar span{height:100%}.legend{flex-wrap:wrap;gap:28px;margin-top:16px;display:flex}.legend .item{align-items:center;gap:8px;display:flex}.legend .dot,.legend .sw{border-radius:50%;flex:none;width:9px;height:9px}.legend .sw{border-radius:2px}.legend .lbl{font-size:12.5px;font-weight:600}.legend .val{color:var(--ink-muted);font-size:12px}.stat-line{background:var(--warning-soft);border:1px solid var(--warning-soft-border);border-radius:var(--r-md);align-items:center;gap:10px;margin-bottom:18px;padding:13px 18px;display:flex}.stat-line.bad{background:var(--danger-soft);border-color:var(--danger-soft-border)}.stat-line .icon{color:var(--warning);flex:none;width:17px;height:17px}.stat-line.bad .icon{color:var(--danger)}.stat-line b{color:var(--warning)}.stat-line.bad b{color:var(--danger)}.short{color:var(--warning);font-weight:700}.days{font-weight:700}.days.long{color:var(--danger)}.report-note{color:var(--ink-faint);border-top:1px solid var(--border);background:var(--surface-2);padding:10px 18px;font-size:11.5px}tfoot td{border-top:2px solid var(--border-strong);padding:12px 18px;font-weight:700}.chart-wrap{padding:20px 24px 8px;display:flex;overflow-x:auto}.yaxis{width:34px;height:150px;color:var(--ink-faint);text-align:right;font-size:10.5px;font-family:var(--font-mono);flex-direction:column;flex:none;justify-content:space-between;padding-right:8px;display:flex}.plot{border-left:1px solid var(--border);border-bottom:1px solid var(--border-strong);flex:1;min-width:360px;height:150px;position:relative}.gridline{background:var(--border);opacity:.7;height:1px;position:absolute;left:0;right:0}.bars{justify-content:space-around;align-items:flex-end;padding:0 10px;display:flex;position:absolute;inset:0}.bgroup{align-items:flex-end;gap:3px;display:flex;position:relative}.bar{border-radius:3px 3px 0 0;width:16px}.bar.single{background:var(--accent);width:30px}.bar.in{background:var(--accent)}.bar.out{background:var(--chart-blue)}.chart-tooltip{background:var(--ink);color:#fff;border-radius:var(--r-sm);white-space:nowrap;box-shadow:var(--shadow-sm);pointer-events:none;opacity:0;z-index:5;padding:6px 9px;font-size:11px;transition:opacity .1s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.bgroup:hover .chart-tooltip{opacity:1}.xaxis{justify-content:space-around;padding:8px 34px 14px 44px;display:flex}.xaxis span{color:var(--ink-faint);font-size:11px;font-family:var(--font-mono);text-align:center;width:34px}.import-stepper{align-items:center;margin-bottom:26px;display:flex}.import-step{flex:none;align-items:center;gap:10px;display:flex}.import-step .circle{border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:flex}.import-step.done .circle{background:var(--success);color:#fff}.import-step.active .circle{background:var(--accent);color:#fff}.import-step.todo .circle{background:var(--surface-2);color:var(--ink-faint);border:1px solid var(--border)}.import-step .label{font-size:13px;font-weight:600}.import-step.todo .label{color:var(--ink-faint)}.import-step-line{background:var(--border);flex:1;height:1px;margin:0 16px}.tpl-card{align-items:center;gap:16px;margin-bottom:20px;padding:18px 20px;display:flex}.tpl-card .ico{border-radius:var(--r-md);background:var(--accent-soft);width:44px;height:44px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:flex}.tpl-card h4{margin:0 0 3px;font-size:14.5px;font-weight:700}.tpl-card p{color:var(--ink-muted);margin:0;font-size:12.5px}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--r-lg);text-align:center;background:var(--surface);flex-direction:column;align-items:center;gap:14px;padding:56px 24px;display:flex}.dropzone.drag-over{border-color:var(--accent);background:var(--accent-soft)}.dropzone .ico{background:var(--surface-2);width:56px;height:56px;color:var(--ink-faint);border-radius:50%;justify-content:center;align-items:center;display:flex}.dropzone h3{margin:0;font-size:16px;font-weight:700}.dropzone p{color:var(--ink-muted);margin:0;font-size:13px}.dropzone .fmt{color:var(--ink-faint);font-size:12px}.pcard,.scard,.fcard{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 40px;display:flex}.pcard{padding:56px 40px}.pcard h3{margin:0;font-size:17px;font-weight:700}.pcard p{color:var(--ink-muted);margin:0;font-size:13px}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.fname{color:var(--ink-muted);background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;display:inline-flex}.pbar{background:var(--surface-2);border-radius:3px;width:280px;max-width:100%;height:6px;margin-top:4px;overflow:hidden}.scard .ico{background:var(--success-soft);width:64px;height:64px;color:var(--success);border-radius:50%;justify-content:center;align-items:center;margin-bottom:6px;display:flex}.scard h2{margin:0;font-size:20px;font-weight:700}.scard p{color:var(--ink-muted);margin:0;font-size:13.5px}.breakdown{background:var(--surface-2);border-radius:var(--r-md);gap:28px;margin:18px 0;padding:16px 28px;display:flex}.breakdown div{text-align:center}.breakdown .n{font-family:var(--font-mono);font-size:20px;font-weight:700}.breakdown .l{color:var(--ink-muted);margin-top:2px;font-size:11.5px}.skip-note{background:var(--warning-soft);border-radius:var(--r-md);color:var(--ink);text-align:left;align-items:center;gap:9px;margin-top:6px;padding:11px 16px;font-size:12.5px;display:flex}.skip-note .icon{color:var(--warning);flex:none;width:15px;height:15px}.fcard .ico{background:var(--danger-soft);width:64px;height:64px;color:var(--danger);border-radius:50%;justify-content:center;align-items:center;margin-bottom:6px;display:flex}.fcard h2{margin:0;font-size:20px;font-weight:700}.fcard p{color:var(--ink-muted);max-width:44ch;margin:0;font-size:13.5px}.safe-note{background:var(--surface-2);border-radius:var(--r-md);color:var(--ink);text-align:left;align-items:center;gap:9px;margin-top:14px;padding:11px 16px;font-size:12.5px;display:flex}.safe-note .icon{color:var(--ink-muted);flex:none;width:15px;height:15px}.import-step.failed .circle{background:var(--danger);color:#fff}.import-step.failed .label{color:var(--danger)}.result-row{flex-wrap:wrap;gap:16px;margin-bottom:20px;display:flex}.rstat{border-radius:var(--r-lg);flex:1;align-items:center;gap:14px;min-width:220px;padding:18px 22px;display:flex}.rstat.ok{background:var(--success-soft);border:1px solid var(--success-soft-border)}.rstat.bad{background:var(--danger-soft);border:1px solid var(--danger-soft-border)}.rstat .ico{border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.rstat.ok .ico{background:var(--success);color:#fff}.rstat.bad .ico{background:var(--danger);color:#fff}.rstat .n{font-family:var(--font-mono);font-size:26px;font-weight:700;line-height:1}.rstat.ok .n{color:var(--success)}.rstat.bad .n{color:var(--danger)}.rstat .lbl{color:var(--ink-muted);margin-top:3px;font-size:12.5px}.panel{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);margin-bottom:22px}.panel-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.panel-head h3{font-size:14.5px;font-weight:700}table.err{border-collapse:collapse;width:100%;font-size:13px}table.err th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);background:var(--surface-2);border-bottom:1px solid var(--border);padding:9px 18px;font-size:11px;font-weight:600}table.err td{border-bottom:1px solid var(--border);padding:10px 18px}table.err tr:last-child td{border-bottom:none}.rowbadge{font-family:var(--font-mono);color:var(--danger);font-size:12px;font-weight:700}.more-note{color:var(--ink-muted);border-top:1px solid var(--border);background:var(--surface-2);padding:12px 18px;font-size:12.5px}.actions-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.scanbar{margin-bottom:18px;position:relative}.scanbar input{border-radius:var(--r-md);border:1.5px solid var(--accent);background:var(--accent-soft);width:100%;height:52px;color:var(--ink);font-family:var(--font-ui);padding:0 50px 0 46px;font-size:15px;box-shadow:0 0 0 3px #9c4e1f1f}.scanbar .ico{color:var(--accent);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.scanbar .ico .icon{width:20px;height:20px}.progress-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.progress-row .txt{color:var(--ink-muted);font-size:13px;font-weight:600}.pbar{background:var(--surface-2);border-radius:4px;width:220px;max-width:50%;height:7px;overflow:hidden}.pbar>div{background:var(--success);border-radius:4px;height:100%;transition:width .2s}.plist{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);margin-bottom:20px;overflow:hidden}.prow{border-bottom:1px solid var(--border);cursor:pointer;text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;gap:14px;width:100%;padding:14px 18px;display:flex}.prow:last-child{border-bottom:none}.prow.packed{background:var(--success-soft)}.prow .chk{border:1.5px solid var(--border-strong);color:#0000;border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.prow.packed .chk{background:var(--success);border-color:var(--success);color:#fff}.prow .thumb{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);width:38px;height:38px;color:var(--ink-faint);flex:none;justify-content:center;align-items:center;display:flex}.prow .name{font-size:13.5px;font-weight:600}.prow .meta{color:var(--ink-faint);margin-top:1px;font-size:11.5px}.prow .qty{font-family:var(--font-mono);flex:none;margin-left:auto;font-size:14px;font-weight:700}.btn-disabled{background:var(--surface-2);color:var(--ink-faint);cursor:not-allowed}.return-banner{background:var(--danger-soft);border:1px solid var(--danger-soft-border);border-radius:var(--r-md);align-items:flex-start;gap:11px;margin-bottom:20px;padding:13px 16px;display:flex}.return-banner .icon{color:var(--danger);flex:none;width:16px;height:16px;margin-top:1px}.return-banner .t1{color:var(--danger);font-size:13px;font-weight:700}.return-banner .t2{color:var(--ink-muted);margin-top:2px;font-size:12.5px}.step-time{color:var(--ink-faint);font-size:10px;font-family:var(--font-mono);margin-top:1px}.panel-body{padding:16px 18px}.lifecycle{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);align-items:center;margin-bottom:26px;padding:18px 24px;display:flex;overflow-x:auto}.lstep{flex-direction:column;flex:1;align-items:center;gap:6px;min-width:72px;display:flex;position:relative}.lstep .dot{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.lstep.done .dot{background:var(--success);color:#fff}.lstep.active .dot{background:var(--accent);color:#fff}.lstep.todo .dot{background:var(--surface-2);color:var(--ink-faint);border:1px solid var(--border)}.lstep .lbl{color:var(--ink-muted);white-space:nowrap;font-size:11.5px;font-weight:600}.lstep.active .lbl{color:var(--accent)}.lstep.todo .lbl{color:var(--ink-faint)}.lstep .lline{background:var(--border);z-index:-1;width:100%;height:1px;position:absolute;top:12px;left:50%}.lstep.done .lline{background:var(--success)}.lstep.cancelled .dot{background:var(--danger);color:#fff}.lstep.cancelled .lbl{color:var(--danger)}table.items{border-collapse:collapse;width:100%;font-size:13px}table.items th{text-align:left;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--border);background:var(--surface-2);padding:9px 18px;font-size:11px;font-weight:600}table.items th.num,table.items td.num{text-align:right}table.items td{border-bottom:1px solid var(--border);padding:12px 18px}table.items tr:last-child td{border-bottom:none}.kv{justify-content:space-between;padding:8px 0;font-size:13px;display:flex}.kv .k{color:var(--ink-muted)}.kv .v{font-weight:600}.total-row{border-top:1px solid var(--border);justify-content:space-between;margin-top:6px;padding-top:12px;font-size:15px;font-weight:700;display:flex}.stat-panel{color:var(--ink-faint);align-items:center;gap:8px;font-size:12px;display:flex}@media (width<=1024px){.sidebar{display:none}.content{padding:20px}.kv-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.app-shell{flex-direction:column}.search{display:none}.kv-grid{grid-template-columns:1fr}.content{padding:16px}}
