:root{--ink:#17222d;--muted:#66727d;--line:#d7dde2;--surface:#fff;--canvas:#f3f5f6;--green:#087f5b;--green-dark:#06684b;--amber:#b46108;--red:#b42318;--shadow:0 10px 28px rgba(23,34,45,.12)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;font-size:15px;letter-spacing:0}.app-shell{min-height:100vh}.topbar{height:72px;padding:0 28px;background:#17222d;color:#fff;display:flex;align-items:center;justify-content:space-between}.brand{font-size:11px;color:#aeb8c0;margin-bottom:3px}.topbar h1{font-size:20px;margin:0;font-weight:650}.top-actions{display:flex;align-items:center;gap:12px}.mode-badge{background:#fff3d6;color:#8a4b08;padding:5px 9px;border-radius:4px;font-size:12px;font-weight:700}.icon-button{width:38px;height:38px;border:1px solid #53606b;background:transparent;color:#fff;border-radius:4px;font-size:22px;cursor:pointer}.hidden{display:none!important}.login-view{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:24px}.login-panel{width:min(380px,100%);background:#fff;border:1px solid var(--line);padding:30px;box-shadow:var(--shadow);border-radius:6px}.login-mark{width:48px;height:48px;background:var(--green);color:#fff;display:grid;place-items:center;border-radius:4px;font-weight:800;font-size:13px}.login-panel h2{font-size:22px;margin:20px 0}.login-panel label{display:block;color:var(--muted);font-size:13px;margin:14px 0}.login-panel input,.scan-row input,.quantity-field input{width:100%;height:46px;border:1px solid #bfc8cf;border-radius:4px;background:#fff;padding:0 12px;font-size:17px;color:var(--ink);margin-top:6px;outline:none}.login-panel input:focus,.scan-row input:focus,.quantity-field input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(8,127,91,.13)}button{font:inherit;letter-spacing:0}.primary,.confirm-button{border:0;background:var(--green);color:#fff;border-radius:4px;font-weight:700;cursor:pointer}.primary:hover,.confirm-button:hover{background:var(--green-dark)}.full{width:100%;height:48px;margin-top:10px}.status-strip{height:58px;background:#fff;border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;gap:40px}.status-strip div{display:flex;gap:8px;align-items:baseline}.status-strip span{font-size:12px;color:var(--muted)}.status-strip strong{font-size:13px}.workspace{max-width:1180px;margin:0 auto;padding:24px;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px}.scan-section,.stock-section,.history-section{background:#fff;border:1px solid var(--line);border-radius:6px;padding:20px}.scan-section,.stock-section{grid-column:1}.stock-section{margin-top:-8px}.history-section{grid-column:2;grid-row:1 / span 2;min-height:340px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-heading>div{display:flex;align-items:center;gap:9px}.section-heading h2{margin:0;font-size:16px}.step{width:25px;height:25px;display:grid;place-items:center;background:#e6f3ef;color:var(--green);border-radius:4px;font-size:11px;font-weight:800}.text-button{border:0;background:transparent;color:var(--green);cursor:pointer}.scan-row{display:grid;grid-template-columns:1fr 126px;gap:10px}.scan-row input{margin:0;height:48px}.scan-row .primary{height:48px}.field-error{margin:10px 0 0;color:var(--red);font-size:13px}.result-count,.today{font-size:12px;color:var(--muted)}.stock-item{width:100%;min-height:76px;padding:12px;border:1px solid var(--green);background:#f5fbf8;border-radius:4px;display:grid;grid-template-columns:20px 1fr auto;gap:10px;align-items:center;text-align:left;color:var(--ink);cursor:pointer}.radio-dot{width:15px;height:15px;border:4px solid var(--green);border-radius:50%;background:#fff}.stock-main{display:flex;flex-direction:column;gap:5px;min-width:0}.stock-main strong{font-size:16px}.stock-main span{font-size:12px;color:var(--muted);white-space:normal}.stock-qty{text-align:right}.stock-qty strong{display:block;font-size:24px;color:var(--green)}.stock-qty small{font-size:11px;color:var(--muted)}.issue-form{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.compact{margin-bottom:13px}.quantity-field{display:flex;align-items:center;justify-content:space-between;color:var(--muted)}.quantity-field>div{display:grid;grid-template-columns:42px 92px 42px}.quantity-field input{margin:0;border-radius:0;text-align:center;font-weight:800;font-size:20px;height:42px;padding:0}.quantity-field input::-webkit-inner-spin-button{appearance:none}.stepper{height:42px;border:1px solid #bfc8cf;background:#fff;font-size:22px;cursor:pointer}.stepper:first-child{border-radius:4px 0 0 4px}.stepper:last-child{border-radius:0 4px 4px 0}.summary-row{margin:16px 0;background:#f3f5f6;padding:12px;display:flex;justify-content:space-between;border-radius:4px;color:var(--muted)}.summary-row strong{color:var(--ink)}.confirm-button{width:100%;height:50px;font-size:16px}.empty-history{color:#8a949d;text-align:center;padding:75px 10px;font-size:13px}.history-item{border-bottom:1px solid var(--line);padding:13px 0}.history-item:last-child{border:0}.history-item>div{display:flex;justify-content:space-between;margin-bottom:4px}.history-item strong{font-size:13px}.history-item b{color:var(--green)}.history-item span{font-size:11px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:rgba(16,25,33,.5);display:grid;place-items:center;padding:20px;z-index:10}.modal{width:min(420px,100%);background:#fff;border-radius:6px;padding:24px;box-shadow:var(--shadow)}.modal h2{font-size:19px;margin:0 0 20px}.modal dl{margin:0}.modal dl div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.modal dt{color:var(--muted)}.modal dd{margin:0}.demo-note{background:#fff3d6;color:#7d470b;padding:10px;border-radius:4px;font-size:12px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.modal-actions button{height:44px}.secondary{border:1px solid #bfc8cf;background:#fff;border-radius:4px;color:var(--ink);cursor:pointer}.toast{position:fixed;right:20px;bottom:20px;background:#17222d;color:#fff;border-left:4px solid #35b982;padding:14px 18px;box-shadow:var(--shadow);border-radius:4px;z-index:20;display:flex;flex-direction:column;gap:3px}.toast span{font-size:12px;color:#c7d0d7}
@media(max-width:720px){.topbar{height:62px;padding:0 14px}.topbar h1{font-size:17px}.status-strip{height:auto;padding:10px 14px;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}.workspace{display:block;padding:12px}.scan-section,.stock-section,.history-section{padding:15px;margin-bottom:12px}.stock-section{margin-top:0}.scan-row{grid-template-columns:1fr 104px}.history-section{min-height:150px}.empty-history{padding:34px 10px}.quantity-field{align-items:flex-start;flex-direction:column;gap:8px}.quantity-field>div{width:100%;grid-template-columns:44px 1fr 44px}.toast{left:12px;right:12px;bottom:12px}.mode-badge{font-size:11px}.login-panel{padding:22px}}
.admin-workspace{max-width:1180px;margin:0 auto;padding:24px;display:grid;grid-template-columns:330px minmax(0,1fr);gap:20px}.admin-list-panel,.admin-form-panel{background:#fff;border:1px solid var(--line);border-radius:6px;padding:20px}.pda-user-list{display:flex;flex-direction:column;gap:6px}.pda-user-row{border:1px solid var(--line);background:#fff;border-radius:4px;padding:11px;text-align:left;cursor:pointer}.pda-user-row.selected{border-color:var(--green);background:#f5fbf8}.pda-user-row strong,.pda-user-row span{display:block}.pda-user-row span{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.4}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-form-grid label,.remark-field,.modal-field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}.admin-form-grid input,.admin-form-grid select,.remark-field input,.modal-field input{height:42px;border:1px solid #bfc8cf;border-radius:4px;padding:0 10px;font-size:15px}.permission-fieldset{border:1px solid var(--line);margin:18px 0;padding:12px;display:flex;gap:18px;flex-wrap:wrap}.permission-fieldset label,.enabled-check{color:var(--ink);font-size:13px}.remark-field{margin:14px 0}.admin-form-panel .confirm-button{margin-top:15px}.module-tabs{display:flex;gap:8px;max-width:1180px;margin:0 auto;padding:12px 24px 0}.module-tab{border:1px solid var(--line);background:#fff;color:var(--muted);padding:10px 14px;border-radius:4px;cursor:pointer}.module-tab.active{background:var(--green);border-color:var(--green);color:#fff}.modal-field{margin:12px 0}.modal-field input{margin-top:0}
@media(max-width:720px){.admin-workspace{display:block;padding:12px}.admin-list-panel,.admin-form-panel{padding:15px;margin-bottom:12px}.admin-form-grid{grid-template-columns:1fr}.module-tabs{padding:10px 12px 0;overflow:auto}.module-tab{white-space:nowrap}}
.operation-reports{max-width:1180px;margin:0 auto;padding:24px}.report-query-panel,.report-table-panel{background:#fff;border:1px solid var(--line);border-radius:6px;padding:20px}.report-table-panel{margin-top:14px}.operation-report-tabs{display:flex;gap:8px;flex-wrap:wrap}.operation-report-tabs button{height:40px;border:1px solid var(--line);background:#fff;border-radius:4px;padding:0 14px;cursor:pointer}.operation-report-tabs button.active{background:#17222d;color:#fff;border-color:#17222d}.report-filter-row{display:grid;grid-template-columns:1fr 1fr 130px 130px;gap:10px;align-items:end;margin-top:16px}.report-filter-row label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px}.report-filter-row input{height:42px;border:1px solid #bfc8cf;border-radius:4px;padding:0 10px;font-size:15px}.report-filter-row button{height:42px}.report-table-scroll{overflow:auto}.operation-report-table{width:100%;border-collapse:collapse;white-space:nowrap}.operation-report-table th,.operation-report-table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}.operation-report-table th{background:#f3f5f6;color:var(--muted);font-size:12px;position:sticky;top:0}.erp-status{display:inline-block;padding:3px 6px;border-radius:3px;font-size:11px;font-weight:700}.erp-status.exists{background:#e6f3ef;color:var(--green)}.erp-status.deleted{background:#feeceb;color:var(--red)}
@media(max-width:720px){.operation-reports{padding:12px}.report-query-panel,.report-table-panel{padding:14px}.report-filter-row{grid-template-columns:1fr 1fr}.operation-report-tabs{display:grid;grid-template-columns:1fr}.operation-report-tabs button{width:100%}.report-table-scroll{max-width:100%}}
