: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(3,1fr);gap:16px;margin-bottom:22px;display:grid}.dashboard .stat-card{box-sizing:border-box;border-radius:var(--radius);color:#fff;width:100%;height:132px;min-height:132px;box-shadow:var(--shadow);text-align:left;cursor:pointer;font:inherit;border:none;flex-direction:column;align-items:stretch;gap:16px;padding:14px 16px 16px;display:flex}.dashboard .stat-card:hover{filter:brightness(1.06)}.dashboard .stat-card.static{cursor:default}.dashboard .stat-card.static:hover{filter:none}.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-hint{opacity:.72;align-self:flex-end;font-size:12px;font-weight:400;line-height:1.2}.dashboard .stat-main{align-items:center;gap:12px;height:64px;min-height:64px;margin-top:auto;display:flex}.dashboard .stat-body{flex-direction:column;justify-content:center;gap:2px;display:flex}.dashboard .stat-icon{align-self:center;font-size:30px;line-height:1}.dashboard .stat-value{font-size:22px;font-weight:700}.dashboard .stat-label{opacity:.9;font-size:13px}.dashboard .stat-pay-slot{flex:1;justify-content:center;align-items:center;min-width:0;display:flex}.dashboard .stat-pays{box-sizing:border-box;font-variant-numeric:tabular-nums;background:#ffffff29;border-radius:10px;flex-shrink:0;grid-template-columns:auto auto;align-items:baseline;gap:6px 12px;padding:8px 12px;font-size:12px;line-height:1;display:grid}.dashboard .stat-pays i,.dashboard .stat-pays b{white-space:nowrap}.dashboard .stat-pays i{opacity:.8;font-style:normal;font-weight:500}.dashboard .stat-pays b{text-align:right;font-weight:700}.dashboard .stat-note{white-space:nowrap;opacity:.9;align-self:center;align-items:center;height:auto;margin-left:0;font-size:13px;line-height:1;display:flex}.dashboard .module-stack{flex-direction:column;gap:12px;display:flex}.dashboard .module-card{border:1px solid var(--border);background:var(--bg);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:18px;display:flex}.dashboard .module-card strong{font-size:18px}.dashboard .module-card span:last-child{color:var(--muted);font-size:13px}.dashboard .module-card.warn{background:#ef444414;border-color:#ef444459}.dashboard .module-kicker{color:var(--primary);font-size:13px;font-weight:700}.dashboard .module-card.warn .module-kicker{color:var(--danger)}.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:8px}.dashboard .bar-button,.dashboard .alert-button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px}.dashboard .bar-button:hover,.dashboard .alert-button:hover{background:var(--bg)}.dashboard .alert-button{justify-content:space-between;gap:12px;display:flex}.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-panel{width:100%;color:inherit;font:inherit;text-align:left;border:none;display:block;position:relative}.dashboard .alert-panel:is(button){cursor:pointer}.dashboard .alert-panel:is(button):hover{background:#f8fafc}.dashboard .alert-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.dashboard .alert-head .card-title{margin-bottom:14px}.dashboard .detail-hint{color:var(--muted);opacity:.55;margin-bottom:14px;font-size:12px;font-weight:400}.dashboard .alert-panel .empty,.dashboard .rank-panel .empty{padding:12px 0 0}.dashboard .rank-row{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;margin-bottom:22px;display:grid}.dashboard .rank-panel{width:100%;color:inherit;font:inherit;text-align:left;border:none;display:block;position:relative}.dashboard .rank-panel:is(button){cursor:pointer}.dashboard .rank-panel:is(button):hover{background:#f8fafc}.dashboard .rank-panel .card-title{color:#4a453f;font-size:17px;font-weight:600}.dashboard .rank-panel .empty{text-align:left;color:#9a938c;padding:4px 0 0}.dashboard .rank-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.dashboard .rank-list li{grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:40px;padding:0 4px 0 0;display:grid}.dashboard .rank-index{color:#8a837b;background:#f4f1ec;border-radius:8px;place-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:grid}.dashboard .rank-panel.hot .rank-list li:first-child .rank-index{color:#8a5a16;background:#f3e6c8}.dashboard .rank-name{text-overflow:ellipsis;white-space:nowrap;color:#5c564f;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.dashboard .rank-tag{color:#7a736b;white-space:nowrap;background:#f6f3ee;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:500}.dashboard .rank-tag.hot{color:#8a7352;background:#f6f1e6}.dashboard .rank-tag.none{color:#9a6a64;background:#f7efed}.dashboard .rank-tag.few{color:#9a7a52;background:#f7f2e8}.dashboard .rank-tag.slow{color:#7b828c;background:#f1f2f4}.dashboard .alert-list li{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.dashboard .alert-list li:last-child{border-bottom:none;padding-bottom:0}.dashboard .alert-main{flex:1;min-width:0}.dashboard .alert-name{font-size:15px;font-weight:600}.dashboard .alert-track{background:#f3f4f6;border-radius:99px;height:6px;margin-top:8px;overflow:hidden}.dashboard .alert-track div{background:#f59e0b;border-radius:99px;height:100%}.dashboard .alert-figures{flex-shrink:0;gap:8px;display:flex}.dashboard .figure{text-align:center;background:#f8fafc;border-radius:12px;min-width:68px;padding:8px 10px}.dashboard .figure b{font-size:18px;line-height:1.1;display:block}.dashboard .figure b small{margin-left:2px;font-size:12px;font-weight:500}.dashboard .figure span{color:var(--muted);margin-top:4px;font-size:11px;display:block}.dashboard .figure.low{background:#ef444414}.dashboard .figure.low b{color:var(--danger)}@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 .dashboard-grid,.dashboard .rank-row{grid-template-columns:1fr}}@media (width<=380px){.dashboard .stat-card{gap:8px;padding:14px}.dashboard .stat-value{font-size:18px}}@media (prefers-color-scheme:dark){.dashboard .card{background:#1e293b}.dashboard .alert-panel:is(button):hover,.dashboard .rank-panel:is(button):hover{background:#243044}.dashboard .figure,.dashboard .alert-track{background:#0f172a}.dashboard .rank-panel .card-title,.dashboard .rank-name{color:#e7e1d8}.dashboard .rank-index,.dashboard .rank-tag{color:#e7e1d8;background:#334155}}.goods-entry{width:100%}.scan-capture{opacity:0;width:1px;height:1px;position:fixed;top:0;left:0}.scan-station{background:linear-gradient(135deg,#312e81 0%,#4f46e5 58%,#6366f1 100%);border:none;border-radius:18px;justify-content:space-between;align-items:flex-end;gap:28px;width:100%;margin-bottom:18px;padding:22px 24px;display:flex;box-shadow:0 10px 28px #4f46e547}.scan-station .scan-copy{color:#fff;flex:none;align-items:center;gap:14px;display:flex}.scan-station .scan-copy h3{letter-spacing:-.03em;color:#fff;margin:0;font-size:22px}.scan-mark{color:#fff;background:#ffffff29;border-radius:14px;flex:0 0 52px;place-items:center;width:52px;height:52px;display:grid}.scan-mark svg{display:block}.scan-manual{flex:1;min-width:0}.scan-manual label{color:#ffffffd1;margin:0;font-size:13px}.scan-manual-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.scan-hint{color:#ffffffeb;white-space:nowrap;background:#ffffff29;border-radius:999px;align-items:center;padding:4px 10px;font-size:13px;font-weight:500;line-height:1.2;display:inline-flex}.scan-manual-row{align-items:center;gap:10px;display:flex}.scan-manual-row input{min-width:0;height:52px;color:var(--text);letter-spacing:.04em;background:#fff;border:none;border-radius:14px;outline:none;flex:1;padding:0 16px;font-size:18px}.scan-manual-row input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft);background:#fff}.scan-manual-row .btn{white-space:nowrap;height:52px}.scan-manual-row .scan-query{color:#4338ca;background:#fff;border-color:#fff;font-weight:600}.scan-manual-row .scan-query:hover{background:#eef2ff}.scan-manual-row .scan-query:disabled{opacity:.55}.scan-manual-row .scan-print{color:#fff;background:0 0;border-color:#ffffff73}.scan-manual-row .scan-print:hover{background:#ffffff1f}.goods-form-card{box-shadow:var(--shadow);background:#fff;border-top:3px solid #4f46e5;border-radius:18px;width:100%;padding:16px 18px}.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}}.entry-body{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:start;gap:28px;display:grid}.entry-side{background:#eef2ff;border-radius:16px;padding:16px}.entry-side .card-title{color:#312e81}.entry-side .barcode-label{width:100%;margin-bottom:12px}.entry-side .btn{background:#fff}.goods-form .field{flex:1;margin-bottom:10px}.goods-form .field .tf-select{width:100%}.goods-form .field label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.goods-form .field input:not(.ant-select-input){border:1px solid var(--border);appearance:none;width:100%;color:var(--text);background:#f8fafc;border-radius:10px;outline:none;padding:10px 12px;font-size:16px;transition:border-color .2s,box-shadow .2s}.goods-form .field input:not(.ant-select-input):focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);background:#fff}.goods-form .field input:not(.ant-select-input)[readonly]{color:#312e81;background:#eef2ff;font-weight:600}.goods-form .field-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;display:grid}.goods-form .form-actions{gap:10px;margin-top:4px;display:flex}.barcode-label{background:#fff;border:1px dashed #e6dfd4;border-radius:10px;width:280px;margin-bottom:8px;padding:8px 8px 4px}.barcode-label svg{width:100%;height:auto;display:block}.barcode-label-name{text-align:center;color:#3f3a34;margin:0 0 6px;font-size:14px}.barcode-digits{letter-spacing:.08em;color:var(--muted);margin:0 0 12px;font-family:ui-monospace,monospace}.scan-note{color:var(--muted);margin:0 0 14px;font-size:13px}@media (width<=860px){.scan-station{flex-direction:column;align-items:stretch;gap:16px}.scan-station .scan-copy{flex-basis:auto}.scan-manual-row{flex-wrap:wrap}.scan-manual-row input{flex:100%}.entry-body{grid-template-columns:1fr}}@media print{body *{visibility:hidden}#barcode-label,#barcode-label *{visibility:visible}#barcode-label{border:none;position:absolute;top:12mm;left:12mm}}@media (prefers-color-scheme:dark){.goods-form-card{background:#1e293b}.entry-side{background:#312e81}.entry-side .card-title{color:#e0e7ff}.goods-form .field input:not(.ant-select-input){color:#e2e8f0;background:#0f172a}.scan-manual-row input{color:#1e293b;background:#fff}.barcode-label,.barcode-label-name{color:#111}}.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}.goods-list .toolbar .search{flex:1;min-width:180px}.goods-list .toolbar input:not(.ant-select-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:not(.ant-select-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 .summary-flag.out{color:var(--danger);background:#ef44441f}.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 tbody tr.row-low,.goods-list tbody tr.row-low:nth-child(2n),.goods-list tbody tr.row-low:hover{box-shadow:inset 3px 0 0 var(--warn);background:#fffbeb}.goods-list tbody tr.row-out,.goods-list tbody tr.row-out:nth-child(2n),.goods-list tbody tr.row-out:hover{box-shadow:inset 3px 0 0 var(--danger);background:#fef2f2}.goods-list .cell-name{font-weight:600}.goods-list .cell-name .cell-barcode{color:var(--muted);letter-spacing:.04em;margin-top:2px;font-size:12px;font-weight:400;display:block}.goods-list .muted{color:var(--muted)}.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:not(.ant-select-input){background:#1e293b}.goods-list thead th{background:#172033}.goods-list tbody tr.row-low,.goods-list tbody tr.row-low:nth-child(2n),.goods-list tbody tr.row-low:hover{background:#f59e0b29}.goods-list tbody tr.row-out,.goods-list tbody tr.row-out:nth-child(2n),.goods-list tbody tr.row-out:hover{background:#ef444429}}.inventory-head{align-items:center;gap:16px;margin-bottom:16px;display:flex}.inventory-head h2{margin:0;font-size:20px}.inventory-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.inventory-stats{align-items:stretch;gap:12px;margin-bottom:16px;display:flex}.inventory-counts{flex:1;gap:12px;display:flex}.inventory-counts div{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex:1;padding:16px 18px}.inventory-counts b{color:#3a342e;font-size:22px;display:block}.inventory-counts span{color:var(--muted);font-size:13px}.inventory-value{border-radius:var(--radius);min-width:240px;box-shadow:var(--shadow);text-align:right;background:#f6f1e6;margin-left:auto;padding:16px 22px}.inventory-value span{color:#8a7352;font-size:13px;display:block}.inventory-value b{color:#6d542c;margin-top:4px;font-size:32px;line-height:1.1;display:block}@media (width<=768px){.inventory-stats,.inventory-counts{flex-direction:column}.inventory-value{text-align:left;min-width:0}}@media (prefers-color-scheme:dark){.inventory-counts div{background:#1e293b}.inventory-counts b{color:#f1ebe4}.inventory-value{background:#3a3228}.inventory-value b{color:#f3e6c8}}.restock{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:22px}.restock .empty{text-align:center;color:#9ca3af;padding:48px 0}.restock table{border-collapse:collapse;width:100%}.restock th,.restock td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 10px}.restock .cell-name{white-space:normal;font-weight:600}.restock .tag{background:var(--primary-soft);color:var(--primary);border-radius:20px;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.restock-head{align-items:center;gap:16px;margin-bottom:16px;display:flex}.restock-head h2{margin:0;font-size:20px}.restock-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.restock-summary{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin-bottom:16px;display:flex}.restock-summary b{color:var(--text)}.restock-note{font-size:12px}@media (prefers-color-scheme:dark){.restock{background:#1e293b}}.books-page{flex-direction:column;gap:16px;display:flex}.books{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:22px}.books h3{margin:0 0 14px;font-size:17px}.books .empty{text-align:center;color:#9ca3af;padding:28px 0}.books-head{align-items:center;gap:16px;margin-bottom:16px;display:flex}.books-head h2{margin:0;font-size:20px}.books-ranges{background:var(--bg);border-radius:12px;gap:4px;margin-bottom:8px;padding:4px;display:inline-flex}.books-ranges button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px}.books-ranges button.active{color:var(--text);box-shadow:var(--shadow);background:#fff;font-weight:700}.books-legend{color:var(--muted);gap:16px;margin-bottom:4px;font-size:13px;display:flex}.books-legend span:before{content:"";vertical-align:-1px;border-radius:99px;width:10px;height:10px;margin-right:6px;display:inline-block}.books-legend .revenue:before{background:#059669}.books-legend .profit:before{background:#d97706}.books-chart svg{width:100%;height:auto}.books-chart .grid{stroke:#e8edf3;stroke-width:1px}.books-chart .area{stroke:none}.books-chart .area.revenue{fill:#0596691f}.books-chart .area.profit{fill:#d977061a}.books-chart .line{fill:none;stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.books-chart .line.revenue,.books-chart .dot.revenue,.books-chart .leader.revenue{stroke:#059669}.books-chart .line.profit,.books-chart .dot.profit,.books-chart .leader.profit{stroke:#d97706}.books-chart .leader{stroke-width:1px;opacity:.45}.books-chart .dot{fill:#fff;stroke-width:1.5px}.books-chart .pill.revenue{fill:#ecfdf5}.books-chart .pill.profit{fill:#fff7ed}.books-chart .point-label{fill:#64748b;font-size:9px}.books-chart .point-value{font-size:8px;font-weight:700}.books-chart .point-value.revenue{fill:#047857}.books-chart .point-value.profit{fill:#b45309}.sale-list{scroll-margin-top:12px}.sale-page-note{color:#8d8680;margin:0 0 8px;font-size:13px}.sale-columns,.sale-line{grid-template-columns:minmax(0,1.6fr) 72px 110px 110px;align-items:center;gap:8px;display:grid}.sale-columns{z-index:3;color:#8d8680;background:#f7f4ee;padding:8px 14px;font-size:12px;font-weight:600;position:sticky;top:0}.sale-columns span:not(:first-child){text-align:right}.sale-order{background:#fbf8f3;border:1px solid #e6dfd4;border-radius:12px;margin-bottom:14px}.sale-order-when{align-items:center;gap:8px;display:inline-flex}.sale-pay{color:#4338ca;background:#4f46e51f;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}.sale-order-time{z-index:2;color:#3a342e;background:#efe6d6;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:15px;font-weight:700;display:flex;position:sticky;top:34px}.sale-order-sum{flex-wrap:wrap;justify-content:flex-end;gap:8px 16px;font-size:13px;font-weight:600;display:flex}.sale-order-sum .up{color:#2f6b4f}.sale-order-sum .down{color:#9b4d42}.sale-line{border-top:1px solid #3a342e0f;padding:10px 14px}.sale-line span:not(:first-child){text-align:right}.sale-pager{color:#8d8680;justify-content:flex-end;align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.sale-pager button{background:var(--bg);font:inherit;cursor:pointer;border:none;border-radius:8px;padding:6px 12px}.sale-pager button:disabled{opacity:.4;cursor:default}.books-totals{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.books-totals div{background:var(--bg);border-radius:14px;padding:14px 16px}.books-totals b{font-size:22px;display:block}.books-totals span{color:var(--muted);font-size:13px}.books-totals .books-split{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:8px;font-size:12px;line-height:1.3;display:flex}.books-totals .books-split i{opacity:.35;background:currentColor;width:1px;height:10px}.calendar{max-width:360px}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.calendar-nav button{background:var(--bg);cursor:pointer;border:none;border-radius:8px;width:32px;height:32px;font-size:18px}.calendar-weekdays,.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekdays{color:var(--muted);margin-bottom:4px;font-size:12px}.calendar-grid button{height:36px;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px}.calendar-grid button.outside,.calendar-grid button.future,.calendar-grid button:disabled{color:#cbd5e1;cursor:not-allowed}.calendar-grid button.selected{background:#eef2ff}.calendar-grid button.edge{background:var(--primary);color:#fff}.sale-name{color:#3a342e;font-weight:600}.sale-line .up{color:#2f6b4f;font-weight:700}.sale-line .down{color:#9b4d42;font-weight:700}@media (width<=768px){.books-totals{grid-template-columns:1fr}}@media (prefers-color-scheme:dark){.books,.books-ranges button.active{background:#1e293b}.books-chart .grid{stroke:#334155}.books-chart .dot{fill:#1e293b}.books-chart .pill.revenue{fill:#064e3b}.books-chart .pill.profit{fill:#7c2d12}.books-chart .point-value.revenue{fill:#a7f3d0}.books-chart .point-value.profit{fill:#fde68a}.calendar-grid button.selected{background:#312e81}.sale-columns{background:#243044}.sale-order{background:#1e293b;border-color:#334155}.sale-order-time{color:#f8fafc;background:#334155}.sale-pay{color:#c7d2fe;background:#c7d2fe29}.sale-order-sum .up{color:#86efac}.sale-order-sum .down{color:#fca5a5}.sale-name{color:#e2e8f0}}.ranks{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:22px}.ranks .empty{text-align:center;color:#9ca3af;padding:48px 0}.ranks table{border-collapse:collapse;width:100%}.ranks th,.ranks td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 10px}.ranks .cell-name{white-space:normal;font-weight:600}.ranks .tag{background:var(--primary-soft);color:var(--primary);border-radius:20px;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.ranks-head{align-items:center;gap:16px;margin-bottom:8px;display:flex}.ranks-head h2{margin:0;font-size:20px}.ranks-sort{gap:8px;margin:-8px 0 16px;display:flex}.ranks-sort button{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:4px 12px;font-size:13px}.ranks-sort button.active{background:var(--primary-soft);color:var(--primary);border-color:#0000;font-weight:600}.ranks-note,.ranks-summary{color:var(--muted);margin:0 0 16px;font-size:13px}.ranks-note b,.ranks-summary b{color:var(--text)}.table-wrap{overflow-x:auto}.hot-board{flex-direction:column;gap:10px;margin:8px 0 0;padding:0;list-style:none;display:flex}.hot-board li{background:#f8fafc;border-radius:14px;grid-template-columns:56px minmax(96px,1.3fr) repeat(5,minmax(72px,1fr));align-items:center;gap:8px 12px;padding:12px 14px;display:grid}.hot-board .place-1{background:#fffaf0}.hot-board .place-2{background:#f7f8fa}.hot-board .place-3{background:#fbf6f1}.hot-board .place-rest{background:#f7f8fa}.medal{--seal:#f0a020;--disc:#ffc83d;--inner:#f0b429;--ink:#8a5a00;--ribbon:#f15a24;--ribbon-deep:#e04a18;aspect-ratio:80/70;flex-shrink:0;width:48px;height:auto;display:block;position:relative}.metal-silver{--seal:#8b9aab;--disc:#e7eef5;--inner:#c5d0dc;--ink:#243044;--ribbon:#7d8fa3;--ribbon-deep:#627488}.metal-bronze{--seal:#d4894a;--disc:#f0b27a;--inner:#e09a55;--ink:#6b3412;--ribbon:#d06a32;--ribbon-deep:#b55222}.medal svg{width:100%;height:auto;display:block}.medal-seal{fill:var(--seal)}.medal-tail{fill:var(--ribbon)}.medal-tail-deep{fill:var(--ribbon-deep)}.medal-disc{fill:var(--disc)}.medal-ring{fill:none;stroke:#fff;stroke-width:2.4px}.medal-inner{fill:none;stroke:var(--inner);stroke-width:1.15px}.medal-num{color:var(--ink);font-variant-numeric:tabular-nums;font-size:13px;font-weight:800;line-height:1;position:absolute;top:48.6%;left:50%;transform:translate(-50%,-50%)}.rank-plain{color:#6b7280;font-variant-numeric:tabular-nums;background:#e8eaed;border-radius:50%;place-items:center;width:28px;height:28px;margin-left:8px;font-size:13px;font-weight:600;display:grid}.place-main{flex:1;min-width:0}.place-main strong{color:#2c2825;font-size:16px}.place-main p{color:var(--muted);margin:6px 0 0;font-size:13px}.place-main .place-prices{flex-wrap:wrap;gap:6px 14px;display:flex}.place-main .profit{color:#047857;font-weight:700}.stat{text-align:right}.stat span{color:#8d8680;font-size:12px;display:block}.stat b{color:#3a342e;margin-top:2px;font-size:16px;line-height:1.2;display:block}.stat b small{margin-left:2px;font-size:12px;font-weight:600}.stat.total.up b{color:#2f6b4f}.stat.total.down b{color:#9b4d42}@media (width<=768px){.hot-board li{grid-template-columns:56px 1fr 1fr}.place-main{grid-column:2/-1}}@media (prefers-color-scheme:dark){.ranks{background:#1e293b}.hot-board .place-1{background:#b8860b24}.hot-board .place-2{background:#ffffff0f}.hot-board .place-3{background:#a85c2c29}.hot-board .place-rest{background:#172033}.hot-board .place-rest .place-main strong,.hot-board .place-rest .stat b,.hot-board .place-rest .stat span{color:#e2e8f0}}.dialog-root{z-index:80;background:#0f172a75;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog-panel{background:#fff;border-radius:20px;width:min(420px,100%);padding:22px 22px 20px;position:relative;box-shadow:0 24px 60px #0f172a38}.dialog-panel h3{letter-spacing:-.02em;text-align:center;margin:0;padding:8px 40px 0;font-size:18px;font-weight:700}.dialog-close{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:10px;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:14px;left:14px}.dialog-close:hover{color:#0f172a;background:#e2e8f0}.dialog-desc{color:var(--muted);text-align:center;margin:8px 0 0;font-size:14px;line-height:1.5}.dialog-actions{gap:10px;margin-top:18px;display:grid}.dialog-action{color:#fff;cursor:pointer;border:none;border-radius:14px;min-height:64px;font-size:16px;font-weight:700;box-shadow:0 8px 18px #0f172a1f}.dialog-action:hover:not(:disabled){filter:brightness(1.06)}.dialog-action:disabled{opacity:.6;cursor:default}.tone-primary,.tone-card{background:var(--primary)}.tone-cash{background:#059669}.tone-danger{background:var(--danger)}.kind-checkout .dialog-panel{width:min(440px,100%);padding-bottom:22px}.kind-checkout .dialog-desc strong{color:#0f172a;letter-spacing:-.03em;font-size:32px;font-weight:700;line-height:1.1;display:block}.kind-checkout .dialog-desc span{margin-top:4px;display:block}.kind-checkout .dialog-actions{grid-template-columns:1fr 1fr;margin-top:22px}.kind-alert h3{color:var(--danger)}@media (prefers-color-scheme:dark){.dialog-panel{color:#f8fafc;background:#1e293b}.dialog-close{color:#e2e8f0;background:#334155}.dialog-close:hover{color:#fff;background:#475569}.kind-checkout .dialog-desc strong{color:#f8fafc}}.checkout-scan-capture{opacity:0;width:1px;height:1px;position:fixed;top:0;left:0}.checkout{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:22px}.checkout .empty{text-align:center;color:#9ca3af;padding:48px 0}.checkout-search{margin-bottom:16px;position:relative}.checkout-search label{margin-bottom:8px;font-size:14px;font-weight:600;display:block}.checkout-search input{border:1px solid var(--border);border-radius:10px;outline:none;width:100%;padding:12px 14px;font-size:16px}.checkout-search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.checkout-matches{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:12px;margin:8px 0 0;padding:6px;list-style:none}.checkout-matches button{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;display:flex}.checkout-matches button:hover:not(:disabled){background:var(--primary-soft)}.checkout-matches button:disabled{color:var(--muted);cursor:not-allowed}.checkout-matches button span:first-child{flex-direction:column;gap:2px;display:flex}.checkout-matches button span:first-child small{color:var(--muted);letter-spacing:.04em;font-size:12px}.checkout-matches button span:last-child{color:var(--muted);font-size:13px}.checkout-matches .checkout-empty{color:var(--muted);text-align:center;padding:12px}.checkout-table{overflow-x:auto}.checkout-table table{border-collapse:collapse;width:100%}.checkout-table th,.checkout-table td{text-align:left;border-bottom:1px solid var(--border);padding:12px 10px}.checkout-table .cell-name{font-weight:600}.link{color:var(--primary);cursor:pointer;background:0 0;border:none}.link.danger{color:var(--danger)}.qty{align-items:center;gap:8px;display:inline-flex}.qty button{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;width:28px;height:28px}.checkout-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.checkout-bar span{color:var(--muted);margin-right:12px}.checkout-bar strong{color:var(--primary);font-size:22px}.checkout-actions{gap:8px;display:flex}@media (prefers-color-scheme:dark){.checkout,.checkout-matches{background:#1e293b}.checkout-search input,.qty button{color:var(--text);background:#1e293b}}: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}}
