/**
 * 四联单据共享样式（开单页 / 预览 / 打印共用）
 * 241mm 票据纸，左右各 8mm 避让，内容区 225mm；开单页操作列额外 12mm
 */
*, *::before, *::after { box-sizing: border-box; }

:root {
    --doc-paper-width: 241mm;
    --doc-page-margin-x: 8mm;
    --doc-page-margin-y: 8mm;
    --doc-content-width: calc(var(--doc-paper-width) - var(--doc-page-margin-x) * 2);
    --doc-action-col-width: 12mm;
    --doc-entry-frame-width: calc(var(--doc-content-width) + var(--doc-action-col-width));
}

/* ===== 打印 / 预览页面 body ===== */
body.doc-body {
    font-family: "SimSun", "宋体", serif;
    font-size: 12px;
    color: #000;
    background: #fff;
    padding: var(--doc-page-margin-y) var(--doc-page-margin-x);
    width: var(--doc-paper-width);
    margin: 0 auto;
    box-sizing: border-box;
}

body.doc-body.doc-embed {
    width: 100%;
    max-width: var(--doc-paper-width);
    padding: var(--doc-page-margin-y) var(--doc-page-margin-x);
    margin: 0 auto;
}

/* ===== 开单页外框：数据区 225mm + 操作列 12mm ===== */
.doc-entry-frame {
    width: min(var(--doc-entry-frame-width), 100%);
    margin-left: auto;
    margin-right: auto;
}

.doc-sheet {
    width: 100%;
    box-sizing: border-box;
}

.doc-header {
    display: table;
    width: 100%;
    margin-bottom: 4px;
}

.doc-title {
    display: table-cell;
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 2px;
    width: 85%;
}

.doc-page {
    display: table-cell;
    text-align: right;
    font-size: 11px;
    vertical-align: bottom;
    width: 15%;
    color: #555;
    white-space: nowrap;
}

.doc-meta {
    margin-bottom: 8px;
    display: grid;
    grid-template-columns: auto 1fr auto 1fr auto;
    row-gap: 10px;
    align-items: center;
    padding: 10px 0;
    line-height: 1.8;
    width: 100%;
}

.doc-meta-item {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    font-size: 12px;
}

.doc-meta-item label,
.doc-meta-item .lbl {
    flex-shrink: 0;
    min-width: 72px;
    text-align: right;
}

.doc-meta-left { grid-column: 1; justify-self: start; }
.doc-meta-center { grid-column: 3; justify-self: start; }
.doc-meta-right { grid-column: 5; justify-self: start; }

.doc-summary-tr td {
    padding: 8px 6px;
    vertical-align: middle;
}

.doc-sheet-footer {
    padding-top: 10px;
    width: 100%;
}

.doc-sig-block {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px 36px;
    padding: 12px 0 0;
    font-size: 12px;
    width: 100%;
    box-sizing: border-box;
}

.doc-sig-item {
    flex: 0 0 auto;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

.doc-sig-item label {
    flex-shrink: 0;
}

.doc-sig-item.doc-sig-creator .sig-val {
    max-width: 9em;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
    vertical-align: bottom;
}

.doc-sig-item.doc-sig-remark .sig-val {
    max-width: 12em;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-block;
    vertical-align: bottom;
    white-space: nowrap;
}

/* ===== 明细表格（开单页与打印共用类名 items-table） ===== */
.items-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
    table-layout: fixed;
}

.items-table th,
.items-table td {
    border: 1px solid #000;
    padding: 7px 4px;
    font-size: 11px;
    vertical-align: middle;
    word-break: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
}

.items-table th {
    background: #f0f0f0;
    text-align: center;
    font-weight: bold;
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
}

.items-table th.doc-cell-wrap,
.items-table td.doc-cell-wrap {
    white-space: normal;
    word-break: break-word;
    overflow-wrap: break-word;
}

.items-table thead th.doc-cell-wrap {
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
}

.items-table th.doc-cell-amount,
.items-table td.doc-cell-amount {
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: center;
}

.items-table th.doc-cell-left,
.items-table td.doc-cell-left {
    text-align: left !important;
}

.items-table th.doc-cell-center,
.items-table td.doc-cell-center {
    text-align: center !important;
}

.items-table th.doc-cell-action,
.items-table td.doc-cell-action {
    white-space: nowrap;
    padding: 2px 4px;
    width: 5%;
    min-width: 42px;
    max-width: 52px;
    text-align: center;
}

.items-table .c { text-align: center; }
.items-table .r { text-align: right; }
.items-table .doc-total-amt { text-align: center; }

.items-table tbody td,
.items-table tfoot td {
    background-color: #fff;
}

.items-table tbody tr:not(.doc-add-row) td:last-child,
.items-table tfoot td:last-child {
    background-color: #f5f5f5;
}

.items-table tbody tr.doc-empty-row {
    height: 34px;
}

.items-table tfoot td {
    font-weight: bold;
    background: #f8f8f8;
}

.bold { font-weight: bold; }

.footer-contact {
    text-align: center;
    font-size: 11px;
    margin-top: 10px;
    padding: 3px 0;
    line-height: 1.6;
}

.print-note {
    margin-top: 8px;
    font-size: 11px;
    line-height: 1.6;
}

.print-note-center {
    text-align: center;
    padding: 0 12px;
}

.print-note span { font-weight: bold; }

/* ===== 开单页专用（Element Plus 控件 + 编辑交互） ===== */
.erp-doc-sheet {
    --el-border-radius-base: 0;
    --el-input-border-radius: 0;
    background: #fff;
    padding: var(--doc-page-margin-y) var(--doc-page-margin-x);
    font-family: SimSun, 宋体, serif;
    font-size: 12px;
    display: flow-root;
    min-width: 0;
    overflow-x: clip;
}

