:root{--ink:#1d211f;--muted:#766f63;--soft:#a49b8c;--paper:#fbfaf7;--canvas:#f1eee7;--line:#ded8cc;--line-soft:#ece7de;--green:#17342a;--green-2:#254b3e;--gold:#b38a45;--gold-soft:#efe3c8;--red:#a34e43;--blue:#3f6f83;--shadow:0 12px 34px rgba(35,31,24,.07)}
*{box-sizing:border-box}
html{background:var(--canvas);color-scheme:light}
body{margin:0;min-height:100%;background:var(--canvas);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.48}
input,select,textarea{font-size:16px}
input::placeholder,textarea::placeholder{color:#aaa397}
[hidden]{display:none!important}
dialog:not([open]),.camera-dialog:not([open]),.result-dialog:not([open]),.stock-picker-dialog:not([open]),.sheet-dialog:not([open]),.image-preview-dialog:not([open]){display:none!important}
.app-shell{width:100%;max-width:560px;min-height:100vh;margin:0 auto;padding-bottom:calc(14px + env(safe-area-inset-bottom));background:var(--canvas);box-shadow:0 0 50px rgba(40,35,25,.06)}
.network-banner{position:fixed;top:0;left:50%;z-index:200;width:min(560px,100%);padding:8px 16px;background:#9b4e42;color:#fff;text-align:center;font-size:12px;transform:translateX(-50%)}
.profit-summary>summary{cursor:pointer;list-style:none;overflow-wrap:anywhere}
.profit-summary>summary::-webkit-details-marker{display:none}
.profit-summary>summary>b:before{content:"▸ ";color:var(--gold)}
.profit-summary[open]>summary>b:before{content:"▾ "}
.profit-expand-hint{display:block;margin-top:8px;color:var(--muted);font-size:11px}
#reportProfitPanel .panel-title label{display:inline-flex;align-items:center;gap:5px;font-size:12px}
#reportProfitPanel input[type="checkbox"]{width:16px;height:16px;min-height:16px;margin:0;padding:0;accent-color:var(--gold)}
.profit-details{margin-top:12px;padding:10px 0 0 10px;border-top:1px solid var(--line-soft);border-left:2px solid #d8c89f;overflow-wrap:anywhere}
.profit-detail-item{padding:12px 0;border-bottom:1px solid var(--line-soft)}
.profit-detail-item:last-child{border-bottom:0}
.topbar{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;height:62px;padding:0 8px;background:rgba(251,250,247,.93);border-bottom:1px solid rgba(210,203,192,.8);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.topbar-title{text-align:center}
.topbar strong,.topbar small{display:block}
.topbar strong{font-family:Georgia,"STSong",serif;font-size:17px;font-weight:600;letter-spacing:6px;text-indent:6px}
.topbar small{margin-top:2px;color:var(--soft);font-size:7px;letter-spacing:2.5px}
.icon-button{display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;padding:0;border:0;background:transparent;color:#7f6840;font-size:30px;line-height:1;text-decoration:none}
.supply-list{display:flex;flex-direction:column;gap:6px;margin:2px 0 8px}
.supply-row{display:grid;grid-template-columns:36px minmax(0,1fr) 58px auto;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--line-soft);border-radius:8px;background:#fff}
.supply-thumb{width:36px;height:36px;object-fit:cover;border-radius:6px;background:#efe8d8}
.supply-thumb.is-empty{display:block;background:repeating-linear-gradient(45deg,#efe8d8,#efe8d8 6px,#f6f1e6 6px,#f6f1e6 12px)}
.supply-copy{min-width:0}
.supply-copy b,.supply-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.supply-copy b{font-size:13px;font-weight:700}
.supply-copy small{margin-top:2px;color:var(--muted);font-size:10px}
.supply-row input[data-supply-actual]{width:58px;min-height:36px;margin:0;padding:4px 2px;border:1px solid var(--line);border-radius:7px;text-align:center;font-size:16px}
.supply-row button[data-remove-supply]{width:28px;min-height:36px;padding:0;border:0;background:transparent;color:var(--muted);font-size:18px}
.supply-add-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.supply-add-actions button{min-height:44px;border:1px dashed var(--line);border-radius:10px;background:#fff;color:var(--gold)}
.refresh-button{font-size:23px}
.view{display:none;padding:16px 14px 34px}
.view.is-active{display:block;animation:view-in .22s ease-out}
@keyframes view-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.hero{position:relative;overflow:hidden;margin:-16px -14px 0;padding:30px 22px 38px;background:radial-gradient(circle at 92% 15%,rgba(192,159,94,.25),transparent 30%),linear-gradient(145deg,#10251e,#24463a 72%,#2b493e);color:#fff}
.hero:before,.hero:after{position:absolute;content:"";border:1px solid rgba(219,188,126,.18);transform:rotate(45deg)}
.hero:before{right:-62px;bottom:-92px;width:205px;height:205px}
.hero:after{right:14px;bottom:-88px;width:130px;height:130px}
.hero-eyebrow{position:relative;z-index:1;display:flex;justify-content:space-between;gap:10px;color:#d8c49c;font-size:10px;letter-spacing:2px}
.hero h1{position:relative;z-index:1;margin:26px 0 22px;font-family:Georgia,"STSong",serif;font-size:29px;font-weight:500;line-height:1.48;letter-spacing:2px}
.connection-pill{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:7px 11px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(0,0,0,.12);color:#d9e2dd;font-size:10px}
.connection-pill i{width:6px;height:6px;border-radius:50%;background:#70c49a;box-shadow:0 0 0 4px rgba(112,196,154,.1)}
.home-kpis{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);margin:-18px 0 18px;border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow)}
.home-kpis article{min-width:0;padding:14px 10px;border-right:1px solid var(--line-soft);text-align:center}
.home-kpis article:last-child{border-right:0}
.home-kpis span,.home-kpis small{display:block;color:var(--muted);font-size:9px}
.home-kpis strong{display:inline-block;margin:7px 2px 2px;font-family:Georgia,serif;font-size:19px;font-variant-numeric:tabular-nums}
.draft-banner{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:13px 14px;border:1px solid #d8c493;border-radius:9px;background:#fff8e8;color:var(--ink);text-align:left;box-shadow:0 8px 20px rgba(113,85,32,.06)}
.draft-banner span,.draft-banner b,.draft-banner small{display:block}
.draft-banner small{margin-top:3px;color:#8d7955;font-size:10px}
.draft-banner em{color:#8d6e32;font-size:12px;font-style:normal;white-space:nowrap}
.section-label{display:flex;align-items:end;justify-content:space-between;margin:4px 2px 10px}
.section-label span{font-size:15px;font-weight:700;letter-spacing:1px}
.section-label small{color:var(--soft);font-size:9px}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.action-card{position:relative;overflow:hidden;min-height:126px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);text-align:left;box-shadow:0 7px 18px rgba(38,33,24,.035)}
.action-card:active{transform:scale(.985)}
.action-card .action-icon{display:flex;width:34px;height:34px;align-items:center;justify-content:center;margin-bottom:14px;border-radius:50%;background:#eee9df;color:#765f37;font-size:20px}
.action-card b,.action-card small{display:block}
.action-card b{font-family:Georgia,"STSong",serif;font-size:16px;letter-spacing:1px}
.action-card small{margin-top:6px;color:var(--muted);font-size:10px}
.action-card em{display:none}
.action-sale{grid-column:1/-1;min-height:118px;padding:19px 18px 18px 72px;border-color:#23453a;background:linear-gradient(135deg,#17352b,#2d5144);color:#fff}
.action-sale .action-icon{position:absolute;left:17px;top:22px;background:rgba(220,193,139,.14);color:#ddc28d}
.action-sale b{font-size:20px}
.action-sale small{color:#c3d0ca}
.action-sale em{display:block;position:absolute;right:18px;bottom:18px;color:#e0c78f;font-size:11px;font-style:normal}
.stocktake-entry{display:grid;grid-template-columns:40px 1fr auto;align-items:center;width:100%;gap:10px;margin-top:9px;padding:13px 14px;border:1px dashed #cfc5b5;border-radius:10px;background:rgba(255,255,255,.48);color:var(--ink);text-align:left}
.stocktake-entry .action-icon{color:#826a3f;font-size:24px}
.stocktake-entry b,.stocktake-entry small{display:block}
.stocktake-entry small{margin-top:3px;color:var(--muted);font-size:9px}
.stocktake-entry em{color:#856d45;font-size:11px;font-style:normal}
.panel-card,.form-card,.task-card{margin-bottom:12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);box-shadow:0 7px 18px rgba(38,33,24,.035)}
.home-today{margin-top:18px}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.panel-title b,.panel-title small{display:block}
.panel-title b{font-size:14px}
.panel-title small{margin-top:3px;color:var(--soft);font-size:8px;letter-spacing:1px}
.panel-title button,.text-button{min-height:40px;padding:0 4px;border:0;background:transparent;color:#856b3b;font-size:11px;font-weight:700}
.activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px}
.activity-grid div{min-width:0;padding:11px 8px;border-radius:7px;background:#f3f0e9}
.activity-grid span,.activity-grid strong{display:block}
.activity-grid span{color:var(--muted);font-size:9px}
.activity-grid strong{overflow:hidden;margin-top:6px;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.home-alert{margin-top:11px;padding-top:10px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:10px;line-height:1.55}

.section-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin:-6px 0 13px}
.section-head>div{text-align:center}
.section-head b,.section-head small{display:block}
.section-head b{font-family:Georgia,"STSong",serif;font-size:18px;letter-spacing:3px}
.section-head small{margin-top:3px;color:var(--soft);font-size:7px;letter-spacing:2px}
.search-panel{padding:12px}
.large-search,.inline{display:flex;gap:6px}
.large-search input,.inline input{min-width:0;flex:1}
.large-search button,.inline button{flex:none}
.large-search input,.form-card input,.form-card select,.form-card textarea,.panel-card input,.panel-card select,.panel-card textarea{width:100%;min-height:45px;padding:10px 11px;border:1px solid #d8d1c5;border-radius:7px;background:#fff;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
.large-search input:focus,.form-card input:focus,.form-card select:focus,.form-card textarea:focus,.panel-card input:focus,.panel-card select:focus{border-color:#9e8250;box-shadow:0 0 0 3px rgba(179,138,69,.1)}
.scan-button,.search-button,.inline button{min-width:54px;min-height:45px;padding:0 11px;border-radius:7px;font-size:12px;font-weight:700}
.scan-button{border:1px solid #c8b486;background:#fffaf0;color:#80642e}
.search-button{border:1px solid var(--green);background:var(--green);color:#fff}
.stock-picker-button{flex:none;width:43px;min-height:45px;border:1px solid #c8b486;border-radius:7px;background:#fff;color:#80642e;font-size:16px;font-weight:700;letter-spacing:1px}
.filter-grid,.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.filter-grid{margin-top:11px}
.filter-grid label,.form-card label,.panel-card label{display:block;margin:0;color:var(--muted);font-size:11px}
.filter-grid label span,.form-card label>span,.panel-card label>span{display:block;margin-bottom:5px}
.form-card label,.panel-card label{margin-bottom:12px}
.form-grid label{min-width:0}
.form-grid label input,.form-grid label select{margin:0}
label em{color:var(--red);font-size:9px;font-style:normal}
.filter-grid select{width:100%;min-height:40px;padding:7px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:13px}
.filter-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;padding-top:10px;border-top:1px solid var(--line-soft)}
.quick-chips{display:flex;gap:6px;overflow:auto;scrollbar-width:none}
.quick-chips::-webkit-scrollbar{display:none}
.quick-chips button{flex:none;min-height:34px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:10px;white-space:nowrap}
.quick-chips button.is-active{border-color:var(--green);background:var(--green);color:#fff}
.sort-field{display:flex!important;align-items:center;gap:5px;margin:0!important;white-space:nowrap}
.sort-field select{width:82px!important;min-height:34px!important;padding:4px!important;font-size:10px!important}
.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);overflow:hidden}
.metric-strip article{min-width:0;padding:10px 6px;border-right:1px solid var(--line-soft);text-align:center}
.metric-strip article:last-child{border-right:0}
.metric-strip span,.metric-strip b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.metric-strip span{color:var(--soft);font-size:8px}
.metric-strip b{margin-top:5px;font-size:11px;font-variant-numeric:tabular-nums}
.result-heading{display:flex;justify-content:space-between;margin:12px 2px 8px;color:var(--muted);font-size:10px}
.card-list{display:flex;flex-direction:column;gap:9px;margin-bottom:12px}
.empty-state{min-height:145px;align-items:center;justify-content:center;padding:24px 18px;border:1px dashed #d4ccbf;border-radius:10px;background:rgba(255,255,255,.36);color:var(--muted);text-align:center}
.empty-state.compact{min-height:108px}
.empty-state .empty-icon,.empty-state b,.empty-state small{display:block}
.empty-state .empty-icon{margin-bottom:8px;color:#ad9b7c;font-size:27px}
.empty-state b{font-size:13px}
.empty-state small{max-width:260px;margin-top:5px;color:var(--soft);font-size:10px;line-height:1.5}
.stock-card,.cart-card,.recent-card,.transfer-card{overflow:hidden;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);box-shadow:0 6px 16px rgba(40,34,24,.03)}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.card-head>div{min-width:0}
.card-kicker{display:flex;align-items:center;gap:6px;margin-bottom:5px;color:var(--soft);font-size:9px}
.status-pill{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border-radius:999px;background:#e5efe9;color:#32614d;font-size:9px;font-weight:700}
.status-pill.pending{background:#fff0ce;color:#8c641c}.status-pill.approved{background:#dff0e7;color:#286049}.status-pill.rejected{background:#f5dfdc;color:#99493f}.status-pill.draft{background:#ebe8e1;color:#6e685d}
.card-title{font-size:14px;font-weight:700;line-height:1.4;word-break:break-all}
.card-title small{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:500}
.card-price{text-align:right;white-space:nowrap}
.card-price strong,.card-price small{display:block}
.card-price strong{color:#89672d;font-family:Georgia,serif;font-size:16px}
.card-price small{margin-top:3px;color:var(--soft);font-size:9px}
.card-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;margin-top:12px;padding:10px;border-radius:7px;background:#f4f1eb}
.card-meta-grid span,.card-meta-grid b{display:block}
.card-meta-grid span{color:var(--soft);font-size:8px}
.card-meta-grid b{overflow:hidden;margin-top:3px;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.stock-detail{margin-top:10px;border-top:1px solid var(--line-soft)}
.stock-detail summary{padding:10px 0 0;color:#826a3f;font-size:10px;list-style:none}
.stock-detail summary::-webkit-details-marker{display:none}
.stock-detail-copy{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px;color:var(--muted);font-size:10px;line-height:1.5}
.image-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
.image-grid img{width:100%;aspect-ratio:1;border-radius:6px;object-fit:cover;background:#eee}
.image-grid small{grid-column:1/-1;color:var(--soft);font-size:9px}
.card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.card-actions button,.candidate-list button,.remove-button{min-height:38px;padding:0 11px;border:1px solid #cdbf9f;border-radius:7px;background:#fff;color:#725a31;font-size:10px;font-weight:700}
.card-actions button.primary-lite{border-color:#aec4ba;background:#edf5f1;color:#2f614d}
.candidate-list{display:flex;flex-direction:column;gap:7px;margin:10px 0}
.candidate-list button{width:100%;min-height:52px;text-align:left;line-height:1.45}

.flow-progress{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:12px;color:var(--soft);font-size:9px}
.flow-progress span{display:flex;align-items:center;gap:4px}
.flow-progress span:not(:last-child):after{content:"";width:22px;height:1px;background:#cec6b8}
.flow-progress .is-done{color:#416c59;font-weight:700}
.card-step{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.card-step>span{display:flex;flex:none;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:var(--green);color:#dcc48f;font-family:Georgia,serif;font-size:11px}
.card-step b,.card-step small{display:block}
.card-step b{font-size:14px}
.card-step small{margin-top:3px;color:var(--soft);font-size:9px}
.sale-goods-card .large-search{margin-bottom:6px}
.cart-card .card-head{align-items:center}
.cart-location{margin-top:7px;color:var(--muted);font-size:9px}
.cart-card .pricing{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}
.cart-card .pricing label{margin:0}
.cart-card .pricing input,.cart-card .pricing select{min-height:40px;margin:4px 0 0;padding:7px 8px;font-size:13px}
.cart-card .pricing .wide{grid-column:1/-1}
.cart-totals{display:flex;align-items:center;justify-content:space-between;margin:10px 0 2px;padding:11px 2px 0;border-top:1px solid var(--line-soft);color:var(--muted);font-size:11px}
.cart-totals strong{color:#86642e;font-size:17px}
.member-result{margin:-2px 0 12px;padding:10px 11px;border-radius:7px;background:#edf5f1;color:#315c4a;font-size:11px;line-height:1.5}
.member-result.muted{background:#f2f0eb;color:var(--muted)}
.new-member-panel{margin:-5px 0 14px;padding:11px;border:1px dashed #cbb985;border-radius:7px;background:#fffaf0}
.new-member-panel label{margin-bottom:8px}
.new-member-panel button{width:100%;min-height:40px;border:1px solid #b89555;border-radius:7px;background:#fff;color:#795d2b;font-size:11px;font-weight:700}
.sale-session-actions{margin:-5px 0 8px}
.sale-session-actions button{width:100%;min-height:40px;border:1px solid #7ea795;border-radius:7px;background:#f2f8f5;color:#315c4a;font-size:11px;font-weight:700}
.sale-session-panel{margin:2px 0 14px;padding:12px;border:1px solid #cfe0d7;border-radius:9px;background:#f6fbf8}
.sale-session-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.sale-session-head b{font-size:12px;color:#315c4a}
.sale-session-head span{flex:1;font-size:11px;color:#836736;font-variant-numeric:tabular-nums}
.sale-session-head button{width:28px;height:28px;flex:none;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted);font-size:14px;line-height:1}
.sale-session-qr{display:flex;justify-content:center;padding:8px;background:#fff;border:1px solid var(--line-soft);border-radius:8px}
.sale-session-qr img{width:200px;height:200px;object-fit:contain;display:block}
.sale-session-tip{margin:8px 0 0;font-size:10px;color:var(--muted);line-height:1.5;text-align:center}
.sale-session-status{margin-top:8px;padding:8px 10px;border-radius:7px;background:#fff6e8;color:#8a5a1f;font-size:11px;line-height:1.5}
.sale-session-panel #regenSaleSessionQr{width:100%;min-height:38px;margin-top:9px;border:1px solid #b89555;border-radius:7px;background:#fff;color:#795d2b;font-size:11px;font-weight:700}
.form-card input.salesperson-readonly,.form-card select:disabled{background:#f3f1eb;color:var(--ink);opacity:1;-webkit-text-fill-color:var(--ink)}
.form-card input.salesperson-readonly{font-weight:700;text-transform:uppercase}
.subsection-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0 10px}
.subsection-title b{font-size:12px}
.subsection-title button{min-height:36px;padding:0;border:0;background:transparent;color:#836736;font-size:10px;font-weight:700}
.payment-list{display:flex;flex-direction:column;gap:8px}
.payment-row{display:grid;grid-template-columns:1fr 1fr 34px;gap:7px;padding:9px;border-radius:8px;background:#f2f0ea}
.payment-row select,.payment-row input{min-width:0;min-height:41px!important;margin:0!important;padding:7px!important;font-size:13px!important}
.payment-row input.reference{grid-column:1/3}
.payment-row button{grid-column:3;grid-row:1/3;width:34px;border:0;border-radius:6px;background:#fff;color:#a04f44;font-size:17px}
.payment-row.crm-payment-readonly{grid-template-columns:1fr 1fr;background:#f6f1e6}
.payment-row.crm-payment-readonly input.reference{grid-column:1/3}
.payment-row.crm-payment-readonly small{grid-column:1/3;color:var(--muted);font-size:11px}
.crm-payment-empty{padding:10px 12px;border-radius:8px;background:#f6f1e6;color:var(--muted);font-size:12px}
.money-fields{margin-top:13px}
.settlement-box{margin:14px 0;padding:12px;border-radius:9px;background:#182c25;color:#dce6e1}
.settlement-box>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;font-size:10px}
.settlement-box b{font-variant-numeric:tabular-nums}
.settlement-box .settlement-total{margin:6px 0 2px;padding:10px 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}
.settlement-box>div.settlement-crm-lines{flex-direction:column;align-items:stretch;gap:2px;padding:6px 0}
.settlement-crm-line{display:flex;align-items:center;justify-content:space-between;width:100%;padding:3px 0;color:#b7d7c8;font-size:11px}
.settlement-crm-line b{color:#e8f4ee}
.settlement-total strong{color:#e2c889;font-family:Georgia,serif;font-size:26px}
.payment-gap{justify-content:center!important;margin-top:7px;padding:7px!important;border-radius:6px;background:rgba(255,255,255,.08);color:#e5c17d!important;font-weight:700}
.payment-gap.is-balanced{background:rgba(91,166,129,.16);color:#a6d9bf!important}
.primary{display:flex;width:100%;min-height:52px;align-items:center;justify-content:center;flex-direction:column;gap:3px;padding:10px 14px;border:0;border-radius:8px;background:linear-gradient(135deg,#17372c,#285042);color:#e4ce9c;font-weight:700;letter-spacing:2px;box-shadow:0 8px 18px rgba(19,52,42,.15)}
.primary small{color:#bad0c6;font-size:8px;font-weight:500;letter-spacing:0}
.primary.danger{background:#6d3f37;color:#f2ddd1}
.sale-submit-actions{display:flex;gap:8px;align-items:stretch}
.sale-submit-actions .primary{flex:1;min-width:0;width:auto;margin-top:0;padding:10px 6px;text-align:center}
.sale-submit-actions .primary span{font-size:14px;letter-spacing:1px}
.sale-submit-actions .primary small{line-height:1.35;word-break:break-all}
.primary.subtle{background:#fff;border:1px solid var(--gold);color:#7a5f2b;box-shadow:none}
.primary.subtle small{color:#a3854c}
#cancelStocktake{margin-top:9px}
.primary.pre-outbound{margin-top:9px;background:#fff;border:1px solid var(--gold);color:#7a5f2b;box-shadow:none}
.primary.pre-outbound small{color:#a3854c}
.pre-outbound-card .pre-outbound-lines{display:flex;flex-wrap:wrap;gap:4px 10px;margin:8px 0 2px;color:var(--muted);font-size:10px}
.pre-outbound-card .card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.safe-copy{margin:10px 3px 0;color:var(--soft);font-size:9px;line-height:1.55;text-align:center}

.segmented-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:12px;padding:4px;border-radius:9px;background:#ded9cf}
.segmented-tabs button{min-height:40px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:11px;font-weight:700}
.segmented-tabs button.is-active{background:#fff;color:var(--ink);box-shadow:0 3px 10px rgba(38,33,24,.08)}
.segmented-tabs i{display:inline-flex;min-width:18px;height:18px;align-items:center;justify-content:center;margin-left:3px;border-radius:999px;background:#a34e43;color:#fff;font-size:9px;font-style:normal}
.location-block{padding:11px;border-radius:8px;background:#f1eee7}
.location-block>small{display:block;margin-bottom:8px;color:#75664e;font-size:9px;font-weight:700}
.location-block label{margin-bottom:0}
.location-block.destination{background:#edf3f0}
.swap-locations{display:block;min-height:38px;margin:3px auto;padding:0 14px;border:0;background:transparent;color:#826a3f;font-size:10px;font-weight:700}
.transfer-filter{padding:10px}
.transfer-filter .quick-chips{justify-content:flex-start}
.transfer-metrics{grid-template-columns:repeat(4,1fr)}
.transfer-metrics div{padding:10px 5px;border-right:1px solid var(--line-soft);text-align:center}
.transfer-metrics div:last-child{border-right:0}
.transfer-metrics span,.transfer-metrics b{display:block}
.transfer-metrics span{color:var(--soft);font-size:8px}
.transfer-metrics b{margin-top:4px;font-size:13px}
.transfer-card .route{display:grid;grid-template-columns:1fr 24px 1fr;align-items:center;margin-top:11px;padding:10px;border-radius:8px;background:#f2f0ea}
.transfer-card .route div{min-width:0}
.transfer-card .route div:last-child{text-align:right}
.transfer-card .route span,.transfer-card .route b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.transfer-card .route span{color:var(--soft);font-size:8px}
.transfer-card .route b{margin-top:4px;font-size:10px}
.transfer-card .route i{color:#a38a5e;font-style:normal;text-align:center}
.transfer-foot{display:flex;justify-content:space-between;gap:10px;margin-top:10px;color:var(--muted);font-size:9px}

.report-filter{padding:12px}
.report-presets{margin-bottom:11px}
.report-filter .form-grid{margin-bottom:11px}
.report-period{margin:14px 2px 9px;color:var(--muted);font-size:10px}
.report-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.report-kpis article{min-width:0;padding:13px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}
.report-kpis article.featured{grid-column:1/-1;padding:17px;background:linear-gradient(135deg,#18352b,#2b5043);color:#fff}
.report-kpis span,.report-kpis strong,.report-kpis small{display:block}
.report-kpis span{color:var(--muted);font-size:9px}
.report-kpis strong{overflow:hidden;margin-top:8px;font-family:Georgia,serif;font-size:20px;text-overflow:ellipsis;white-space:nowrap}
.report-kpis small{margin-top:4px;color:var(--soft);font-size:8px}
.report-kpis .featured span{color:#c2d2ca}.report-kpis .featured strong{color:#e3c887;font-size:29px}.report-kpis .featured small{color:#a9bdb3}
.report-section{padding:14px}
.method-breakdown{margin-top:12px}
.method-row{display:grid;grid-template-columns:78px 1fr auto;align-items:center;gap:8px;margin-top:9px}
.method-row span{font-size:10px}
.method-row .bar{height:7px;border-radius:999px;background:#e8e3da;overflow:hidden}
.method-row .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2b5747,#b18b48)}
.method-row strong{font-size:10px;font-variant-numeric:tabular-nums}
.skeleton-line{height:10px;margin:10px 0;border-radius:10px;background:linear-gradient(90deg,#ece8df 25%,#f7f4ed 50%,#ece8df 75%);background-size:200% 100%;animation:skeleton 1.3s infinite}
.skeleton-line.short{width:70%}
@keyframes skeleton{to{background-position:-200% 0}}
.business-flow-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.business-flow-grid div{padding:11px;border-radius:7px;background:#f2f0ea}
.business-flow-grid span,.business-flow-grid strong,.business-flow-grid small{display:block}
.business-flow-grid span{color:var(--muted);font-size:8px}
.business-flow-grid strong{overflow:hidden;margin-top:6px;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.business-flow-grid{grid-template-columns:repeat(3,1fr)}
.business-flow-grid small{margin-top:4px;color:var(--soft);font-size:8px}
.ledger-list{display:flex;flex-direction:column;margin-top:9px}
.ledger-item{display:grid;grid-template-columns:1fr auto;gap:7px;padding:10px 0;border-top:1px solid var(--line-soft)}
.ledger-item:first-child{border-top:0}
.ledger-item b,.ledger-item small,.ledger-item strong{display:block}
.ledger-item b{font-size:10px}.ledger-item small{margin-top:3px;color:var(--soft);font-size:8px}.ledger-item strong{font-size:12px}.ledger-item strong.outflow{color:var(--red)}
.report-note{margin:13px 3px;color:var(--soft);font-size:9px;line-height:1.6}

.rule-banner{display:flex;gap:10px;margin-bottom:12px;padding:12px;border-left:3px solid var(--gold);border-radius:7px;background:#fff7e7;color:#765f34}
.rule-banner b{flex:none;font-size:11px}.rule-banner span{font-size:9px;line-height:1.5}
.task-card{display:flex;align-items:center;justify-content:space-between;gap:10px}
.task-card b,.task-card span{display:block}.task-card span{margin-top:5px;color:var(--muted);font-size:9px}.task-card em{padding:5px 8px;border-radius:999px;background:#fff0cd;color:#89621e;font-size:9px;font-style:normal}
.stocktake-progress{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);overflow:hidden}
.stocktake-progress div{padding:11px 6px;border-right:1px solid var(--line-soft);text-align:center}.stocktake-progress div:last-child{border-right:0}.stocktake-progress span,.stocktake-progress b{display:block}.stocktake-progress span{color:var(--soft);font-size:8px}.stocktake-progress b{margin-top:5px;font-size:15px}
#stocktakeCameraScan{margin-top:10px}
.stocktake-banner{margin-top:10px;padding:14px 12px;border:1.5px solid;border-radius:8px;font-size:17px;font-weight:800;line-height:1.4;word-break:break-all}
.stocktake-banner[hidden]{display:none}
.stocktake-banner.ok{color:#17632f;background:#e6f5ea;border-color:#9ed3ae}
.stocktake-banner.dup{color:#a85d00;background:#fff3e0;border-color:#f0c27c}
.stocktake-banner.bad{color:#b01818;background:#fdeeee;border-color:#f8b4b4}
.recent-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px}.recent-card b{font-size:11px}.recent-card span{color:var(--muted);font-size:9px}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:150;max-width:min(88%,480px);padding:11px 16px;border-radius:999px;background:rgba(24,27,25,.94);color:#fff;font-size:11px;line-height:1.35;opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:.2s}
.toast.on{opacity:1;transform:translate(-50%,0)}
.camera-dialog,.result-dialog,.stock-picker-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;width:min(92vw,500px);padding:0;border:0;border-radius:14px;background:#101312;color:#fff;box-shadow:0 25px 80px rgba(0,0,0,.35);z-index:1000}
.camera-dialog::backdrop,.result-dialog::backdrop,.stock-picker-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(3px)}
.camera-dialog video{display:block;width:100%;min-height:310px;object-fit:cover}
.camera-dialog p{margin:0;padding:12px;text-align:center;font-size:11px}
.camera-dialog>button,.result-dialog>button{width:100%;min-height:50px;border:0;background:#fff;color:#222;font-weight:700}
.camera-guide{position:absolute;inset:0 0 86px;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none}
.camera-guide span{width:78%;height:115px;border:2px solid #e0c178;border-radius:10px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}
.result-dialog{background:var(--paper);color:var(--ink)}
.result-dialog #resultDialogBody{padding:28px 22px}
.result-dialog .result-mark{display:flex;width:54px;height:54px;align-items:center;justify-content:center;margin:0 auto 14px;border-radius:50%;background:#e3f0e9;color:#2e6a50;font-size:26px}
.result-dialog h3{margin:0;text-align:center;font-family:Georgia,"STSong",serif;font-size:20px;letter-spacing:2px}
.result-dialog p{margin:8px 0 20px;color:var(--muted);font-size:10px;line-height:1.5;text-align:center}
.result-summary{padding:12px;border-radius:8px;background:#f1eee7}
.result-summary div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:10px}.result-summary strong{font-size:11px}
.confirm-dialog-body{padding:28px 22px 12px}.confirm-dialog-body p{white-space:pre-line}.confirm-dialog-actions{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.confirm-dialog-actions button{min-height:50px;border:0;background:var(--paper);color:var(--ink);font-weight:700}.confirm-dialog-actions button+button{border-left:1px solid var(--line);background:var(--ink);color:#fff}
.transfer-detail-action{margin-top:14px}
.stock-picker-dialog{max-height:84vh;background:var(--paper);color:var(--ink)}
.stock-picker-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px 11px;border-bottom:1px solid var(--line)}
.stock-picker-head b,.stock-picker-head small{display:block}.stock-picker-head b{font-size:15px}.stock-picker-head small{margin-top:3px;color:var(--muted);font-size:9px}
.stock-picker-head button{width:36px;height:36px;border:0;border-radius:50%;background:#eeeae2;color:var(--muted);font-size:21px}
.stock-picker-search{padding:11px 12px 4px}
.stock-picker-results{max-height:calc(84vh - 118px);margin:0;padding:8px 12px 15px;overflow:auto}
.stock-picker-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:12px 2px;border-bottom:1px solid var(--line-soft)}
.stock-picker-item.supply-pick-item{grid-template-columns:36px 1fr auto}
.stock-picker-item b,.stock-picker-item small{display:block}.stock-picker-item b{font-size:12px}.stock-picker-item small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45}
.stock-picker-item button{min-height:38px;padding:0 12px;border:1px solid #aec4ba;border-radius:7px;background:#edf5f1;color:#2f614d;font-size:10px;font-weight:700}
.loading{cursor:progress}
.loading .refresh-button{animation:spin .8s linear infinite}
.button-busy{position:relative;color:transparent!important;pointer-events:none}
.button-busy:after{position:absolute;top:50%;left:50%;width:17px;height:17px;margin:-10px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;content:"";color:#fff;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.crm-delivery-summary{margin-bottom:10px;padding:10px 12px;border-radius:10px;background:#f6f1e6;font-size:12px;line-height:1.5}
.crm-delivery-summary b{display:block;margin-bottom:4px}
.crm-delivery-buckets{display:flex;flex-direction:column;gap:10px}
.crm-delivery-bucket{--tone:var(--soft);--tone-line:var(--line);--tone-bg:var(--paper);--tone-bar:#cfc6b6;padding:13px 14px 12px;border:1px solid var(--tone-line);border-radius:12px;background:var(--tone-bg);cursor:pointer;transition:background .25s,border-color .25s,box-shadow .25s}
.crm-delivery-bucket.is-done{--tone:#2f6650;--tone-line:#a9c7b6;--tone-bg:#f2f7f3;--tone-bar:#3d7a5f}
.crm-delivery-bucket.is-off{--tone:#9c4a40;--tone-line:#dcb2a9;--tone-bg:#fbf3f0;--tone-bar:#b8675b}
.crm-delivery-bucket.is-target{box-shadow:0 0 0 2px rgba(179,138,69,.38)}
.bucket-head{display:flex;align-items:center;gap:8px}
.bucket-head i{display:flex;flex:none;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;background:var(--green);color:#dcc48f;font-family:Georgia,serif;font-size:12px;font-style:normal}
.bucket-head strong{flex:1;min-width:0;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.bucket-head em{flex:none;color:var(--tone);font-size:11px;font-style:normal;font-weight:700;letter-spacing:.5px}
.is-done .bucket-head em:before{content:"✓ "}
.bucket-amount{display:flex;align-items:baseline;gap:6px;margin-top:9px}
.bucket-amount b{color:var(--tone);font-family:Georgia,serif;font-size:20px;font-weight:400}
.crm-delivery-bucket:not(.is-done):not(.is-off) .bucket-amount b{color:var(--ink)}
.bucket-amount span{color:var(--soft);font-family:Georgia,serif;font-size:12px}
.bucket-bar{height:3px;margin:8px 0 10px;overflow:hidden;border-radius:2px;background:rgba(120,108,88,.12)}
.bucket-bar i{display:block;height:100%;border-radius:2px;background:var(--tone-bar);transition:width .3s}
.bucket-items{display:flex;flex-wrap:wrap;gap:6px}
.bucket-items span{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid var(--tone-line);border-radius:999px;background:rgba(255,255,255,.72);color:var(--ink);font-size:11px}
.bucket-items span b{color:#89672d;font-family:Georgia,serif;font-weight:400}
.bucket-items em{color:var(--soft);font-size:11px;font-style:normal}
.bucket-target{display:block;margin-top:9px;color:#9a7a3f;font-size:10px;letter-spacing:1px}
.bucket-target:before{content:"◆ ";font-size:8px}
.cart-card .crm-bind{--tone:#7a5f2b;--tone-line:#d8c9a6;--tone-bg:#fffaf0;display:flex;align-items:center;gap:6px;margin:11px 0 0;padding:0 4px 0 12px;border:1px solid var(--tone-line);border-radius:999px;background:var(--tone-bg);color:var(--tone);transition:background .25s,border-color .25s}
.cart-card .crm-bind.is-done{--tone:#2f6650;--tone-line:#a9c7b6;--tone-bg:#f2f7f3}
.cart-card .crm-bind.is-off{--tone:#9c4a40;--tone-line:#dcb2a9;--tone-bg:#fbf3f0}
.cart-card .crm-bind>span{flex:none;margin:0;color:var(--tone);font-size:10px;letter-spacing:1px;opacity:.8}
.cart-card .crm-bind select{flex:1;min-width:0;min-height:36px;margin:0;padding:0 4px;border:0;background:transparent;color:var(--tone);font-size:13px;font-weight:700;text-overflow:ellipsis;box-shadow:none}
.primary.is-unbalanced{background:#e7e2d8;color:#a49b8c;box-shadow:none}
.primary.is-unbalanced small{color:#b7ae9f}
.crm-delivery-lock input{background:#f3f1eb;pointer-events:none}

@media(max-width:370px){.view{padding-right:11px;padding-left:11px}.hero{margin-right:-11px;margin-left:-11px;padding-right:18px;padding-left:18px}.hero h1{font-size:26px}.filter-grid,.form-grid{gap:8px}.action-card{padding:14px}.action-sale{padding-left:65px}.payment-row{grid-template-columns:1fr 1fr 31px}.home-kpis strong{font-size:17px}.business-flow-grid{grid-template-columns:1fr 1fr}.business-flow-grid div:last-child{grid-column:1/-1}.stock-card,.cart-card,.transfer-card{padding:12px}}
@media(min-width:700px){.app-shell{border-right:1px solid #ddd7cc;border-left:1px solid #ddd7cc}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* 实时库存列表卡片：左图右文布局 */
.stock-card{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.stock-card:active{transform:scale(.995)}
.stock-card-main{display:flex;gap:12px}
.stock-thumb-wrap{position:relative;flex:none;width:76px;height:76px;border-radius:8px;overflow:hidden;background:#ebe6dc;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-soft)}
.stock-thumb{width:100%;height:100%;object-fit:cover;display:block}
.stock-thumb-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#ad9f88;font-size:8px;text-align:center;gap:3px;width:100%;height:100%;padding:4px}
.stock-thumb-placeholder .ph-icon{font-size:20px;line-height:1}
.stock-card-content{flex:1;min-width:0}

/* 货品明细抽屉 & 通用全屏Sheet */
.sheet-dialog{position:fixed;inset:0;width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;padding:0;border:none;background:var(--bg);color:var(--ink);display:flex;flex-direction:column;z-index:999}
.sheet-dialog:not([open]){display:none}
.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.sheet-close{width:36px;height:36px;border:none;background:none;font-size:24px;color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center}
.sheet-title{text-align:center;flex:1}
.sheet-title b{display:block;font-size:15px}
.sheet-title small{display:block;color:var(--soft);font-size:10px}
.sheet-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px;-webkit-overflow-scrolling:touch}
.sheet-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);display:flex;gap:10px;position:sticky;bottom:0;z-index:10}
.sheet-foot button{flex:1;min-height:42px;font-size:12px;font-weight:700;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer}
.sheet-foot button.is-primary{background:var(--green);border-color:var(--green);color:#e2c993}

/* 明细区块样式 */
.detail-section{padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 4px 12px rgba(40,34,24,.02)}
.detail-section-title{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;color:#13231d;margin-bottom:10px;border-bottom:1px solid #f0ede6;padding-bottom:6px}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 12px}
.detail-grid.three-col{grid-template-columns:repeat(3,1fr)}
.detail-item{display:flex;flex-direction:column}
.detail-item span{color:var(--soft);font-size:9px}
.detail-item strong{font-size:11px;color:var(--ink);margin-top:2px;word-break:break-all}
.detail-cost-card{border-color:#e0d0b0;background:#faf7f0}
.detail-cost-card .detail-section-title{color:#89672d}
.detail-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.detail-gallery img{width:100%;aspect-ratio:1;border-radius:6px;object-fit:cover;border:1px solid var(--line-soft);background:#eee}

/* 单据与报表打印入口 */
.report-print-section{margin-top:12px}
.print-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.print-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 6px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;text-align:center}
.print-action-btn:active{background:#f5f2eb}
.print-action-btn .btn-icon{font-size:20px;color:#355c4a;margin-bottom:4px}
.print-action-btn b{font-size:11px;color:#13231d}
.print-action-btn small{font-size:8px;color:var(--soft);margin-top:2px;white-space:nowrap}
.print-preview-toolbar{display:flex;gap:8px;padding:10px 16px;background:#f3f0e8;border-bottom:1px solid var(--line)}
.print-preview-toolbar .tool-btn{flex:1;min-height:36px;font-size:11px;font-weight:700;border:1px solid #bfb299;border-radius:6px;background:#fff;color:#6b5329;cursor:pointer}
.print-preview-toolbar .tool-btn.is-primary{background:var(--green);border-color:var(--green);color:#e2c993}
.print-preview-toolbar .tool-btn.is-highlight{background:#89672d;border-color:#745624;color:#fff;box-shadow:0 2px 6px rgba(137,103,45,.2)}

/* 打印单据模拟A4纸张画板（仿 Chrome 打印预览：深灰底色 + 白底A4实体纸张） */
.print-preview-dialog .sheet-body.print-preview-body{background:#525659;padding:16px 8px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.print-sheet-paper{background:#fff;padding:26px 22px;margin:0 auto;width:760px;min-width:760px;box-shadow:0 4px 24px rgba(0,0,0,.35);font-size:9px;color:#111;line-height:1.35;font-family:"Songti SC",STSong,"SimSun","宋体",Georgia,serif}
.print-sheet-paper h2,.print-sheet-paper .report-title h3{font-size:20px;text-align:center;margin:0 0 6px;font-family:"Songti SC",STSong,Georgia,serif;font-weight:700;color:#111;letter-spacing:1px}
.print-sheet-paper .print-meta{display:flex;justify-content:space-between;color:#555;font-size:9px;margin-bottom:12px;border-bottom:1px solid #222;padding-bottom:5px}
.print-sheet-paper .report-subtitle{text-align:center;color:#444;font-size:10px;margin-bottom:14px;font-family:-apple-system,BlinkMacSystemFont,sans-serif}
.print-sheet-paper .report-section h4,.print-sheet-paper .print-section-title{font-size:13px;font-weight:700;margin:16px 0 6px;font-family:"Songti SC",STSong,serif;color:#111}
.print-sheet-paper table{width:100%;border-collapse:collapse;margin:6px 0 12px;font-size:8.5px}
.print-sheet-paper th,.print-sheet-paper td{border:1px solid #777;padding:4px 3px;text-align:left;vertical-align:middle}
.print-sheet-paper th{background:#f0ede6;font-weight:700;text-align:center;color:#222}
.print-sheet-paper .text-right{text-align:right}
.print-sheet-paper .text-center{text-align:center}
.print-sheet-paper .text-left{text-align:left}

/* 进销存汇总：电脑端17列标准大表 */
.print-sheet-paper .report-flow-table{table-layout:fixed;width:100%;font-size:7.5px;line-height:1.25}
.print-sheet-paper .report-flow-table thead tr:first-child th{background:#eae4d7!important;color:#282721!important;font-size:7.5px;border-right:1px solid #999}
.print-sheet-paper .report-flow-table thead tr:nth-child(2) th{background:#f5f1e8!important;font-size:7px;border-right:1px solid #bbb}
.print-sheet-paper .report-flow-table tbody td{padding:3px 1px;text-align:center;word-break:break-all}
.print-sheet-paper .report-flow-table tbody td:first-child{width:13%;text-align:left;font-weight:600;padding-left:3px;word-break:normal}
.print-sheet-paper .report-flow-table .report-flow-total td{font-weight:700;background:#eeeae1!important;border-top:1.5px solid #282721;color:#111}
.print-sheet-paper .report-flow-table .report-value-missing{color:#bbb}
.print-sheet-paper .report-note{font-size:8px;color:#555;margin-top:6px;line-height:1.4}

/* 销售出库单：电脑端标准大表与内嵌明细表 */
.print-sheet-paper .report-sales-summary-table{width:100%;border-collapse:collapse;margin:4px 0 14px;font-size:8.5px;border-top:1.5px solid #222;border-bottom:1.5px solid #222}
.print-sheet-paper .report-sales-summary-table > thead th{background:#f4f2ee;border-bottom:1px solid #777;padding:6px 6px;font-weight:700;color:#222}
.print-sheet-paper .report-document-row td{padding:6px 6px;border-bottom:1px solid #ddd;vertical-align:middle}
.print-sheet-paper .report-document-row td b{color:#13231d}
.print-sheet-paper .report-sales-detail-row > td{padding:2px 4px 8px;background:#fff;border-bottom:1px solid #bbb}
.print-sheet-paper .report-sales-line-table{width:100%;border-collapse:collapse;border:1px solid #777;font-size:8px;margin:2px 0 4px}
.print-sheet-paper .report-sales-line-table th{background:#faf8f5;border:1px solid #bbb;padding:4px 5px;font-weight:600;color:#333}
.print-sheet-paper .report-sales-line-table td{border:1px solid #ccc;padding:4px 5px;background:#fff}
.print-sheet-paper .report-sales-total-row td{background:#faf8f5;border-top:1.5px solid #555;border-bottom:1.5px solid #555;padding:6px 6px;font-weight:700;font-size:9.5px}

/* 库存期初期末对账表 */
.print-sheet-paper .report-stock-comparison-table{width:100%;border-collapse:collapse;margin:4px 0 14px;font-size:8.5px;border-top:1.5px solid #222;border-bottom:1.5px solid #222}
.print-sheet-paper .report-stock-comparison-table th{background:#f4f2ee;border:1px solid #777;padding:5px 4px;font-weight:700}
.print-sheet-paper .report-stock-comparison-table td{border:1px solid #bbb;padding:5px 4px;text-align:right}
.print-sheet-paper .report-stock-comparison-table td:first-child{text-align:left;font-weight:600}

.print-sheet-paper .print-totals{display:flex;justify-content:space-between;font-weight:700;font-size:10px;padding:8px 6px;border-top:1.5px solid #222;border-bottom:1px solid #222;margin-bottom:12px;background:#faf8f5}
.print-sheet-paper .print-signs{display:flex;justify-content:space-between;margin-top:16px;font-size:9.5px;padding-top:10px;border-top:1px dashed #bbb}
.print-sheet-paper .print-signs span{min-width:130px}

/* 大图全屏预览 */
.image-preview-dialog{position:fixed;inset:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;margin:0;padding:0;border:none;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;z-index:1000}
.image-preview-dialog:not([open]){display:none}
.image-preview-content{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}
.image-preview-content img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:6px}
.image-preview-close{position:absolute;top:calc(16px + env(safe-area-inset-top));right:16px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.25);color:#fff;border:none;font-size:24px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.image-preview-caption{margin-top:12px;color:#eee;font-size:12px;text-align:center}

