/* 橙岛 ERP · 商品管理 批量改价 / 改库存 */
.ps-page .ps-actions { display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.ps-selinfo { font-size: 12px; color: var(--muted); margin-right: 4px; }
.ps-selinfo b { color: var(--yj-purple, #6d28d9); }
.ps-q-on { border-color: var(--yj-purple, #6d28d9) !important; color: var(--yj-purple, #6d28d9) !important; }
.ps-note { display: flex; align-items: flex-start; gap: 6px; margin: 10px 16px 0; padding: 8px 10px; border-radius: 6px; font-size: 12px; background: var(--hover, #f5f5f7); color: var(--text); line-height: 1.5; }
.ps-note.warn { background: #fff7e6; color: #8a5300; }
.ps-table td { vertical-align: middle; }
.ps-table .ps-ck { width: 36px; text-align: center; }
.ps-table tr.ps-sel td { background: var(--yj-purple-soft, #f4efff); }
.ps-cell { display: inline-flex; align-items: center; gap: 2px; height: 28px; padding: 0 6px; border: 1px solid var(--line-strong, #d9d9de); border-radius: 6px; background: var(--surface, #fff); width: 104px; box-sizing: border-box; }
.ps-cell span { color: var(--muted); font-size: 12px; }
.ps-cell input { border: 0; outline: 0; background: transparent; width: 100%; min-width: 0; font: inherit; font-size: 13px; color: var(--text); font-variant-numeric: tabular-nums; }
.ps-cell:focus-within { border-color: var(--yj-purple, #6d28d9); box-shadow: 0 0 0 2px rgba(109, 40, 217, .12); }
.ps-cell.ps-dirty { border-color: #f59e0b; background: #fffbeb; }
.ps-cell-stock { width: 76px; }
.ps-cell.ps-wide { width: 220px; }
.ps-cell.ps-mini { width: 72px; }
.ps-stock-btn { min-width: 60px; height: 28px; padding: 0 8px; border: 1px dashed var(--line-strong, #d9d9de); border-radius: 6px; background: transparent; color: var(--text); cursor: pointer; font-variant-numeric: tabular-nums; display: inline-flex; align-items: center; gap: 4px; }
.ps-stock-btn small { color: var(--muted); font-size: 11px; }
.ps-stock-btn:disabled { cursor: not-allowed; opacity: .55; }
.ps-stock-btn:hover:not(:disabled) { border-color: var(--yj-purple, #6d28d9); }
.ps-mask { position: fixed; inset: 0; background: rgba(15, 15, 20, .32); z-index: 900; }
.ps-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(820px, 96vw); background: var(--surface, #fff); z-index: 901; display: flex; flex-direction: column; box-shadow: -8px 0 28px rgba(0, 0, 0, .14); color: var(--text); }
.ps-drawer > header, .ps-dialog > header { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); font-size: 15px; }
.ps-drawer > header .ps-x, .ps-dialog > header .ps-x { margin-left: auto; }
.ps-drawer .yj-seg { margin: 12px 18px 0; }
.ps-tip { margin: 8px 18px 0; font-size: 12px; color: var(--muted); line-height: 1.6; }
.ps-q-body { flex: 1; overflow: auto; padding: 10px 18px; }
.ps-q-table td { vertical-align: top; font-size: 12px; }
.ps-q-name { max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.ps-old { color: var(--muted); text-decoration: line-through; font-variant-numeric: tabular-nums; }
.ps-arrow { margin: 0 4px; color: var(--muted); }
.ps-new { font-variant-numeric: tabular-nums; padding: 1px 4px; border-radius: 4px; }
.ps-new.up { background: #e8f7ee; color: #067647; }
.ps-new.down { background: #fdecec; color: #b42318; }
.ps-pct { margin-left: 4px; font-size: 11px; }
.ps-pct.up { color: #067647; } .ps-pct.down { color: #b42318; }
.ps-flags { max-width: 220px; }
.ps-flag { display: inline-block; margin: 0 4px 4px 0; padding: 1px 6px; border-radius: 4px; font-size: 11px; line-height: 18px; background: var(--hover, #f2f2f5); color: var(--muted); }
.ps-flag.err { background: #fdecec; color: #b42318; }
.ps-flag.warn { background: #fff4e0; color: #9a5b00; }
.ps-flag.ok { background: #e8f7ee; color: #067647; }
.ps-row-err td { background: #fff6f6; }
.ps-row-warn td { background: #fffcf3; }
.ps-x { width: 26px; height: 26px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-size: 18px; line-height: 1; cursor: pointer; }
.ps-x:hover { background: var(--hover); color: var(--text); }
.ps-drawer > footer, .ps-dialog > footer { display: flex; align-items: center; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--line); font-size: 12px; color: var(--muted); }
.ps-drawer > footer > span:first-child { display: inline-flex; align-items: center; gap: 4px; }
.ps-dry { color: #9a5b00; }
.ps-dialog > footer { justify-content: flex-end; }
.ps-result { margin: 10px 18px 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.ps-result-head { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--hover, #f7f7f9); font-size: 13px; }
.ps-result-head em { font-style: normal; }
.ps-result-head .ok, .ps-h .ok { color: #067647; } .ps-result-head .err, .ps-h .err { color: #b42318; }
.ps-result-head .yj-btn { margin-left: auto; }
.ps-result-body { max-height: 220px; overflow: auto; }
.ps-result-body td { font-size: 12px; }
.ps-dialog { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(620px, 94vw); max-height: 90vh; overflow: auto; background: var(--surface, #fff); color: var(--text); border-radius: 10px; z-index: 901; box-shadow: 0 18px 48px rgba(0, 0, 0, .2); }
.ps-dialog > header small { color: var(--muted); font-size: 12px; }
.ps-form { padding: 14px 18px 4px; }
.ps-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; font-size: 13px; }
.ps-row > span:first-child { width: 64px; color: var(--muted); flex: none; }
.ps-radio { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.ps-form .ps-tip { margin: 4px 0 10px; }
.ps-h { border-bottom: 1px solid var(--line); }
.ps-h { padding: 0 16px; }
.ps-h summary { display: flex; gap: 14px; align-items: center; padding: 10px 0; cursor: pointer; font-size: 13px; }
.ps-h table { margin: 0 0 12px; }
.ps-h td { font-size: 12px; }
body.dark .ps-note.warn, [data-theme="dark"] .ps-note.warn { background: #3a2c10; color: #f5c46b; }
body.dark .ps-cell.ps-dirty, [data-theme="dark"] .ps-cell.ps-dirty { background: #3a2c10; }
body.dark .ps-row-err td, [data-theme="dark"] .ps-row-err td { background: #3a1616; }
body.dark .ps-row-warn td, [data-theme="dark"] .ps-row-warn td { background: #33290f; }
.ps-q-table, .ps-result-body table, .ps-h table { width: 100%; border-collapse: collapse; }
.ps-q-table th, .ps-q-table td, .ps-result-body td, .ps-h th, .ps-h td { padding: 8px 8px; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
.ps-q-table th, .ps-h th { font-size: 12px; font-weight: 500; color: var(--muted); background: var(--surface-muted, #fafafa); position: sticky; top: 0; z-index: 1; }
.ps-q-table td.ps-flags { white-space: normal; }
.ps-result-body td:last-child, .ps-h td:last-child { white-space: normal; }
.ps-drawer .yj-seg { align-self: flex-start; }