.erp-doc-sheet .el-input__wrapper,
.erp-doc-sheet .el-select__wrapper,
.erp-doc-sheet .el-date-editor .el-input__wrapper,
.erp-doc-sheet .el-input-number .el-input__wrapper {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 2px !important;
    min-height: 22px;
}

.erp-doc-sheet .el-input__wrapper:hover,
.erp-doc-sheet .el-input__wrapper.is-focus,
.erp-doc-sheet .el-select__wrapper:hover,
.erp-doc-sheet .el-select__wrapper.is-focused,
.erp-doc-sheet .el-date-editor .el-input__wrapper:hover,
.erp-doc-sheet .el-date-editor .el-input__wrapper.is-focus {
    box-shadow: none !important;
}

.erp-doc-sheet .el-input,
.erp-doc-sheet .el-select,
.erp-doc-sheet .el-date-editor,
.erp-doc-sheet .el-input-number {
    width: 100%;
}

.erp-doc-sheet .el-input-number .el-input__wrapper {
    padding-left: 2px !important;
    padding-right: 2px !important;
}

.erp-doc-sheet .doc-order-picker-input,
.erp-doc-sheet .doc-order-picker-input .el-input__wrapper {
    cursor: pointer;
}

.erp-doc-sheet .doc-meta-item .el-date-editor .el-input__prefix {
    display: none;
}

.erp-doc-sheet .doc-meta-item .el-date-editor .el-input__wrapper {
    padding-left: 8px !important;
}

.erp-doc-sheet .doc-table-meta-field {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    min-width: 0;
}

.erp-doc-sheet .doc-sheet-footer {
    padding-bottom: 4px;
    background: #fff;
}

.erp-doc-sheet .doc-sig-block {
    font-size: 12px;
    color: #303133;
    background: #fff;
    padding: 12px 0 0;
}

.erp-doc-sheet .doc-sig-item {
    text-align: left;
}

.erp-doc-sheet .doc-sig-item.doc-sig-remark {
    gap: 6px;
}

.erp-doc-sheet .doc-sig-remark-input {
    flex: none;
    width: 12em !important;
    min-width: 12em;
    max-width: 12em;
}

.erp-doc-sheet .doc-sig-picker .el-select {
    width: 9em !important;
}

.erp-doc-sheet .doc-discount-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 20px;
    padding: 8px 6px;
    background: #fffbe6;
    border: 1px solid #ffe58f;
    border-top: 0;
    margin-bottom: 6px;
    font-size: 12px;
    line-height: 1.5;
    color: #303133;
}

.erp-doc-sheet .doc-discount-bar .doc-discount-value {
    font-weight: 600;
}

.erp-doc-sheet .doc-discount-bar .doc-discount-pay {
    font-weight: 600;
    color: #c0392b;
}

.erp-doc-sheet .doc-discount-bar .doc-discount-hint {
    color: #909399;
}

.erp-doc-sheet .doc-discount-bar .el-input-number {
    width: 130px;
    flex: none;
}

.erp-doc-sheet .items-table td:not(.doc-cell-amount):not(.doc-cell-action) {
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: break-word;
}

.erp-doc-sheet .items-table td.doc-cell-wrap .el-input,
.erp-doc-sheet .items-table td.doc-cell-wrap .el-input-number {
    width: 100%;
}

.erp-doc-sheet .items-table td.doc-cell-wrap .el-input__wrapper,
.erp-doc-sheet .items-table td.doc-cell-wrap .el-input-number .el-input__wrapper {
    height: auto !important;
    min-height: 28px;
    align-items: flex-start;
}

.erp-doc-sheet .items-table td.doc-cell-wrap .el-input__inner {
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
    height: auto !important;
    min-height: 22px;
}

.erp-doc-sheet .items-table td.doc-cell-center .el-input__inner,
.erp-doc-sheet .items-table td.doc-cell-center .el-input-number .el-input__inner,
.erp-doc-sheet .items-table td.doc-cell-center input {
    text-align: center;
}

.erp-doc-sheet .items-table td.doc-cell-left .el-input__inner {
    text-align: left;
}

.erp-doc-sheet .items-table .el-input__wrapper,
.erp-doc-sheet .items-table .el-select__wrapper,
.erp-doc-sheet .items-table .el-date-editor .el-input__wrapper,
.erp-doc-sheet .items-table .el-input-number .el-input__wrapper {
    min-height: 28px;
}

.erp-doc-sheet .doc-qty-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
}

.erp-doc-sheet .doc-qty-hint {
    font-size: 10px;
    color: #e6a23c;
    line-height: 1.2;
    white-space: nowrap;
}

.page-container.doc-entry-page {
    padding: 16px 20px 28px;
    min-width: 0;
    overflow-x: clip;
}

.page-container.doc-entry-page .page-header {
    margin-bottom: 12px;
}

/* 预览弹窗：与票据纸同宽 */
.doc-preview-dialog {
    --el-dialog-width: min(var(--doc-paper-width), 98vw) !important;
}

.doc-preview-dialog .el-dialog__body {
    padding: 8px 12px 16px;
}

.doc-preview-dialog iframe {
    width: var(--doc-paper-width);
    max-width: 100%;
    margin: 0 auto;
    display: block;
}

@media print {
    @page {
        size: var(--doc-paper-width) auto;
        margin: var(--doc-page-margin-y) var(--doc-page-margin-x);
    }
    body.doc-body,
    body.doc-body.doc-embed {
        width: auto;
        max-width: none;
        padding: 0;
        margin: 0;
    }
    .no-print { display: none; }
}
