/* Square 后台：离线系统字体、胶囊操作、细线表格。 */
:root{font-family:-apple-system,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color:#1a1a1a;background:#f7f7f7;font-size:15px;line-height:1.5;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0}
a{color:#1a1a1a;text-underline-offset:3px}
a:hover{color:#555}
button,input,select,textarea{font:inherit}
button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 20px;border:1px solid #1a1a1a;border-radius:999px;background:#1a1a1a;color:#fff;font-size:15px;font-weight:600;line-height:1.4;text-decoration:none;cursor:pointer;white-space:nowrap;gap:8px}
button:hover,.button:hover{background:#333;color:#fff}
button.secondary,.button.secondary{background:#f0f0f0;border-color:#f0f0f0;color:#1a1a1a}
button.secondary:hover,.button.secondary:hover{background:#e8e8e8}
button.danger,.button.danger{background:#fff;color:#c62828;border-color:#c62828}
button.danger:hover,.button.danger:hover{background:#fde8e8}
button:disabled{opacity:.5;cursor:default}
input,select,textarea{color:#1a1a1a;background:#fff;border:1px solid #d9d9d9;border-radius:8px;min-height:40px;padding:9px 12px;max-width:100%;min-width:0}
select{padding-right:28px}
input[type=checkbox]{min-width:24px;min-height:24px;accent-color:#1a1a1a;width:24px;height:24px;flex-shrink:0;cursor:pointer}
input[type=file]{width:100%;background:#fff}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #006aff;outline-offset:2px}
label{display:block;color:#6b6b6b}
label input,label textarea,label select{display:block;margin-top:8px;width:100%}
input::placeholder{color:#6b6b6b}
.sidebar{position:fixed;inset:0 auto 0 0;width:220px;padding:28px 16px 20px;background:#f5f5f5;border-right:1px solid #e5e5e5;display:flex;flex-direction:column;overflow-y:auto}
.brand-lockup{display:flex;gap:10px;align-items:center;padding:0 8px}
.brand-mark{width:36px;height:40px;display:grid;place-items:center;color:#fff;background:#1a1a1a;border-radius:9px;font-weight:700}
.logo{font-size:20px;font-weight:700;white-space:nowrap}
.logo small{display:block;font-size:13px;color:#6b6b6b;font-weight:400;margin-top:2px}
.user-info{margin:28px 8px 20px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.user-info strong{overflow-wrap:anywhere}
.user-info span{background:#e8e8e8;border-radius:999px;padding:3px 10px;font-size:13px;white-space:nowrap}
.sidebar nav{display:grid;gap:5px}
.sidebar nav a{min-height:44px;display:flex;align-items:center;padding:10px 18px;text-decoration:none;border-radius:999px;color:#414141}
.sidebar nav a:hover{background:#ededed}
.sidebar nav a.current{background:#e8e8e8;font-weight:700;color:#1a1a1a}
.logout{margin-top:auto;padding:32px 4px 0}
.logout button{width:100%;background:#e8e8e8}
main.logged{margin-left:220px;padding:32px;min-width:0;max-width:calc(100% - 220px)}
main.anonymous{min-height:100vh;display:grid;place-items:center;padding:24px}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 24px;min-height:48px}
.heading-copy{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;min-width:0}
.heading-copy h1{order:0}
.heading-copy>p{order:2;flex-basis:100%;margin:0}
.heading-copy .readonly{order:1}
.page-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}
.page-actions:empty{display:none}
h1{font-size:24px;font-weight:700;line-height:1.4;margin:0;overflow-wrap:anywhere}
h2{font-size:18px;line-height:1.5;margin:24px 0 16px}
h2:first-child{margin-top:0}
p{color:#6b6b6b;margin:12px 0;line-height:1.7}
p:empty{display:none}
small{font-size:13px;color:#6b6b6b}
section,.page-card{min-width:0;background:#fff;border:1px solid #e5e5e5;border-radius:12px;padding:20px;margin:0 0 20px}
.page-card>section:last-child{margin-bottom:0}
.page-card>form:not(.toolbar){margin-bottom:16px}
section.login{width:360px;max-width:100%;padding:28px;margin:0}
.login h1{font-size:24px}
.login label{margin:20px 0}
.login button{width:100%;margin-top:4px}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:20px;margin-bottom:22px}
.inline{display:inline-flex;gap:8px;align-items:center}
.inline input{width:auto;margin:0}
.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 20px}
.toolbar form{display:flex;gap:12px;align-items:center;flex-wrap:wrap;min-width:0}
.toolbar>select,.toolbar form>select{max-width:240px}
.toolbar>.button:last-child{margin-left:auto}
.toolbar input[name=q],input.search{border-radius:999px;padding-left:38px;background-image:url("search.svg");background-repeat:no-repeat;background-position:13px center}
.toolbar select{border-radius:999px}
.filters{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.filters .button{background:#fff;color:#6b6b6b;border-color:#e5e5e5;padding:9px 15px;font-weight:400}
.filters .button[aria-current=true]{background:#f0f0f0;color:#1a1a1a;font-weight:600;border-color:#d9d9d9}
.production-filters{gap:12px;margin-bottom:20px}
.production-filters .button{min-height:48px;min-width:110px;font-size:18px;font-weight:600;padding:12px 24px}
.production-filters .button[aria-current=true]{background:#1a1a1a;color:#fff;border-color:#1a1a1a}
.table-scroll,.wide-table,.line-editor{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}
.table-scroll{margin:0 0 20px}
.table-scroll:last-child{margin-bottom:0}
table{border-collapse:collapse;width:100%;background:#fff;font-size:14px;margin:0}
th{background:#fff;color:#6b6b6b;text-align:left;font-weight:500;font-size:13px;padding:12px 10px;border-bottom:1px solid #e5e5e5;white-space:nowrap}
td{height:44px;padding:10px;border-bottom:1px solid #eee;vertical-align:middle}
tr:last-child>td{border-bottom:0}
tbody tr:hover>td{background:#fafafa}
td input,td select{max-width:100%}
td form{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
td form input:not([type=hidden]){width:160px}
td form select{max-width:190px}
td:first-child,th:first-child{padding-left:0}
td:last-child,th:last-child{padding-right:0}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.quantity{width:100px;text-align:right}
.short{color:#c62828;font-weight:600}
.inbound-preview p.short{font-size:18px;font-weight:700}
.error{color:#c62828;background:#fde8e8;border-radius:8px;font-weight:500;padding:12px 16px;margin:0 0 20px}
.error:empty{display:none}
.success{color:#1a7f37;background:#e6f6ea;padding:12px 16px;border-radius:8px;margin:0 0 20px}
.badge,.readonly,td small{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 11px;border-radius:999px;font-size:13px;font-weight:500;line-height:1.4;white-space:nowrap}
.badge-green{background:#e6f6ea;color:#1a7f37}
.badge-orange{background:#fff4e0;color:#b26a00;font-weight:600}
.badge-red{background:#fde8e8;color:#c62828}
.badge-gray,.readonly{background:#f0f0f0;color:#6b6b6b}
.readonly{font-size:13px}
td small{background:#e6f6ea;color:#1a7f37;margin-top:6px}
.muted{color:#6b6b6b}
.warning>td{background:#fff4e0}
.unmatched>td,.unmatched:hover>td{background:#fde8e8}
.unmatched td p{color:#c62828}
.tabs{display:flex;gap:24px;margin:0 0 20px;padding-bottom:14px;border-bottom:1px solid #e5e5e5}
.tabs a{text-decoration:none}
.upload-zone{border:1px dashed #bdbdbd;border-radius:10px;background:#fafafa;padding:28px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.upload-zone input[type=file]{max-width:480px}
.upload-zone button{margin-left:auto}
summary{cursor:pointer;color:#414141}
pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;max-width:750px}
.wide-table table{min-width:1450px}
.wide-table input{width:120px}
[data-lines]{min-width:600px}
[data-lines] td:first-child{width:45%}
[data-lines] input[data-product-text]{width:100%}
[data-lines] p{margin:8px 0}
[data-lines] .error:empty{display:none}
[data-add]{margin:0 0 16px}
.inventory-card .extra-col{display:none}
.inventory-card.show-extra-columns .extra-col{display:table-cell}
.inventory-card:has([data-extra-columns]:checked) .extra-col{display:table-cell}
.column-toggle{font-size:13px;margin:0 0 12px}
.stock-table{min-width:650px}
.empty{text-align:center;padding:36px;color:#6b6b6b}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 24px}
.stat-card{margin:0;padding:20px}
.stat-card p{font-size:14px;margin:0 0 12px}
.stat-card strong{display:block;font-size:32px;line-height:1.2;font-weight:650;font-variant-numeric:tabular-nums}
.stat-card small{display:block;margin-top:12px}
.inventory-stat small{font-size:14px}
.inventory-stat h2{font-size:16px;margin:0 0 20px}
.inventory-stat dl{margin:0}
.inventory-stat dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:14px}
.inventory-stat dt{color:#6b6b6b;flex-shrink:0}
.inventory-stat dd{margin:0;min-width:0;overflow-wrap:anywhere;text-align:right}
.inventory-stat strong{font-size:28px}
.inventory-stat .stat-total{border-top:1px solid #eee;margin-top:20px;padding-top:16px}
.inventory-stat .stat-total dt{color:#1a1a1a;font-weight:600}
.inventory-stat .stat-total strong{font-size:40px}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.section-heading h2{margin:0}
.detail-actions{margin-top:20px}
@media(max-width:1100px){main.logged{padding:24px}
.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.page-heading{align-items:flex-start;flex-wrap:wrap}
.page-actions{flex-wrap:wrap}
.toolbar>input{max-width:100%}}
@media(max-width:700px){.sidebar{width:160px;padding:20px 10px}
.brand-lockup{padding:0;gap:6px}
.brand-mark{display:none}
.logo{font-size:18px}
.user-info{flex-wrap:wrap;margin:22px 8px}
.sidebar nav a{padding:10px 14px}
main.logged{margin-left:160px;max-width:calc(100% - 160px);padding:20px 14px}
.stats-grid{grid-template-columns:1fr}
.page-actions{flex-shrink:1}
.upload-zone{padding:18px}}
.page-actions .toolbar{margin:0}
.search-result{font-size:13px;color:#6b6b6b}
[hidden]{display:none!important}

.recognition-warning{background:#fff3c4;border:1px solid #e7bf45;border-radius:8px;padding:16px;font-weight:700;margin:16px 0}.total-mismatch{color:#ba2424;font-size:20px;font-weight:700}.receipt-heading{font-size:1.4rem}.recognition-spinner{display:inline-block;width:20px;height:20px;border:3px solid #ddd;border-top-color:#24765a;border-radius:50%;animation:recognition-spin 1s linear infinite;vertical-align:middle;margin-right:8px}@keyframes recognition-spin{to{transform:rotate(360deg)}}
.saved-notice{font-size:24px;font-weight:700;color:#146c36;background:#e6f6ea;border:2px solid #258345;border-radius:8px;padding:16px 24px;margin:0 0 20px}
td.checkbox-cell{position:relative;padding:0;width:80px;min-width:64px}
.checkbox-target{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;min-height:44px;cursor:pointer}
.checkbox-target input[type=checkbox]{margin:0;width:24px;height:24px}
.checkbox-cell:focus-within{outline:2px solid #006aff;outline-offset:-2px}
.recognition-actions{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}
.recognition-actions form{margin:0}
button.recognition-primary{font-size:22px;min-height:56px;min-width:176px;padding:14px 28px}
