:root{--dim-space-1: 4px;--dim-space-2: 8px;--dim-space-3: 12px;--dim-space-4: 16px;--dim-space-5: 24px;--dim-font-xs: 12px;--dim-font-sm: 13px;--dim-font-md: 14px;--dim-font-lg: 16px;--dim-font-xl: 20px;--dim-primary: #1677ff;--dim-success: #52c41a;--dim-warning: #fa8c16;--dim-danger: #cf1322;--dim-info: #1677ff;--dim-text: var(--dim-text);--dim-text-secondary: var(--dim-text-secondary);--dim-text-tertiary: var(--dim-text-tertiary);--dim-border: #d9d9d9;--dim-border-light: #eaecef;--dim-bg-page: #f5f6f8;--dim-bg-hover: var(--dim-bg-hover)}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;background:var(--dim-bg-page);color:var(--dim-text)}.app-shell{min-height:100vh}.app-main{min-height:100vh;display:flex;flex-direction:column}.app-content{flex:1 1 auto;min-height:calc(100vh - 56px);padding:16px 20px 24px;display:flex;flex-direction:column}.app-content>.table-card,.app-content>.ant-space{flex:1 1 auto}.table-card{display:flex;flex-direction:column}.table-card>.ant-card-body{flex:1 1 auto}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef3ff,#f7f9fc 55%,#eaf7f1);padding:24px}.login-card{width:100%;max-width:420px;box-shadow:0 12px 32px #0f235f1f;border-radius:12px}.login-brand{text-align:center;margin-bottom:4px}.login-brand-sub{text-align:center;color:var(--dim-text-secondary);font-size:13px;margin-bottom:20px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#fff;border-bottom:1px solid #eaecef;height:56px;line-height:normal;flex:0 0 56px}.app-header-left{display:flex;align-items:center;gap:12px;min-width:0}.app-header-right{display:flex;align-items:center;gap:12px}.app-logo{font-weight:700;font-size:16px;color:#1677ff;white-space:nowrap}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.page-head h2{margin:0;font-size:18px}.page-head .page-desc{color:var(--dim-text-secondary);font-size:12px;margin-top:2px}.menu-planned{display:inline-flex;align-items:center;gap:6px;color:var(--dim-text-secondary)}.menu-planned-badge{margin-inline-end:0;font-size:11px;line-height:16px;padding:0 4px;color:var(--dim-text-secondary);background:var(--dim-bg-hover);border-color:#d9d9d9}.wrap-cell{white-space:normal;word-break:break-all}.nowrap-cell{white-space:nowrap}.totals-row td{background:var(--dim-bg-hover);font-weight:600}.totals-label{text-align:right;color:var(--dim-text-secondary)}.kpi-card{height:100%}.kpi-card-warn{border-color:#ffd591;background:#fffaf0}.kpi-title{color:var(--dim-text-secondary);font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:8px}.kpi-extra{font-size:11px;color:var(--dim-text-tertiary)}.kpi-value{font-size:26px;font-weight:600;line-height:1.3;margin-top:6px;color:var(--dim-text);font-variant-numeric:tabular-nums}.kpi-value-loading{color:#bfbfbf}.kpi-value-error{color:var(--dim-text-tertiary)}.kpi-hint{color:var(--dim-text-secondary);font-size:11px;margin-top:4px;min-height:16px}.chart-empty{color:var(--dim-text-secondary);text-align:center;padding:48px 0}.ant-input::placeholder,.ant-input-affix-wrapper input::placeholder,textarea.ant-input::placeholder,.ant-select-selection-placeholder,.ant-picker-input>input::placeholder,.ant-input-number-input::placeholder{color:var(--dim-text-secondary)!important;opacity:1}.bill-row-highlight>td{background:#fffbe6!important;box-shadow:inset 3px 0 #faad14!important}.print-sheet{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:24px 28px;color:#222}.print-title{margin:0 0 4px;font-size:20px;text-align:center}.print-head .print-sub{display:flex;gap:24px;flex-wrap:wrap;color:#444;font-size:13px;margin-bottom:4px}.print-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13px}.print-table th,.print-table td{border:1px solid #bbb;padding:6px 8px;text-align:left}.print-table th{background:#f5f5f5}.print-words{font-size:14px;margin:10px 0}.print-words-value{font-weight:600;letter-spacing:1px}.print-remark{color:#444;font-size:13px;margin:8px 0}.print-foot{display:flex;justify-content:space-between;color:#777;font-size:12px;margin-top:18px;border-top:1px dashed #ccc;padding-top:8px}.print-sign{display:flex;gap:24px;margin-top:22px;font-size:13px;color:#333}.print-sign span:nth-child(3){flex:1}.print-copy{margin-bottom:20px}.print-copy:last-child{margin-bottom:0}.print-sheet--58mm{max-width:58mm;margin:0 auto;padding:12px 10px;font-size:12px}.print-sheet--58mm .print-title{font-size:15px}.print-sheet--58mm .print-table{font-size:11px;margin:8px 0}.print-sheet--58mm .print-table th,.print-sheet--58mm .print-table td{padding:3px 4px}.print-sheet--58mm .print-sign{margin-top:12px}.print-sheet--label{max-width:500px}.print-label{border:1px dashed #ccc;border-radius:4px;padding:8px 10px;margin-bottom:10px;page-break-inside:avoid}.print-label-name{font-size:13px;margin-bottom:4px;word-break:break-all}.print-label-barcode{display:block;max-width:100%}@media print{.ant-layout-sider,.app-header,.no-print{display:none!important}body{background:#fff!important}.app-content{padding:0!important;overflow:visible!important}.print-sheet{border:none;border-radius:0;padding:0}.print-copy{margin-bottom:0;page-break-after:always}.print-copy:last-child{page-break-after:auto}.print-sheet--58mm{max-width:58mm;padding:0}.print-table thead{display:table-header-group}.print-table tr{page-break-inside:avoid}}.diff-table{width:100%;border-collapse:collapse;font-size:12px}.diff-table th,.diff-table td{border:1px solid #e5e5e5;padding:4px 8px;text-align:left;word-break:break-all}.diff-table th{background:var(--dim-bg-hover)}.diff-before{background:#fff1f0;color:#a8071a}.diff-after{background:#f6ffed;color:#135200}
