.ant-input,.ant-input-affix-wrapper,.ant-input-number,.ant-select-selector,.ant-picker{min-height:40px!important;font-size:15px!important;border-radius:8px!important;transition:all .25s ease-out!important}.ant-input:focus,.ant-input-affix-wrapper-focused,.ant-input-number-focused,.ant-select-focused .ant-select-selector,.ant-picker-focused{box-shadow:0 0 0 2px #1677ff33!important;border-color:#1677ff!important}.ant-btn{min-height:44px!important;padding:8px 24px!important;font-size:15px!important;border-radius:8px!important;font-weight:600!important;transition:all .25s cubic-bezier(.645,.045,.355,1)!important}.ant-btn-primary{box-shadow:0 2px 8px #1677ff59!important}.ant-btn-primary:hover{transform:translateY(-1px)!important;box-shadow:0 4px 12px #1677ff73!important}.ant-btn-primary:active{transform:translateY(0)!important;box-shadow:0 2px 6px #1677ff4d!important}.ant-btn-sm{min-height:32px!important;padding:4px 12px!important;font-size:13px!important}.ant-form-item-explain-error,.ant-form-item-explain .ant-form-item-explain-error,.ant-form-item .ant-form-item-explain-error,div[class*=explain-error],[class*=form-item-explain] [class*=error]{color:#ff4d4f!important;font-size:13px!important;font-weight:500!important;animation:shakeError .4s ease-in-out!important}.ant-form-item-explain-error span,.ant-form-item-explain-error div,.ant-form-item-explain [role=alert]{color:#ff4d4f!important}.ant-form-item-has-error .ant-input,.ant-form-item-has-error .ant-input-affix-wrapper,.ant-form-item-has-error .ant-picker{border-color:#ff4d4f!important;background-color:#fff2f0!important}@keyframes shakeError{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.ant-alert-error{border-radius:8px!important;animation:slideDown .3s ease-out!important}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.ant-form-item-label>label{font-weight:600!important;color:#262626!important;font-size:14px!important}.login-brand .ant-typography{color:#001529!important}.login-brand-sub{color:#434343!important;font-weight:500!important}: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--241{max-width:241mm;margin:0 auto;padding:10mm 8mm;min-height:120mm}.print-sheet--241 .print-copy-title{font-size:14px;font-weight:600;color:#555}@media print{.print-sheet--241{max-width:none;width:241mm;min-height:139mm;page-break-after:always;padding:6mm 8mm}.print-sheet--241:last-child{page-break-after:auto}}.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}.ant-table-empty .ant-table-content,.ant-table-empty .ant-table-body,.ant-table-empty .ant-table-header{overflow-x:hidden!important}.ant-table-empty .ant-table-content table{width:100%!important;min-width:0!important}
