:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{box-sizing:border-box;width:100%;min-height:100svh}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.toast-viewport{top:calc(16px + env(safe-area-inset-top));z-index:9999;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;left:16px;right:16px}.toast{pointer-events:auto;width:min(420px,100%);box-shadow:var(--shadow);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;font-size:14px;line-height:1.4;animation:.2s toast-in;display:flex}.toast.error{color:var(--danger);background:#fff1f2;border:1px solid #fecdd3}.toast.success{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.toast-close{color:inherit;opacity:.7;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-size:12px}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme:dark){.toast.error{background:#3f1d1d}.toast.success{background:#12372a}}.login-page{justify-content:center;align-items:center;min-height:100svh;padding:24px 16px;display:flex}.login-card{border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow);background:#fff;padding:32px 28px 28px}.login-brand{text-align:center;margin-bottom:24px}.login-brand .brand-icon{margin-bottom:8px;font-size:36px;display:inline-flex}.login-brand h1{margin:0;font-size:22px}.login-brand p{color:var(--muted);margin:8px 0 0;font-size:13px}.login-error{color:var(--danger);background:#fef2f2;border-radius:10px;margin-bottom:14px;padding:10px 12px;font-size:13px}.login-field{color:var(--muted);margin-bottom:14px;font-size:13px;display:block}.login-field input{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:10px;outline:none;margin-top:6px;padding:11px 12px;font-size:16px}.login-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.login-password{display:block;position:relative}.login-password input{padding-right:64px}.login-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-top:3px;padding:6px;font-size:13px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.login-submit{width:100%;margin-top:8px;padding:12px;font-size:15px}.login-submit:disabled{opacity:.7;cursor:not-allowed}.login-hint{color:var(--muted);margin-top:6px;font-size:12px;display:block}.login-switch{text-align:center;color:var(--muted);margin:16px 0 0;font-size:13px}.login-switch button{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:13px}@media (prefers-color-scheme:dark){.login-card{background:#1e293b}.login-field input{background:#0f172a}.login-error{background:#3f1d1d}}.dashboard .stat-cards{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px;display:grid}.dashboard .stat-card{border-radius:var(--radius);color:#fff;box-shadow:var(--shadow);align-items:center;gap:14px;padding:20px;display:flex}.dashboard .stat-card.blue{background:linear-gradient(135deg,#4f46e5,#6366f1)}.dashboard .stat-card.green{background:linear-gradient(135deg,#059669,#10b981)}.dashboard .stat-card.gold{background:linear-gradient(135deg,#d97706,#f59e0b)}.dashboard .stat-card.red{background:linear-gradient(135deg,#dc2626,#ef4444)}.dashboard .stat-icon{font-size:30px}.dashboard .stat-value{font-size:22px;font-weight:700}.dashboard .stat-label{opacity:.9;font-size:13px}.dashboard .dashboard-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.dashboard .card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:22px}.dashboard .card-title{align-items:center;gap:8px;margin:0 0 18px;font-size:17px;display:flex}.dashboard .empty{text-align:center;color:#9ca3af;padding:48px 0}.dashboard .bar-list,.dashboard .alert-list{margin:0;padding:0;list-style:none}.dashboard .bar-list li{margin-bottom:14px}.dashboard .bar-head{justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.dashboard .bar-count{color:var(--muted)}.dashboard .bar-track{background:var(--bg);border-radius:4px;height:8px;overflow:hidden}.dashboard .bar-fill{background:linear-gradient(90deg,#6366f1,#a855f7);border-radius:4px;height:100%;transition:width .4s}.dashboard .alert-list li{border-bottom:1px dashed var(--border);justify-content:space-between;padding:10px 0;font-size:14px;display:flex}.dashboard .alert-list li:last-child{border-bottom:none}.dashboard .alert-stock{color:var(--danger);font-weight:600}@media (width>=1440px){.dashboard .stat-cards{gap:20px}.dashboard .stat-value{font-size:26px}.dashboard .card{padding:26px}}@media (width<=1024px) and (width>=769px){.dashboard .dashboard-grid{gap:14px}}@media (width<=768px){.dashboard .stat-cards{grid-template-columns:repeat(2,1fr)}.dashboard .dashboard-grid{grid-template-columns:1fr}}@media (width<=380px){.dashboard .stat-cards{grid-template-columns:1fr}}@media (prefers-color-scheme:dark){.dashboard .card{background:#1e293b}}.select{width:100%;position:relative}.select.open{z-index:40}.select.open .select-trigger{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.select.open .select-chevron{color:var(--primary);transform:rotate(180deg)}.select-trigger{border:1px solid var(--border);width:100%;min-height:44px;color:var(--text);cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px 8px 14px;font-size:16px;line-height:1.3;transition:border-color .2s,box-shadow .2s,background .2s;display:flex}.select-trigger:hover{background:#fafbff;border-color:#c7d2fe}.select-trigger:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.select-value{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.select-icon{background:var(--primary-soft);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex}.select-chevron{color:var(--muted);flex-shrink:0;transition:transform .2s}.select-menu{z-index:30;border:1px solid var(--border);background:#fff;border-radius:12px;max-height:360px;margin:0;padding:6px;list-style:none;animation:.16s select-in;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #0f172a1f,0 2px 6px #0f172a0f}.select-option{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;transition:background .15s,color .15s;display:flex}.select-option.active,.select-option:hover{background:#f8fafc}.select-option.selected{background:var(--primary-soft);color:var(--primary);font-weight:600}.select-option-label{flex:1;min-width:0}.select-check{color:var(--primary);flex-shrink:0}@keyframes select-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-color-scheme:dark){.select-trigger,.select-menu{background:#1e293b}.select-trigger:hover,.select-option.active,.select-option:hover{background:#243044}}.goods-form-card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;max-width:640px;padding:22px}.goods-form-card .card-title{align-items:center;gap:8px;margin:0 0 18px;font-size:17px;display:flex}@media (width>=1440px){.goods-form-card{padding:26px}}@media (width>=1920px){.goods-form-card{max-width:760px}}.goods-form .field{flex:1;margin-bottom:16px}.goods-form .field label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.goods-form .field input{border:1px solid var(--border);appearance:none;width:100%;color:var(--text);background:#fff;border-radius:10px;outline:none;padding:10px 12px;font-size:16px;transition:border-color .2s,box-shadow .2s}.goods-form .field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.goods-form .field-row{gap:14px;display:flex;position:relative}.goods-form .field-row:has(.select.open){z-index:20}.goods-form .form-actions{gap:10px;margin-top:8px;display:flex}@media (prefers-color-scheme:dark){.goods-form-card,.goods-form .field input{background:#1e293b}}.goods-list{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:22px}.goods-list .empty{text-align:center;color:#9ca3af;padding:48px 0}.goods-list .toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex;position:relative}.goods-list .toolbar:has(.select.open){z-index:20}.goods-list .toolbar .search{flex:1;min-width:180px}.goods-list .toolbar input{border:1px solid var(--border);appearance:none;width:100%;color:var(--text);background:#fff;border-radius:10px;outline:none;padding:10px 12px;font-size:16px;transition:border-color .2s,box-shadow .2s}.goods-list .toolbar input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.goods-list .toolbar .toolbar-select{flex:none;width:auto;min-width:168px}.goods-list .check{color:var(--muted);white-space:nowrap;cursor:pointer;border:1px solid var(--border);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:10px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;transition:all .2s;display:flex}.goods-list .check:hover{border-color:var(--warn);color:var(--text)}.goods-list .check input{opacity:0;width:0;height:0;position:absolute}.goods-list .check .check-box{border:1.5px solid var(--border);border-radius:5px;justify-content:center;align-items:center;width:16px;height:16px;transition:all .2s;display:inline-flex}.goods-list .check.checked{background:var(--warn);border-color:var(--warn);color:#fff;font-weight:600;box-shadow:0 2px 8px #f59e0b59}.goods-list .check.checked .check-box{background:#fff;border-color:#fff}.goods-list .check.checked .check-box:after{content:"✓";color:var(--warn);font-size:12px;font-weight:700;line-height:1}.goods-list .check input:focus-visible+.check-box{outline:2px solid var(--primary);outline-offset:2px}.goods-list .summary{color:var(--muted);margin-bottom:12px;font-size:13px}.goods-list .summary b{color:var(--primary)}.goods-list .summary-flag{color:var(--warn);background:#f59e0b1f;border-radius:20px;margin-left:10px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.goods-list .table-wrap{overflow-x:auto}.goods-list table{border-collapse:collapse;width:100%;font-size:14px}.goods-list th,.goods-list td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 10px}.goods-list thead th{color:var(--muted);z-index:1;background:#fafafa;font-weight:600;position:sticky;top:0}.goods-list tbody tr:nth-child(2n){background:#fbfcfe}.goods-list tbody tr:hover{background:var(--primary-soft)}.goods-list .cell-name{font-weight:600}.goods-list .muted{color:var(--muted)}.goods-list .row-low{box-shadow:inset 3px 0 0 var(--warn);background:#fffbeb}.goods-list .row-out{box-shadow:inset 3px 0 0 var(--danger);background:#fef2f2}.goods-list .stock-low{color:var(--warn);font-weight:600}.goods-list .stock-out{color:var(--danger);font-weight:700}.goods-list .tag{background:var(--primary-soft);color:var(--primary);border-radius:20px;padding:3px 10px;font-size:12px;display:inline-block}.goods-list .low-tag{background:var(--warn);color:#fff;border-radius:20px;margin-left:6px;padding:1px 8px;font-size:11px}.goods-list .low-tag.out{background:var(--danger)}.goods-list .ops{white-space:nowrap}.goods-list .link{color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 6px;font-size:13px;transition:background .15s}.goods-list .link:hover{background:var(--primary-soft);text-decoration:none}.goods-list .link.danger{color:var(--danger)}.goods-list .link.danger:hover{background:#fef2f2}.goods-list.filter-alert .toolbar{border-radius:var(--radius);background:#f59e0b0f;margin:-10px -10px 14px;padding:10px}@media (width>=1440px){.goods-list{padding:26px}}@media (width<=768px){.goods-list .toolbar-select{flex:160px;min-width:0}}@media (prefers-color-scheme:dark){.goods-list,.goods-list .toolbar input{background:#1e293b}.goods-list thead th{background:#172033}.goods-list .row-low{background:#3f1d1d}}:root{--primary:#4f46e5;--primary-soft:#eef2ff;--danger:#ef4444;--warn:#f59e0b;--success:#10b981;--border:#e5e7eb;--bg:#f1f5f9;--text:#1e293b;--muted:#64748b;--radius:14px;--shadow:0 1px 3px #0000000f, 0 8px 24px #0000000a;--max-width:1120px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-overflow-scrolling:touch;margin:0;font-family:system-ui,-apple-system,Segoe UI,PingFang SC,sans-serif}.app{width:100%;max-width:var(--max-width);padding:calc(28px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(60px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));margin:0 auto}.app-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.session{align-items:center;gap:8px;display:flex}.session-user{color:var(--muted);font-size:13px}.boot{min-height:100svh;color:var(--muted);justify-content:center;align-items:center;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand-icon{border-radius:var(--radius);background:linear-gradient(135deg,#4f46e5,#7c3aed);padding:10px;font-size:40px}.brand h1{margin:0;font-size:24px}.brand p{color:var(--muted);margin:4px 0 0;font-size:13px}.tabs{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;gap:6px;margin-bottom:22px;padding:6px;display:flex}.tab{color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:12px;font-size:15px;transition:all .2s;display:flex}.tab:hover{background:var(--bg)}.tab.active{background:var(--primary);color:#fff;font-weight:600}.badge{background:var(--danger);color:#fff;text-align:center;border-radius:10px;min-width:20px;height:20px;padding:0 6px;font-size:12px;line-height:20px}.btn{border:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#fff;border-radius:10px;padding:10px 20px;font-size:14px;transition:all .2s}.btn:hover{background:var(--bg)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.ghost{padding:8px 14px;font-size:13px}@media (width>=1440px){:root{--max-width:1360px}}@media (width>=1920px){:root{--max-width:1600px}}@media (width<=768px){.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{flex:1 0 auto;padding:10px 12px;font-size:13px}.brand h1{font-size:20px}.brand-icon{font-size:32px}}@media (prefers-color-scheme:dark){:root{--bg:#0f172a;--text:#e2e8f0;--muted:#94a3b8;--border:#334155;--primary-soft:#1e293b}.tabs{background:#1e293b}.btn{color:var(--text);background:#1e293b}}
