.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:#f0f2f5}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2f54eb,#13c2c2)}.login-card{width:400px;box-shadow:0 8px 24px #0000002e;border-radius:12px}.page{padding:16px}.table-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:#fff;border-radius:8px;padding:16px 20px;box-shadow:0 1px 4px #0000000f}.stat-card .num{font-size:26px;font-weight:600;color:#2f54eb}.stat-card .label{color:#8c8c8c;margin-bottom:4px}.stat-card .hint{color:#bfbfbf;font-size:12px}.print-page{min-height:100vh;background:#f0f2f5;padding-bottom:40px}.print-toolbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;padding:10px 20px;box-shadow:0 1px 4px #00000014}.print-paper{width:210mm;min-height:297mm;margin:16px auto;padding:14mm 12mm;background:#fff;box-shadow:0 2px 12px #0000001f}.print-doc{color:#000;font-size:12.5px;line-height:1.6}.print-doc .pd-title{text-align:center;font-size:22px;letter-spacing:4px;margin:0 0 14px;font-weight:700}.print-doc .pd-meta{width:100%;border-collapse:collapse;margin-bottom:8px}.print-doc .pd-meta td{padding:3px 0}.print-doc .pd-items{width:100%;border-collapse:collapse;table-layout:fixed}.print-doc .pd-items th,.print-doc .pd-items td{border:1px solid #333;padding:4px 6px;word-break:break-all}.print-doc .pd-items th{background:#f5f5f5;text-align:center;font-weight:600}.print-doc .pd-items tfoot td{background:#fafafa}.print-doc .pd-upper{margin-top:8px}.print-doc .pd-note{margin-top:6px;white-space:pre-wrap}.print-doc .pd-sign{width:100%;margin-top:40px}.print-doc .pd-sign td{width:50%;padding:10px 0}.print-doc .ffc-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.print-doc .ffc-logo{height:70px;width:70px;object-fit:contain}.print-doc .ffc-htext{text-align:right;font-size:12px;line-height:1.75;color:#000}.print-doc .pd-title{text-align:center;font-size:20px;font-weight:700;letter-spacing:8px;margin:4px 0 20px}.print-doc .pd-info{width:100%;border-collapse:collapse;table-layout:fixed}.print-doc .pd-info td{border:none;padding:3px 4px;font-size:11px;vertical-align:middle;word-break:break-all}.print-doc .pd-info td.lbl{width:92px;text-align:right;white-space:nowrap;padding-right:6px}.print-doc .pd-info td.strong{font-weight:600}.print-doc .pd-info tr.sign td{height:38px}.print-doc .ffc-intro{margin:2px 0 4px;font-size:11px;color:#000;line-height:1.8;text-align:justify}.print-doc .ffc-sign-note{margin:0 0 14px;font-size:11px;color:#000;line-height:1.8;text-align:justify}.print-doc .pd-items{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:12px}.print-doc .pd-items th{border:1px solid #000;background:#f2f2f2;color:#000;font-weight:700;padding:5px 4px;font-size:11px;text-align:center}.print-doc .pd-items td{border:1px solid #000;padding:5px 6px;font-size:11px;word-break:break-all}.print-doc .pd-items .c{text-align:center}.print-doc .pd-items .r{text-align:right}.print-doc .pd-items tfoot .tot-lbl{text-align:right;white-space:nowrap}.print-doc .pd-items tfoot .tot-val{text-align:right}.print-doc .pd-items tfoot .cur{text-align:center}.print-doc .pd-items tfoot .last{font-weight:700}.print-doc .pd-totals{width:46%;margin:8px 0 0 auto;border-collapse:collapse}.print-doc .pd-totals td{border:1px solid #b9c4d4;padding:6px 10px;font-size:12px}.print-doc .pd-totals .t-lbl{background:#f2f5fa;color:#5a6b85;white-space:nowrap}.print-doc .pd-totals .t-val{text-align:right}.print-doc .pd-totals .t-strong{font-weight:700;font-size:13px;color:#1f3d7a;background:#eef3fb}.print-doc .pd-upper{margin-top:8px;font-size:11px}.print-doc .pd-note{margin-top:3px;font-size:11px;color:#000;white-space:pre-wrap}.print-doc .ffc-terms{margin:24px 0 0}.print-doc .ffc-terms h3{font-size:11px;font-weight:700;text-align:center;margin:0 0 10px;color:#000;border:none;padding:0}.print-doc .ffc-terms p{margin:0 0 4px;font-size:10px;line-height:1.75;color:#000;text-align:justify}.print-doc .ffc-foot{margin-top:28px;padding-top:6px;border-top:1px solid #000;text-align:center;font-size:10px;color:#000}.print-doc .docx-doc{font-size:12px;line-height:1.6;color:#000}.print-doc .docx-doc p{margin:0 0 6px}.print-doc .docx-doc h1{font-size:20px;font-weight:700;text-align:center;letter-spacing:4px;margin:2px 0 12px}.print-doc .docx-doc h2{font-size:14px;font-weight:700;margin:12px 0 6px}.print-doc .docx-doc table{width:100%;border-collapse:collapse;margin:6px 0}.print-doc .docx-doc td,.print-doc .docx-doc th{padding:4px 6px;vertical-align:middle;word-break:break-all}.print-doc .docx-doc td p,.print-doc .docx-doc th p{margin:0}.print-doc .docx-doc img{max-width:100%;height:auto}.print-doc .docx-doc hr{border:none;border-top:1px solid #d9e0ea;margin:10px 0}.print-doc .docx-doc ul,.print-doc .docx-doc ol{margin:0 0 6px;padding-left:20px}.print-doc .docx-bordered table td,.print-doc .docx-bordered table th{border:1px solid #b9c4d4}.print-doc .docx-bordered table th{background:#f2f5fa;font-weight:600}.te-wrap{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}.te-side{position:sticky;top:76px}.te-ph-list{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}.te-ph{cursor:pointer;font-family:Consolas,Monaco,monospace}.te-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:4px 6px;position:sticky;top:76px;z-index:5;box-shadow:0 1px 4px #0000000f}.te-toolbar .te-sep{width:1px;height:18px;background:#e5e7eb;margin:0 6px}.te-toolbar .te-color{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;cursor:pointer;border-radius:4px}.te-toolbar .te-color:hover{background:#f0f2f5}.te-toolbar .te-color input[type=color]{width:22px;height:22px;padding:0;border:none;background:none;cursor:pointer}.te-canvas{outline:none;caret-color:#2f54eb}.te-canvas:focus{box-shadow:0 0 0 2px #2f54eb33}.te-canvas [contenteditable]{outline:none}.te-tbl{width:100%;border-collapse:collapse;margin:6px 0}.te-tbl td,.te-tbl th{border:1px solid #999;padding:4px 6px;min-width:40px}@media print{@page{size:A4;margin:12mm}.no-print{display:none!important}html,body{height:auto!important}body{background:#fff}.print-page{background:#fff;padding:0;min-height:auto}.print-paper{width:auto;min-height:auto;margin:0;padding:0;box-shadow:none}.print-doc{font-size:12px}.print-doc,.print-doc *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.print-doc .pd-items tr,.print-doc .pd-info tr,.print-doc .pd-totals,.print-doc .ffc-terms{break-inside:avoid;page-break-inside:avoid}.print-doc .ffc-head{break-after:avoid;page-break-after:avoid}.print-doc .pd-upper,.print-doc .pd-note{break-inside:avoid;page-break-inside:avoid}}
