body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:#f5f7fa}.brand{color:#fff;font-weight:700;letter-spacing:.5px;padding:18px 20px 10px;font-size:16px}.brand small{display:block;font-weight:400;font-size:12px;opacity:.65;margin-top:2px}.sev-red{color:#cf1322;font-weight:600}.sev-yellow{color:#d46b08;font-weight:600}.sev-green{color:#389e0d}.dvi-card{border-left:4px solid #d9d9d9}.dvi-card.red{border-left-color:#cf1322}.dvi-card.yellow{border-left-color:#fa8c16}.dvi-card.green{border-left-color:#52c41a}.print-sheet{width:210mm;min-height:140mm;margin:20px auto;padding:14mm 12mm;background:#fff;box-shadow:0 2px 12px #0000001f;font-size:13px;color:#222}.print-sheet.receipt-sheet{width:80mm;min-height:auto;padding:8mm 6mm;font-family:Consolas,Courier New,monospace;font-size:12px}.receipt-line{display:flex;justify-content:space-between;gap:6px;line-height:1.8}.receipt-sep{border-top:1px dashed #999;margin:6px 0}.doc-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #222;padding-bottom:8px;margin-bottom:10px}.doc-meta{width:100%;border-collapse:collapse;margin-bottom:10px;font-size:12px}.doc-meta td{border:1px solid #ddd;padding:6px 8px}.doc-table{width:100%;border-collapse:collapse;font-size:12px}.doc-table th,.doc-table td{border:1px solid #ddd;padding:6px 8px}.doc-table th{background:#fafafa;text-align:left}.sign-row{display:flex;justify-content:space-between;gap:16px;margin-top:24px;font-size:12px}@page{size:A4;margin:0}@media print{body{background:#fff}.no-print{display:none!important}.print-sheet{margin:0;box-shadow:none;width:auto;min-height:auto;padding:10mm}}.m-app{max-width:480px;margin:0 auto;min-height:100vh;background:#f2f4f7;color:#1f2d3d;font-size:14px;padding-bottom:calc(62px + env(safe-area-inset-bottom));-webkit-tap-highlight-color:transparent}.m-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;padding:14px 16px;color:#fff;background:linear-gradient(135deg,#0b3d6b,#1677ff);box-shadow:0 2px 10px #0f3d6b2e}.m-header .m-back{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:-6px;border-radius:8px;color:#fff;font-size:18px;text-decoration:none;flex:0 0 32px}.m-header .m-head-main{flex:1;min-width:0}.m-header .m-title{margin:0;font-size:18px;font-weight:700;line-height:1.3;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-header .m-sub{margin-top:2px;font-size:12px;opacity:.82;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-header .m-right{display:flex;align-items:center;gap:12px;font-size:13px;flex:0 0 auto}.m-header .m-right a{color:#fff;text-decoration:none}.m-body{display:flex;flex-direction:column;gap:12px;padding:12px}.m-card{background:#fff;border-radius:14px;padding:14px;box-shadow:0 1px 6px #0f233c0d}.m-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.m-card-head .t{font-size:15px;font-weight:600}.m-card-head .more{font-size:12px;color:#1677ff;text-decoration:none;white-space:nowrap}.m-tip{font-size:12px;color:#8c9aa8;line-height:1.6}.m-empty{padding:22px 0;text-align:center;font-size:13px;color:#98a6b4}.m-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.m-kpi{background:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 1px 6px #0f233c0d}.m-kpi .t{font-size:12px;color:#8c9aa8}.m-kpi .v{margin-top:4px;font-size:22px;font-weight:700;color:#0b3d6b;line-height:1.2}.m-kpi .s{margin-top:2px;font-size:11px;color:#9aa7b4}.m-kpi.warn .v{color:#cf1322}.m-todo-row{display:flex;align-items:center;gap:10px;padding:12px 2px;color:inherit;text-decoration:none;border-bottom:1px solid #f1f4f8}.m-todo-row:last-child{border-bottom:none}.m-todo-row .ic{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#eef4ff;color:#1677ff;font-size:16px}.m-todo-row .ic.warn{background:#fff4e6;color:#d46b08}.m-todo-row .ic.danger{background:#fff1f0;color:#cf1322}.m-todo-row .txt{flex:1;min-width:0}.m-todo-row .txt b{font-size:14px;font-weight:600}.m-todo-row .txt span{display:block;margin-top:2px;font-size:12px;color:#8c9aa8}.m-todo-row .num{font-size:18px;font-weight:700;color:#1677ff}.m-todo-row .num.danger{color:#cf1322}.m-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.m-quick a,.m-quick button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border:none;border-radius:12px;background:#fff;color:#26343f;font-size:12px;text-decoration:none;cursor:pointer;box-shadow:0 1px 6px #0f233c0d}.m-quick .qi{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#eef4ff;color:#1677ff;font-size:18px}.m-chip-row{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}.m-chip-row::-webkit-scrollbar{display:none}.m-chip{flex:0 0 auto;padding:7px 14px;border:1px solid #e3eaf3;border-radius:999px;background:#fff;color:#45525f;font-size:13px;cursor:pointer}.m-chip.active{background:#1677ff;border-color:#1677ff;color:#fff;font-weight:600}.m-chip.plain{background:#f7f9fc}.m-order{display:block;background:#fff;border-radius:14px;padding:14px;color:inherit;text-decoration:none;box-shadow:0 1px 6px #0f233c0f}.m-order .top{display:flex;align-items:center;justify-content:space-between;gap:8px}.m-order .plate{font-size:17px;font-weight:700;letter-spacing:.5px}.m-order .sub{margin-top:4px;font-size:12px;color:#8c9aa8}.m-order .desc{margin-top:8px;padding:8px 10px;border-radius:8px;background:#f7f9fc;font-size:13px;color:#45525f;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.m-order .bottom{display:flex;align-items:center;justify-content:space-between;margin-top:10px;font-size:13px}.m-order .bottom .due{font-size:16px;font-weight:700;color:#cf1322}.m-order .bottom .due.zero{color:#389e0d}.m-status{flex:0 0 auto;padding:3px 10px;border-radius:999px;background:#eef4ff;color:#1677ff;font-size:12px;font-weight:600;white-space:nowrap}.m-status.settled{background:#eaf7ea;color:#389e0d}.m-status.in_progress{background:#fff4e6;color:#d46b08}.m-status.completed{background:#e6f7ed;color:#237804}.m-status.approved{background:#e6fffb;color:#08979c}.m-status.draft{background:#f5f5f5;color:#8c8c8c}.m-status.canceled{background:#fff1f0;color:#cf1322}.m-line{display:flex;align-items:flex-start;gap:8px;padding:10px 0;border-bottom:1px solid #f1f4f8}.m-line:last-child{border-bottom:none}.m-line .main{flex:1;min-width:0}.m-line .main b{font-size:14px;font-weight:600}.m-line .main span{display:block;margin-top:2px;font-size:12px;color:#8c9aa8}.m-line .amt{font-size:15px;font-weight:700;white-space:nowrap}.m-line .del{font-size:12px;color:#cf1322;cursor:pointer;padding:4px}.m-money{display:flex;align-items:baseline;justify-content:space-between;padding:5px 0;font-size:13px;color:#5a6b7b}.m-money b{font-size:15px;color:#1f2d3d}.m-money .big{font-size:20px;color:#cf1322}.m-money .ok{color:#389e0d}.m-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:48px;padding:0 16px;border:1px solid #dce4ee;border-radius:12px;background:#fff;color:#1f2d3d;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer}.m-btn.primary{background:#1677ff;border-color:#1677ff;color:#fff}.m-btn.success{background:#389e0d;border-color:#389e0d;color:#fff}.m-btn.block{width:100%}.m-btn:disabled{opacity:.55;cursor:not-allowed}.m-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.m-actions .m-btn{height:46px;font-size:14px;font-weight:500}.m-tabbar{position:fixed;bottom:0;left:50%;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);width:100%;max-width:480px;transform:translate(-50%);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #e8edf3;background:#fffffff7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.m-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:58px;color:#7b8794;font-size:12px;text-decoration:none}.m-tab .mi{font-size:19px;line-height:1}.m-tab.active{color:#1677ff;font-weight:600}.m-app .ant-input,.m-app .ant-input-number,.m-app .ant-input-number-input,.m-app .ant-select-selector,.m-app .ant-picker{font-size:15px}.m-app .ant-form-item{margin-bottom:14px}.m-app .ant-input,.m-app .ant-input-number,.m-app .ant-select{width:100%}.m-app .ant-btn{height:44px;border-radius:12px}.m-app .ant-modal-content{border-radius:16px}.m-app .ant-modal-body{max-height:66vh;overflow-y:auto;padding-right:2px}.m-link{padding:10px;border-radius:10px;background:#f7f9fc;font-size:12px;color:#45525f;word-break:break-all;line-height:1.6}
