@guodun/antdv 1.4.1 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.mjs +208 -180
  2. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.mjs +2 -1
  3. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.mjs +5 -0
  4. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.mjs +690 -0
  5. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.mjs +5 -0
  6. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.mjs +215 -0
  7. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.mjs +5 -0
  8. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.vue.mjs +87 -0
  9. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.mjs +5 -0
  10. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.vue.mjs +98 -0
  11. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.mjs +5 -0
  12. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.vue.mjs +550 -0
  13. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.mjs +5 -0
  14. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.vue.mjs +117 -0
  15. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.mjs +5 -0
  16. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.mjs +96 -0
  17. package/dist/es/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.mjs +51 -26
  18. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.mjs +56 -33
  19. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.mjs +5 -0
  20. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.vue.mjs +29 -0
  21. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.mjs +5 -0
  22. package/dist/es/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.vue.mjs +390 -0
  23. package/dist/es/components/pro-contract-template-designer/src/DesignerPage.vue.mjs +313 -267
  24. package/dist/es/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.mjs +1278 -2293
  25. package/dist/es/components/pro-contract-template-designer/src/composables/use-auto-pagination.mjs +71 -0
  26. package/dist/es/components/pro-contract-template-designer/src/composables/use-designer-files.mjs +11 -0
  27. package/dist/es/components/pro-contract-template-designer/src/composables/use-draft-cache-session.mjs +111 -0
  28. package/dist/es/components/pro-contract-template-designer/src/composables/use-signing-placement-editor.mjs +79 -0
  29. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-designer.mjs +189 -160
  30. package/dist/es/components/pro-contract-template-designer/src/composables/use-template-files.mjs +35 -22
  31. package/dist/es/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.mjs +71 -0
  32. package/dist/es/components/pro-contract-template-designer/src/constants.mjs +71 -10
  33. package/dist/es/components/pro-contract-template-designer/src/extensions/editor-extensions.mjs +1 -0
  34. package/dist/es/components/pro-contract-template-designer/src/utils/block-style.mjs +43 -0
  35. package/dist/es/components/pro-contract-template-designer/src/utils/context-menu-viewport.mjs +13 -0
  36. package/dist/es/components/pro-contract-template-designer/src/utils/editor-state.mjs +7 -0
  37. package/dist/es/components/pro-contract-template-designer/src/utils/page-decorations.mjs +398 -0
  38. package/dist/es/components/pro-contract-template-designer/src/utils/serialize-fingerprint.mjs +6 -0
  39. package/dist/es/components/pro-contract-template-designer/src/utils/template-renderer.mjs +88 -72
  40. package/dist/es/components/pro-contract-template-designer/style/index.css +1 -1
  41. package/dist/es/index.mjs +20 -20
  42. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.cjs +1 -1
  43. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.cjs +1 -1
  44. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.cjs +1 -0
  45. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.cjs +1 -0
  46. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.cjs +1 -0
  47. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.cjs +1 -0
  48. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.cjs +1 -0
  49. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.vue.cjs +1 -0
  50. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.cjs +1 -0
  51. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.vue.cjs +1 -0
  52. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.cjs +1 -0
  53. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.vue.cjs +1 -0
  54. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.cjs +1 -0
  55. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.vue.cjs +1 -0
  56. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.cjs +1 -0
  57. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.cjs +1 -0
  58. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.cjs +1 -1
  59. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateRendererPage.vue.cjs +1 -1
  60. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.cjs +1 -0
  61. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.vue.cjs +1 -0
  62. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.cjs +1 -0
  63. package/dist/lib/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.vue.cjs +1 -0
  64. package/dist/lib/components/pro-contract-template-designer/src/DesignerPage.vue.cjs +2 -2
  65. package/dist/lib/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.cjs +1 -1
  66. package/dist/lib/components/pro-contract-template-designer/src/composables/use-auto-pagination.cjs +1 -0
  67. package/dist/lib/components/pro-contract-template-designer/src/composables/use-designer-files.cjs +1 -0
  68. package/dist/lib/components/pro-contract-template-designer/src/composables/use-draft-cache-session.cjs +1 -0
  69. package/dist/lib/components/pro-contract-template-designer/src/composables/use-signing-placement-editor.cjs +1 -0
  70. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-designer.cjs +4 -4
  71. package/dist/lib/components/pro-contract-template-designer/src/composables/use-template-files.cjs +2 -2
  72. package/dist/lib/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.cjs +1 -0
  73. package/dist/lib/components/pro-contract-template-designer/src/constants.cjs +1 -1
  74. package/dist/lib/components/pro-contract-template-designer/src/extensions/editor-extensions.cjs +1 -1
  75. package/dist/lib/components/pro-contract-template-designer/src/utils/block-style.cjs +1 -0
  76. package/dist/lib/components/pro-contract-template-designer/src/utils/context-menu-viewport.cjs +1 -0
  77. package/dist/lib/components/pro-contract-template-designer/src/utils/editor-state.cjs +1 -0
  78. package/dist/lib/components/pro-contract-template-designer/src/utils/page-decorations.cjs +1 -0
  79. package/dist/lib/components/pro-contract-template-designer/src/utils/serialize-fingerprint.cjs +1 -0
  80. package/dist/lib/components/pro-contract-template-designer/src/utils/template-renderer.cjs +3 -3
  81. package/dist/lib/components/pro-contract-template-designer/style/index.css +1 -1
  82. package/dist/lib/index.cjs +1 -1
  83. package/dist/theme/icon.css +1 -1
  84. package/dist/theme/index.css +1 -1
  85. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerInspector.vue.d.ts +3 -0
  86. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerSidebar.vue.d.ts +1 -0
  87. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerToolbar.vue.d.ts +104 -0
  88. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateDesignerWorkspaceHeader.vue.d.ts +50 -0
  89. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateImageContextMenu.vue.d.ts +27 -0
  90. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePageDecorations.vue.d.ts +13 -0
  91. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsInspector.vue.d.ts +28 -0
  92. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePageDecorationsStudio.vue.d.ts +77 -0
  93. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewModal.vue.d.ts +36 -0
  94. package/dist/types/components/pro-contract-template-designer/src/ContractTemplatePreviewPage.vue.d.ts +5 -1
  95. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererHeader.vue.d.ts +4 -4
  96. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateRendererToolbar.vue.d.ts +4 -4
  97. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateSubmitDataModal.vue.d.ts +12 -0
  98. package/dist/types/components/pro-contract-template-designer/src/ContractTemplateTextContextMenu.vue.d.ts +77 -0
  99. package/dist/types/components/pro-contract-template-designer/src/DesignerPage.vue.d.ts +8 -32
  100. package/dist/types/components/pro-contract-template-designer/src/ProContractTemplateDesigner.vue.d.ts +366 -12
  101. package/dist/types/components/pro-contract-template-designer/src/composables/use-auto-pagination.d.ts +43 -0
  102. package/dist/types/components/pro-contract-template-designer/src/composables/use-designer-files.d.ts +22 -0
  103. package/dist/types/components/pro-contract-template-designer/src/composables/use-draft-cache-session.d.ts +41 -0
  104. package/dist/types/components/pro-contract-template-designer/src/composables/use-signing-placement-editor.d.ts +49 -0
  105. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-designer.d.ts +15 -1
  106. package/dist/types/components/pro-contract-template-designer/src/composables/use-template-files.d.ts +13 -0
  107. package/dist/types/components/pro-contract-template-designer/src/composables/use-toolbar-overflow.d.ts +19 -0
  108. package/dist/types/components/pro-contract-template-designer/src/constants.d.ts +7 -1
  109. package/dist/types/components/pro-contract-template-designer/src/types.d.ts +89 -0
  110. package/dist/types/components/pro-contract-template-designer/src/utils/block-style.d.ts +4 -0
  111. package/dist/types/components/pro-contract-template-designer/src/utils/context-menu-viewport.d.ts +22 -0
  112. package/dist/types/components/pro-contract-template-designer/src/utils/editor-state.d.ts +8 -0
  113. package/dist/types/components/pro-contract-template-designer/src/utils/page-decorations.d.ts +90 -0
  114. package/dist/types/components/pro-contract-template-designer/src/utils/serialize-fingerprint.d.ts +8 -0
  115. package/dist/types/components/pro-contract-template-designer/src/utils/template-renderer.d.ts +4 -1
  116. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ const e=require(`./html.cjs`),t=require(`../constants.cjs`),n=require(`./template-variable-render.cjs`);var r={top:54,right:64,bottom:54,left:64},i={sparse:{columns:2,rows:3},normal:{columns:3,rows:4},dense:{columns:4,rows:6}},a={header:{enabled:!1,text:``,textAlign:`center`,slots:{left:``,center:``,right:``},showOnFirstPage:!0,fontFamily:t.DEFAULT_CONTRACT_FONT_FAMILY,fontSize:12,fontWeight:400,color:`#565b66`,offset:24,divider:{enabled:!1,color:`#d8dadd`}},footer:{enabled:!1,text:`第 {pageNumber} / {totalPages} 页`,textAlign:`center`,slots:{left:``,center:`第 {pageNumber} / {totalPages} 页`,right:``},showOnFirstPage:!0,fontFamily:t.DEFAULT_CONTRACT_FONT_FAMILY,fontSize:12,fontWeight:400,color:`#565b66`,offset:24,divider:{enabled:!1,color:`#d8dadd`}},watermark:{enabled:!1,text:``,fontSize:36,color:`#7a818b`,opacity:.14,rotation:-30,showOnFirstPage:!0,layout:`single`,density:`normal`},pageNumbering:{countFirstPage:!0}},o=/^#[\da-f]{6}$/i,s=/^[A-Za-z][A-Za-z0-9_]{1,63}$/,c=/\$\{\{[\s\S]*?\}\}|\$\{\{|\$\{[^{}]*\}|\{[A-Za-z][A-Za-z0-9]*\}/g;function l(e){return{header:E(e?.header,a.header),footer:E(e?.footer,a.footer),watermark:D(e?.watermark),pageNumbering:{countFirstPage:e?.pageNumbering?.countFirstPage!==!1}}}function u(e){let t=l();return e===`none`?t:(t.footer=E({...t.footer,enabled:!0,slots:{left:``,center:`第 {pageNumber} / {totalPages} 页`,right:``}},a.footer),(e===`internal-review`||e===`draft`)&&(t.watermark=D({...t.watermark,enabled:!0,text:e===`internal-review`?`内部审阅`:`草稿`,layout:`tiled`,density:`normal`})),t)}function d(e){let t=JSON.stringify(l(e));return[`none`,`page-number`,`internal-review`,`draft`].find(e=>JSON.stringify(u(e))===t)??`custom`}function f(e,t=1){let n=l(e).header;return F(n,t)}function p(e,t=1){let n=l(e).footer;return F(n,t)}function m(e,t=1){let n=l(e).watermark;return n.enabled&&!!n.text.trim()&&(t!==1||n.showOnFirstPage)}function h(e,t,n=!0){let r=Math.max(1,Math.floor(e||1)),i=Math.max(0,Math.floor(t||0));return{pageNumber:n?String(r):r===1?``:String(r-1),totalPages:String(n?i:Math.max(0,i-1))}}function g(e,t=[],n=!1){let r=[],i=[],a=new Map(t.map(e=>[e.key,e])),o=0;c.lastIndex=0;let l=c.exec(e);for(;l;){l.index>o&&r.push({type:`text`,value:e.slice(o,l.index)});let t=l[0];if(t===`{pageNumber}`)r.push({type:`pageNumber`});else if(t===`{totalPages}`)r.push({type:`totalPages`});else if(t.startsWith("${{")&&t.endsWith(`}}`)){let e=t.slice(3,-2),o=e.trim();if(e!==o||!s.test(o))i.push({code:`DECORATION_TOKEN_MALFORMED`,message:`页面装饰变量令牌 ${t} 格式错误`,token:t,offset:l.index}),r.push({type:`text`,value:t});else{let e=a.get(o);n&&!e?i.push({code:`DECORATION_VARIABLE_UNKNOWN`,message:`页面装饰引用了未知变量 ${o}`,token:t,offset:l.index}):e?.type===`image`&&i.push({code:`DECORATION_VARIABLE_IMAGE_UNSUPPORTED`,message:`图片变量 ${o} 不能用于页面装饰`,token:t,offset:l.index}),r.push({type:`variable`,key:o,raw:t})}}else i.push({code:`DECORATION_TOKEN_MALFORMED`,message:`页面装饰令牌 ${t} 格式错误`,token:t,offset:l.index}),r.push({type:`text`,value:t});o=l.index+t.length,l=c.exec(e)}return o<e.length&&r.push({type:`text`,value:e.slice(o)}),{tokens:r,issues:i}}function _(e){let t=l(e),n=new Set;return N(t,e=>{g(e).tokens.forEach(e=>{e.type===`variable`&&n.add(e.key)}),L(e).forEach(e=>n.add(e.key))}),n}function v(e,t){let n=l(e),r=[];return N(n,(e,n)=>{g(e,t,!0).issues.forEach((e,t)=>{r.push({type:`variable`,id:`${n}-${e.offset}-${t}`,variableKey:e.code===`DECORATION_VARIABLE_UNKNOWN`?e.token.slice(3,-2).trim():void 0,code:e.code,message:`${P(n)}:${e.message}`})})}),r}function y(e){if(!e.code?.startsWith(`DECORATION_`))return;let t=e.id.replace(/-\d+-\d+$/,``);if(/^(?:header|footer)\.slots\.(?:left|center|right)$/.test(t)||t===`watermark.text`)return t}function b(e,t,n){let r=l(e),i=e=>R(e,t,n);return r.header.slots=I(r.header.slots,i),r.footer.slots=I(r.footer.slots,i),r.watermark.text=i(r.watermark.text),r.header=E(r.header,a.header),r.footer=E(r.footer,a.footer),r}function x(e,t,n,r,i,a){if(e.type===`text`)return e.value;let o=h(r,i,a);if(e.type===`pageNumber`)return o.pageNumber;if(e.type===`totalPages`)return o.totalPages;let s=t.find(t=>t.key===e.key);return!s||s.type===`image`?e.raw:M(s,n?.[e.key])}function S(e){return i[e]??i.normal}function C(e){let t=E(e,a.header);return Math.max(80,t.offset+Math.ceil(t.fontSize*1.5)+20)}function w(e,t=1){return[`gd-contract-template-page`,f(e,t)?`has-contract-header`:``,p(e,t)?`has-contract-footer`:``].filter(Boolean).join(` `)}function T(e,t,n,r=[],i){let a=l(e),o=[];return m(a,t)&&o.push(A(a.watermark,r,i,t,n,a.pageNumbering.countFirstPage)),f(a,t)&&o.push(k(`header`,a.header,r,i,t,n,a.pageNumbering.countFirstPage)),p(a,t)&&o.push(k(`footer`,a.footer,r,i,t,n,a.pageNumbering.countFirstPage)),o.join(``)}function E(e,t){let n=z(e?.textAlign,t.textAlign),r=O(e,t,n),i=r[n].trim()?n:r.center.trim()?`center`:r.left.trim()?`left`:r.right.trim()?`right`:n;return{enabled:!!e?.enabled,text:r[i],textAlign:i,slots:r,showOnFirstPage:e?.showOnFirstPage!==!1,fontFamily:H(e?.fontFamily,t.fontFamily),fontSize:U(e?.fontSize,10,24,t.fontSize),fontWeight:e?.fontWeight===600?600:400,color:V(e?.color,t.color),offset:U(e?.offset,12,48,t.offset),divider:{enabled:!!e?.divider?.enabled,color:V(e?.divider?.color,t.divider.color)}}}function D(e){let t=a.watermark;return{enabled:!!e?.enabled,text:B(e?.text,t.text),fontSize:U(e?.fontSize,12,72,t.fontSize),color:V(e?.color,t.color),opacity:U(e?.opacity,.04,.5,t.opacity),rotation:U(e?.rotation,-90,90,t.rotation),showOnFirstPage:e?.showOnFirstPage!==!1,layout:e?.layout===`tiled`?`tiled`:`single`,density:e?.density===`sparse`||e?.density===`dense`?e.density:`normal`}}function O(e,t,n){if(e?.slots&&typeof e.slots==`object`)return{left:B(e.slots.left,``),center:B(e.slots.center,``),right:B(e.slots.right,``)};let r={left:``,center:``,right:``};return r[n]=B(e?.text,t.text),r}function k(t,n,r,i,a,o,s){let c=C(n),l=n.divider.enabled?`;border-${t===`header`?`bottom`:`top`}:1px solid ${e.escapeHtmlAttribute(n.divider.color)}`:``,u=`color:${e.escapeHtmlAttribute(n.color)};font-family:${e.escapeHtmlAttribute(n.fontFamily)};font-size:${n.fontSize}px;font-weight:${n.fontWeight};${t===`header`?`top`:`bottom`}:${n.offset}px${l}`,d=[`left`,`center`,`right`].map(e=>`<div class="gd-contract-template-page__decoration-slot is-${e}">${j(n.slots[e],r,i,a,o,s)}</div>`).join(``);return`<div class="gd-contract-template-page__${t}" data-decoration-offset="${n.offset}" data-decoration-font-size="${n.fontSize}" data-decoration-safe-padding="${c}" style="${u}">${d}</div>`}function A(t,n,r,i,a,o){let s=S(t.density),c=t.layout===`tiled`?s.columns*s.rows:1,l=j(t.text,n,r,i,a,o),u=Array.from({length:c},()=>`<div class="gd-contract-template-page__watermark-item" style="color:${e.escapeHtmlAttribute(t.color)};font-size:${t.fontSize}px;opacity:${t.opacity};transform:rotate(${t.rotation}deg)">${l}</div>`).join(``),d=t.layout===`tiled`?`--gd-watermark-columns:${s.columns};--gd-watermark-rows:${s.rows}`:``;return`<div class="gd-contract-template-page__watermark is-${t.layout} density-${t.density}" data-watermark-layout="${t.layout}" data-watermark-density="${t.density}" aria-hidden="true" style="${d}">${u}</div>`}function j(t,n,r,i,a,o){let s=h(i,a,o),c=new Map(n.map(e=>[e.key,e]));return g(t).tokens.map(t=>{if(t.type===`text`)return e.escapeHtmlText(t.value);if(t.type===`pageNumber`)return e.escapeHtmlText(s.pageNumber);if(t.type===`totalPages`)return e.escapeHtmlText(s.totalPages);let n=c.get(t.key);return r!==void 0&&n&&n.type!==`image`?e.escapeHtmlText(M(n,r[t.key])):`<span class="gd-contract-template-page__variable" data-template-variable="true" data-key="${e.escapeHtmlAttribute(t.key)}" data-label="${e.escapeHtmlAttribute(n?.label??t.key)}" data-variable-type="${e.escapeHtmlAttribute(n?.type??`text`)}">\${{${e.escapeHtmlText(t.key)}}}</span>`}).join(``)}function M(e,t){let r=t==null?e.defaultValue??``:String(t);return n.resolveTemplateVariablePresentation({type:e.type,defaultValue:r,placeholder:e.placeholder,format:e.format,precision:e.precision,useGrouping:e.useGrouping,checkedText:e.checkedText,uncheckedText:e.uncheckedText,style:e.style}).displayText||e.placeholder||e.label||e.key}function N(e,t){[`left`,`center`,`right`].forEach(n=>{t(e.header.slots[n],`header.slots.${n}`),t(e.footer.slots[n],`footer.slots.${n}`)}),t(e.watermark.text,`watermark.text`)}function P(e){return{"header.slots.left":`页眉左栏`,"header.slots.center":`页眉中栏`,"header.slots.right":`页眉右栏`,"footer.slots.left":`页脚左栏`,"footer.slots.center":`页脚中栏`,"footer.slots.right":`页脚右栏`,"watermark.text":`水印内容`}[e]??`页面装饰`}function F(e,t){return e.enabled&&Object.values(e.slots).some(e=>e.trim())&&(t!==1||e.showOnFirstPage)}function I(e,t){return{left:t(e.left),center:t(e.center),right:t(e.right)}}function L(e){let t=[],n=/\$\{\{([\s\S]*?)\}\}|\$\{\{\s*([A-Za-z][A-Za-z0-9_]{1,63})(?![A-Za-z0-9_])/g,r=n.exec(e);for(;r;){let i=(r[1]??r[2]??``).trim();i&&t.push({key:i,raw:r[0],start:r.index,end:r.index+r[0].length}),r=n.exec(e)}return t}function R(e,t,n){let r=L(e);if(!r.length)return e;let i=``,a=0;return r.forEach(r=>{i+=e.slice(a,r.start),i+=r.key===t?n?`\${{${n}}}`:``:r.raw,a=r.end}),i+e.slice(a)}function z(e,t){return e===`left`||e===`right`||e===`center`?e:t}function B(e,t){return(typeof e==`string`?e:t).slice(0,240)}function V(e,t){return typeof e==`string`&&o.test(e)?e:t}function H(e,t){return typeof e==`string`&&e.replace(/[";{}<>]/g,``).trim().slice(0,120)||t}function U(e,t,n,r){let i=Number(e);return Number.isFinite(i)?Math.min(n,Math.max(t,i)):r}exports.CONTRACT_PAGE_BASE_PADDING=r,exports.buildPageDecorationClassNames=w,exports.buildPageDecorationsHtml=T,exports.collectPageDecorationVariableKeys=_,exports.createPageDecorationPreset=u,exports.getPageDecorationSafePadding=C,exports.getWatermarkDensityGrid=S,exports.hasEnabledPageFooter=p,exports.hasEnabledPageHeader=f,exports.hasEnabledPageWatermark=m,exports.normalizePageDecorations=l,exports.parsePageDecorationText=g,exports.resolvePageDecorationPreset=d,exports.resolvePageDecorationTokenText=x,exports.resolvePageDecorationValidationPath=y,exports.rewritePageDecorationVariableTokens=b,exports.validatePageDecorations=v;
@@ -0,0 +1 @@
1
+ function e(e){return JSON.stringify(e)}exports.serializeFingerprint=e;
@@ -1,3 +1,3 @@
1
- const e=require(`../types.cjs`),t=require(`./html.cjs`),n=require(`./template-variable-render.cjs`),r=require(`../composables/use-template-designer.cjs`),i=require(`./image-url.cjs`);var a=new Set([`action`,`formaction`,`href`,`src`,`xlink:href`]),o=/<[^>]+data-template-variable=["']true["'][^>]*>/gi;function s(e){let t={};return(Array.isArray(e?.variables)?e.variables:[]).forEach(e=>{e?.key&&(t[e.key]=b(e))}),t}function c(e,t){return{...s(e),...t??{}}}function l(e,t){let n=d(e);if(!e)return n;let r=Array.isArray(e.variables)?e.variables:[],a=new Set(r.map(e=>e?.key).filter(Boolean));return Object.keys(t).forEach(e=>{a.has(e)||n.push({type:`variable`,id:e,variableKey:e,message:`提交值 ${e} 不属于模板变量`,code:`VARIABLE_UNKNOWN`})}),r.forEach(e=>{if(!e?.key)return;let r=t[e.key];if(e.required&&m(r)){n.push({type:`variable`,id:e.id,variableKey:e.key,message:`请填写${e.label||e.key}`,code:`VARIABLE_REQUIRED`});return}m(r)||(e.type===`number`&&(typeof r!=`number`||!Number.isFinite(r))&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法数字`,code:`VARIABLE_TYPE_INVALID`}),e.type===`checkbox`&&typeof r!=`boolean`&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法复选值`,code:`VARIABLE_TYPE_INVALID`}),e.type===`date`&&!A(r)&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法日期`,code:`VARIABLE_TYPE_INVALID`}),e.type===`image`&&!i.isSafeContractImageUrl(String(r))&&n.push({type:`security`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是安全的图片地址`,code:`IMAGE_URL_UNSAFE`}))}),n}function u(e,t,n){return n?l(e,t):d(e)}function d(n){if(!n)return[{type:`page`,id:`template`,message:`缺少可渲染的合同模板`,code:`TEMPLATE_MISSING`}];let r=[],i=Array.isArray(n.pages)?n.pages:[],a=Array.isArray(n.variables)?n.variables:[];(!Array.isArray(n.pages)||i.length===0)&&r.push({type:`page`,id:`template-pages`,message:`模板至少需要一个合法页面`,code:`TEMPLATE_PAGES_INVALID`}),Array.isArray(n.variables)||r.push({type:`variable`,id:`template-variables`,message:`模板变量列表格式无效`,code:`TEMPLATE_VARIABLES_INVALID`}),t.hasPositivePageSize(n.pageSize)||r.push({type:`page`,id:`template-page-size`,message:`模板默认页面尺寸无效,已回退为安全默认尺寸`,code:`TEMPLATE_PAGE_SIZE_INVALID`});let o=new Map;a.forEach((t,n)=>{if(!t||typeof t.key!=`string`||!t.key.trim()){r.push({type:`variable`,id:t?.id||`variable-${n}`,message:`第 ${n+1} 个变量缺少有效 key`,code:`VARIABLE_KEY_MISSING`});return}o.set(t.key,(o.get(t.key)??0)+1),e.isContractTemplateFieldType(t.type??`text`)||r.push({type:`variable`,id:t.id,variableKey:t.key,message:`${t.label||t.key} 不是正文填写变量`,code:`VARIABLE_TYPE_UNSUPPORTED`})}),o.forEach((e,t)=>{e>1&&r.push({type:`variable`,id:t,variableKey:t,message:`变量 key ${t} 重复`,code:`VARIABLE_KEY_DUPLICATED`})});let s=new Set;return i.forEach((e,n)=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`){r.push({type:`page`,id:e?.id||`page-${n}`,pageId:e?.id,message:`第 ${n+1} 页结构无效,已跳过渲染`,code:`PAGE_INVALID`});return}e.pageSize!==void 0&&!t.hasPositivePageSize(e.pageSize)&&r.push({type:`page`,id:`${e.id}-page-size`,pageId:e.id,message:`${e.title||`第 ${n+1} 页`}:页面尺寸无效,已回退为安全尺寸`,code:`PAGE_SIZE_INVALID`}),T(e.contentHtml).forEach(e=>s.add(e)),E(e.contentHtml).forEach((t,i)=>{r.push({type:`security`,id:`${e.id}-security-${i}`,pageId:e.id,message:`${e.title||`第 ${n+1} 页`}:${t}`,code:`HTML_UNSAFE`})})}),s.forEach(e=>{o.has(e)||r.push({type:`variable`,id:e,variableKey:e,message:`正文引用的变量 ${e} 缺少配置`,code:`VARIABLE_CONFIG_MISSING`})}),o.forEach((e,t)=>{s.has(t)||r.push({type:`variable`,id:t,variableKey:t,message:`变量 ${t} 缺少正文节点`,code:`VARIABLE_NODE_MISSING`})}),r}function f(e,n,i={}){if(!e||!Array.isArray(e.pages))return[];let a=Array.isArray(e.variables)?e.variables:[],o=new Map(a.filter(e=>e?.key).map(e=>[e.key,e])),s=t.hasPositivePageSize(e.pageSize)?e.pageSize:r.DEFAULT_PAGE_SIZE;return e.pages.flatMap(e=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`)return[];let t=r.resolvePageSize(e.pageSize,s);return[{id:e.id,title:e.title||`未命名页面`,format:t.format??`Custom`,width:t.width,height:t.height,contentHtml:h(e.contentHtml,o,n,i)}]})}function p(e,n,r={}){return f(e,n,r).map(e=>`<section class="gd-contract-template-page" data-page-id="${t.escapeHtmlAttribute(e.id)}" data-page-format="${t.escapeHtmlAttribute(e.format)}" data-page-width="${e.width}" data-page-height="${e.height}" style="width:${e.width}px;min-height:${e.height}px">${e.contentHtml}</section>`).join(`
2
- `)}function m(e){return e==null||e===``}function h(e,n,r,i){if(!e)return e;let a=w(e);if(t.canUseDomHtml()){let e=new DOMParser().parseFromString(a,`text/html`);return e.querySelectorAll(`[data-template-variable]`).forEach(e=>{g(e,n,r,i)}),e.body.innerHTML}return t.replaceTemplateVariableSpans(a,(e,a)=>{let o=t.getHtmlAttribute(a,`data-key`);return o?_(n.get(o),o,r[o],i):e})}function g(e,t,n,r){let i=e.dataset.key||``,a=t.get(i);if(!i||!a)return;let o=new DOMParser().parseFromString(_(a,i,n[i],r),`text/html`).body.firstElementChild;o&&e.replaceWith(o)}function _(e,t,n,r){return r.mode===`display`?v(e,t,n,r):y(e,t,n,r)}function v(e,r,a,o){let s=e?.type??`text`,c=a??b(e),l=s===`image`&&!m(c)&&!i.isSafeContractImageUrl(String(c))?``:c,u=S(l),d=n.resolveTemplateVariablePresentation({type:s,width:e?.width,height:e?.height,placeholder:e?.placeholder??``,defaultValue:u,format:e?.format??``,precision:e?.precision,useGrouping:e?.useGrouping,checkedText:e?.checkedText??``,uncheckedText:e?.uncheckedText??``,multiline:e?.multiline,rows:e?.rows,lineHeight:e?.lineHeight,style:e?.style}),f=d.displayText||e?.placeholder||e?.label||r,p=[`class="${t.escapeHtmlAttribute([`gd-contract-template-renderer__control`,`gd-contract-template-renderer__preview-control`,...d.classes,o.activeKey===r?`is-active`:``,m(l)?`is-empty`:``].filter(Boolean).join(` `))}"`,`style="${t.escapeHtmlAttribute(d.styleText)}"`,`data-contract-render-wrapper="true"`,`data-contract-render-preview="true"`,`data-key="${t.escapeHtmlAttribute(r)}"`,`data-variable-type="${t.escapeHtmlAttribute(s)}"`,`aria-label="${t.escapeHtmlAttribute(e?.label||r)}"`,o.disabled?``:`role="button"`,o.disabled?``:`tabindex="0"`].filter(Boolean).join(` `);return s===`checkbox`?`<span ${p}><span class="gd-contract-template-renderer__checkbox-mark" aria-hidden="true">${C(l)?`✓`:``}</span>${t.escapeHtmlText(f)}</span>`:s===`image`&&!m(l)?`<span ${p}></span>`:`<span ${p}>${t.escapeHtmlText(f)}</span>`}function y(e,r,i,a){let o=e?.type??`text`,s=!!a.readonly,c=x(i??b(e)),l=n.resolveTemplateVariablePresentation({type:o,width:e?.width,height:e?.height,placeholder:e?.placeholder??``,defaultValue:s?c:``,format:e?.format??``,precision:e?.precision,useGrouping:e?.useGrouping,checkedText:e?.checkedText??``,uncheckedText:e?.uncheckedText??``,multiline:e?.multiline,rows:e?.rows,lineHeight:e?.lineHeight,style:e?.style}),u=a.disabled||s,d=[`data-contract-render-control="true"`,`data-key="${t.escapeHtmlAttribute(r)}"`,`data-variable-type="${t.escapeHtmlAttribute(o)}"`,`aria-label="${t.escapeHtmlAttribute(e?.label||r)}"`,u?`disabled`:``,s?`readonly`:``].filter(Boolean).join(` `),f=`style="${t.escapeHtmlAttribute(l.styleText)}"`,p=t.escapeHtmlAttribute([`gd-contract-template-renderer__control`,...l.classes].join(` `));return o===`checkbox`?`<label class="${p}" ${f} data-contract-render-wrapper="true" data-key="${t.escapeHtmlAttribute(r)}"><input type="checkbox" ${d} ${C(c)?`checked`:``}>${t.escapeHtmlText(e?.checkedText||e?.label||r)}</label>`:s?`<span class="${p}" ${f} data-contract-render-wrapper="true" data-key="${t.escapeHtmlAttribute(r)}">${t.escapeHtmlText(l.displayText||c)}</span>`:o===`number`?`<input class="${p}" ${f} type="number" ${d} value="${t.escapeHtmlAttribute(c)}" placeholder="${t.escapeHtmlAttribute(e?.placeholder||``)}">`:o===`date`?`<input class="${p}" ${f} type="date" ${d} value="${t.escapeHtmlAttribute(c)}" placeholder="${t.escapeHtmlAttribute(e?.placeholder||``)}">`:e?.multiline?`<textarea class="${p}" ${f} ${d} placeholder="${t.escapeHtmlAttribute(e.placeholder||``)}">${t.escapeHtmlText(c)}</textarea>`:`<input class="${p}" ${f} type="text" ${d} value="${t.escapeHtmlAttribute(c)}" placeholder="${t.escapeHtmlAttribute(e?.placeholder||``)}">`}function b(e){if(!e)return``;if(e.type===`checkbox`)return C(e.defaultValue);if(e.type===`number`&&e.defaultValue!==void 0){let t=Number(e.defaultValue);return Number.isFinite(t)?t:e.defaultValue}return e.defaultValue??``}function x(e){return typeof e==`boolean`?e?`true`:``:e==null?``:String(e)}function S(e){return typeof e==`boolean`?e?`true`:`false`:e==null?``:String(e)}function C(e){return e===!0||e===`true`||e===`1`||e===`yes`||e===`是`||e===`已选`}function w(e){if(t.canParseHtmlDocument()){let t=new DOMParser().parseFromString(e,`text/html`);return t.querySelectorAll(`script,style,meta,link,iframe,object,embed`).forEach(e=>e.remove()),t.querySelectorAll(`*`).forEach(e=>{Array.from(e.attributes).forEach(t=>{let n=t.name.toLowerCase();(n.startsWith(`on`)||n===`srcdoc`||a.has(n)&&D(t.value)||n===`style`&&k(t.value))&&e.removeAttribute(t.name)})}),t.body.innerHTML}return e.replace(/<\s*(script|style|iframe|object|embed)\b[^>]*>[\s\S]*?<\s*\/\s*\1\s*>/gi,``).replace(/<\s*\/?\s*(?:script|style|meta|link|iframe|object|embed)\b[^>]*>/gi,``).replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+srcdoc\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+(action|formaction|href|src|xlink:href)\s*=\s*(?:(["'])(.*?)\2|([^\s>]+))/gi,(e,t,n,r,i)=>{let a=r??i??``;return D(a)?``:n?` ${t}=${n}${a}${n}`:` ${t}=${a}`}).replace(/\s+style\s*=\s*(["'])(.*?)\1/gi,(e,t,n)=>k(n)?``:` style=${t}${n}${t}`)}function T(e){return t.collectFromHtmlTags(e,o,e=>t.getHtmlAttribute(e,`data-key`))}function E(e){let t=[];return/<\s*(script|style|meta|link|iframe|object|embed)\b/i.test(e)&&t.push(`正文包含已移除的危险标签`),/\s(?:on[a-z]+|srcdoc)\s*=/i.test(e)&&t.push(`正文包含已移除的事件或嵌入属性`),(O(e)||/style\s*=\s*["'][^"']*(?:expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html))/i.test(e))&&t.push(`正文包含已移除的危险 URL 或样式`),t}function D(e){let t=e.replace(/&#(?:x([\da-f]+)|(\d+));?/gi,(e,t,n)=>{let r=Number.parseInt(t??n??``,t?16:10);try{return Number.isFinite(r)?String.fromCodePoint(r):e}catch{return e}}).replace(/&(colon|tab|newline);/gi,(e,t)=>({colon:`:`,newline:`
3
- `,tab:` `})[t.toLowerCase()]??``).trim().replace(/[\u0000-\u0020\u007F]+/g,``);return/^(?:javascript|vbscript|data:text\/html)/i.test(t)}function O(e){let t=/\s+(?:action|formaction|href|src|xlink:href)\s*=\s*(?:(["'])(.*?)\1|([^\s>]+))/gi,n=t.exec(e);for(;n;){if(D(n[2]??n[3]??``))return!0;n=t.exec(e)}return!1}function k(e){return/expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html)/i.test(e)}function A(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(e));if(!t)return!1;let n=new Date(`${t[1]}-${t[2]}-${t[3]}T00:00:00Z`);return!Number.isNaN(n.getTime())&&n.getUTCFullYear()===Number(t[1])&&n.getUTCMonth()+1===Number(t[2])&&n.getUTCDate()===Number(t[3])}exports.buildInitialRenderValues=s,exports.buildTemplateRenderHtml=p,exports.buildTemplateRenderPages=f,exports.isEmptyRenderValue=m,exports.normalizeRenderValues=c,exports.resolveTemplateRenderSubmitErrors=u,exports.sanitizeContractRendererHtml=w,exports.validateTemplateRenderStructure=d,exports.validateTemplateRenderValues=l;
1
+ const e=require(`../types.cjs`),t=require(`./html.cjs`),n=require(`./template-variable-render.cjs`),r=require(`./page-decorations.cjs`),i=require(`../composables/use-template-designer.cjs`),a=require(`./image-url.cjs`);var o=new Set([`action`,`formaction`,`href`,`src`,`xlink:href`]),s=/<[^>]+data-template-variable=["']true["'][^>]*>/gi;function c(e){let t={};return(Array.isArray(e?.variables)?e.variables:[]).forEach(e=>{e?.key&&(t[e.key]=x(e))}),t}function l(e,t){return{...c(e),...t??{}}}function u(e,t){let n=f(e);if(!e)return n;let r=Array.isArray(e.variables)?e.variables:[],i=new Set(r.map(e=>e?.key).filter(Boolean));return Object.keys(t).forEach(e=>{i.has(e)||n.push({type:`variable`,id:e,variableKey:e,message:`提交值 ${e} 不属于模板变量`,code:`VARIABLE_UNKNOWN`})}),r.forEach(e=>{if(!e?.key)return;let r=t[e.key];if(e.required&&h(r)){n.push({type:`variable`,id:e.id,variableKey:e.key,message:`请填写${e.label||e.key}`,code:`VARIABLE_REQUIRED`});return}h(r)||(e.type===`number`&&(typeof r!=`number`||!Number.isFinite(r))&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法数字`,code:`VARIABLE_TYPE_INVALID`}),e.type===`checkbox`&&typeof r!=`boolean`&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法复选值`,code:`VARIABLE_TYPE_INVALID`}),e.type===`date`&&!j(r)&&n.push({type:`variable`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是合法日期`,code:`VARIABLE_TYPE_INVALID`}),e.type===`image`&&!a.isSafeContractImageUrl(String(r))&&n.push({type:`security`,id:e.id,variableKey:e.key,message:`${e.label||e.key} 不是安全的图片地址`,code:`IMAGE_URL_UNSAFE`}))}),n}function d(e,t,n){return n?u(e,t):f(e)}function f(n){if(!n)return[{type:`page`,id:`template`,message:`缺少可渲染的合同模板`,code:`TEMPLATE_MISSING`}];let a=[],o=Array.isArray(n.pages)?n.pages:[],s=Array.isArray(n.variables)?n.variables:[];(!Array.isArray(n.pages)||o.length===0)&&a.push({type:`page`,id:`template-pages`,message:`模板至少需要一个合法页面`,code:`TEMPLATE_PAGES_INVALID`}),Array.isArray(n.variables)||a.push({type:`variable`,id:`template-variables`,message:`模板变量列表格式无效`,code:`TEMPLATE_VARIABLES_INVALID`}),t.hasPositivePageSize(n.pageSize)||a.push({type:`page`,id:`template-page-size`,message:`模板默认页面尺寸无效,已回退为安全默认尺寸`,code:`TEMPLATE_PAGE_SIZE_INVALID`});let c=new Map;s.forEach((t,n)=>{if(!t||typeof t.key!=`string`||!t.key.trim()){a.push({type:`variable`,id:t?.id||`variable-${n}`,message:`第 ${n+1} 个变量缺少有效 key`,code:`VARIABLE_KEY_MISSING`});return}let r=t.key.trim(),o=s.some(e=>e?.id!==t.id&&typeof e?.key==`string`&&e.key.trim()===r),l=i.validateContractTemplateVariableKey(t.key,s,t.id),u=!i.CONTRACT_TEMPLATE_VARIABLE_KEY_PATTERN.test(r)||i.CONTRACT_TEMPLATE_RESERVED_VARIABLE_KEYS.has(r);l&&(u||!o||t.key!==r)&&a.push({type:`variable`,id:t.id||`variable-${n}`,variableKey:t.key,message:`${t.label||t.key}:${l}`,code:`VARIABLE_KEY_INVALID`}),c.set(r,(c.get(r)??0)+1),e.isContractTemplateFieldType(t.type??`text`)||a.push({type:`variable`,id:t.id,variableKey:t.key,message:`${t.label||t.key} 不是正文填写变量`,code:`VARIABLE_TYPE_UNSUPPORTED`})}),c.forEach((e,t)=>{e>1&&a.push({type:`variable`,id:t,variableKey:t,message:`变量 key ${t} 重复`,code:`VARIABLE_KEY_DUPLICATED`})});let l=new Set;o.forEach((e,n)=>{if(!e||typeof e.id!=`string`||!e.id.trim()||typeof e.contentHtml!=`string`){a.push({type:`page`,id:e?.id||`page-${n}`,pageId:e?.id,message:`第 ${n+1} 页结构无效,已跳过渲染`,code:`PAGE_INVALID`});return}e.pageSize!==void 0&&!t.hasPositivePageSize(e.pageSize)&&a.push({type:`page`,id:`${e.id}-page-size`,pageId:e.id,message:`${e.title||`第 ${n+1} 页`}:页面尺寸无效,已回退为安全尺寸`,code:`PAGE_SIZE_INVALID`}),E(e.contentHtml).forEach(e=>l.add(e)),D(e.contentHtml).forEach((t,r)=>{a.push({type:`security`,id:`${e.id}-security-${r}`,pageId:e.id,message:`${e.title||`第 ${n+1} 页`}:${t}`,code:`HTML_UNSAFE`})})}),l.forEach(e=>{c.has(e)||a.push({type:`variable`,id:e,variableKey:e,message:`正文引用的变量 ${e} 缺少配置`,code:`VARIABLE_CONFIG_MISSING`})});let u=r.collectPageDecorationVariableKeys(n.pageDecorations);return c.forEach((e,t)=>{!l.has(t)&&!u.has(t)&&a.push({type:`variable`,id:t,variableKey:t,message:`变量 ${t} 缺少正文节点`,code:`VARIABLE_NODE_MISSING`})}),a.push(...r.validatePageDecorations(n.pageDecorations,s)),a}function p(e,n,a={}){if(!e||!Array.isArray(e.pages))return[];let o=Array.isArray(e.variables)?e.variables:[],s=new Map(o.filter(e=>e?.key).map(e=>[e.key,e])),c=t.hasPositivePageSize(e.pageSize)?e.pageSize:i.DEFAULT_PAGE_SIZE;return e.pages.flatMap(t=>{if(!t||typeof t.id!=`string`||!t.id.trim()||typeof t.contentHtml!=`string`)return[];let l=i.resolvePageSize(t.pageSize,c);return[{id:t.id,title:t.title||`未命名页面`,format:l.format??`Custom`,width:l.width,height:l.height,contentHtml:g(t.contentHtml,s,n,a),...e.pageDecorations?{pageDecorations:r.normalizePageDecorations(e.pageDecorations)}:{},decorationVariables:o,decorationValues:n}]})}function m(e,n,i={}){return p(e,n,i).map((e,n,i)=>{let a=r.buildPageDecorationsHtml(e.pageDecorations,n+1,i.length,e.decorationVariables,e.decorationValues);return`<section class="${r.buildPageDecorationClassNames(e.pageDecorations,n+1)}" data-page-id="${t.escapeHtmlAttribute(e.id)}" data-page-format="${t.escapeHtmlAttribute(e.format)}" data-page-width="${e.width}" data-page-height="${e.height}" style="width:${e.width}px;min-height:${e.height}px">${a}<div class="gd-contract-template-page__content">${e.contentHtml}</div></section>`}).join(`
2
+ `)}function h(e){return e==null||e===``}function g(e,n,r,i){if(!e)return e;let a=T(e);if(t.canUseDomHtml()){let e=new DOMParser().parseFromString(a,`text/html`);return e.querySelectorAll(`[data-template-variable]`).forEach(e=>{_(e,n,r,i)}),e.body.innerHTML}return t.replaceTemplateVariableSpans(a,(e,a)=>{let o=t.getHtmlAttribute(a,`data-key`);return o?v(n.get(o),o,r[o],i):e})}function _(e,t,n,r){let i=e.dataset.key||``,a=t.get(i);if(!i||!a)return;let o=new DOMParser().parseFromString(v(a,i,n[i],r),`text/html`).body.firstElementChild;o&&e.replaceWith(o)}function v(e,t,n,r){return r.mode===`display`?y(e,t,n,r):b(e,t,n,r)}function y(e,r,i,o){let s=e?.type??`text`,c=i??x(e),l=s===`image`&&!h(c)&&!a.isSafeContractImageUrl(String(c))?``:c,u=C(l),d=n.resolveTemplateVariablePresentation({type:s,width:e?.width,height:e?.height,placeholder:e?.placeholder??``,defaultValue:u,format:e?.format??``,precision:e?.precision,useGrouping:e?.useGrouping,checkedText:e?.checkedText??``,uncheckedText:e?.uncheckedText??``,multiline:e?.multiline,rows:e?.rows,lineHeight:e?.lineHeight,style:e?.style}),f=d.displayText||e?.placeholder||e?.label||r,p=[`class="${t.escapeHtmlAttribute([`gd-contract-template-renderer__control`,`gd-contract-template-renderer__preview-control`,...d.classes,o.activeKey===r?`is-active`:``,h(l)?`is-empty`:``].filter(Boolean).join(` `))}"`,`style="${t.escapeHtmlAttribute(d.styleText)}"`,`data-contract-render-wrapper="true"`,`data-contract-render-preview="true"`,`data-key="${t.escapeHtmlAttribute(r)}"`,`data-variable-type="${t.escapeHtmlAttribute(s)}"`,`aria-label="${t.escapeHtmlAttribute(e?.label||r)}"`,o.disabled?``:`role="button"`,o.disabled?``:`tabindex="0"`].filter(Boolean).join(` `);return s===`checkbox`?`<span ${p}><span class="gd-contract-template-renderer__checkbox-mark" aria-hidden="true">${w(l)?`✓`:``}</span>${t.escapeHtmlText(f)}</span>`:s===`image`&&!h(l)?`<span ${p}></span>`:`<span ${p}>${t.escapeHtmlText(f)}</span>`}function b(e,r,i,a){let o=e?.type??`text`,s=!!a.readonly,c=S(i??x(e)),l=n.resolveTemplateVariablePresentation({type:o,width:e?.width,height:e?.height,placeholder:e?.placeholder??``,defaultValue:s?c:``,format:e?.format??``,precision:e?.precision,useGrouping:e?.useGrouping,checkedText:e?.checkedText??``,uncheckedText:e?.uncheckedText??``,multiline:e?.multiline,rows:e?.rows,lineHeight:e?.lineHeight,style:e?.style}),u=a.disabled||s,d=[`data-contract-render-control="true"`,`data-key="${t.escapeHtmlAttribute(r)}"`,`data-variable-type="${t.escapeHtmlAttribute(o)}"`,`aria-label="${t.escapeHtmlAttribute(e?.label||r)}"`,u?`disabled`:``,s?`readonly`:``].filter(Boolean).join(` `),f=`style="${t.escapeHtmlAttribute(l.styleText)}"`,p=t.escapeHtmlAttribute([`gd-contract-template-renderer__control`,...l.classes].join(` `));return o===`checkbox`?`<label class="${p}" ${f} data-contract-render-wrapper="true" data-key="${t.escapeHtmlAttribute(r)}"><input type="checkbox" ${d} ${w(c)?`checked`:``}>${t.escapeHtmlText(e?.checkedText||e?.label||r)}</label>`:s?`<span class="${p}" ${f} data-contract-render-wrapper="true" data-key="${t.escapeHtmlAttribute(r)}">${t.escapeHtmlText(l.displayText||c)}</span>`:o===`number`?`<input class="${p}" ${f} type="number" ${d} value="${t.escapeHtmlAttribute(c)}" placeholder="${t.escapeHtmlAttribute(e?.placeholder||``)}">`:o===`date`?`<input class="${p}" ${f} type="date" ${d} value="${t.escapeHtmlAttribute(c)}" placeholder="${t.escapeHtmlAttribute(e?.placeholder||``)}">`:e?.multiline?`<textarea class="${p}" ${f} ${d} placeholder="${t.escapeHtmlAttribute(e.placeholder||``)}">${t.escapeHtmlText(c)}</textarea>`:`<input class="${p}" ${f} type="text" ${d} value="${t.escapeHtmlAttribute(c)}" placeholder="${t.escapeHtmlAttribute(e?.placeholder||``)}">`}function x(e){if(!e)return``;if(e.type===`checkbox`)return w(e.defaultValue);if(e.type===`number`&&e.defaultValue!==void 0){let t=Number(e.defaultValue);return Number.isFinite(t)?t:e.defaultValue}return e.defaultValue??``}function S(e){return typeof e==`boolean`?e?`true`:``:e==null?``:String(e)}function C(e){return typeof e==`boolean`?e?`true`:`false`:e==null?``:String(e)}function w(e){return e===!0||e===`true`||e===`1`||e===`yes`||e===`是`||e===`已选`}function T(e){if(t.canParseHtmlDocument()){let t=new DOMParser().parseFromString(e,`text/html`);return t.querySelectorAll(`script,style,meta,link,iframe,object,embed`).forEach(e=>e.remove()),t.querySelectorAll(`*`).forEach(e=>{Array.from(e.attributes).forEach(t=>{let n=t.name.toLowerCase();(n.startsWith(`on`)||n===`srcdoc`||o.has(n)&&O(t.value)||n===`style`&&A(t.value))&&e.removeAttribute(t.name)})}),t.body.innerHTML}return e.replace(/<\s*(script|style|iframe|object|embed)\b[^>]*>[\s\S]*?<\s*\/\s*\1\s*>/gi,``).replace(/<\s*\/?\s*(?:script|style|meta|link|iframe|object|embed)\b[^>]*>/gi,``).replace(/\s+on[a-z]+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+srcdoc\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,``).replace(/\s+(action|formaction|href|src|xlink:href)\s*=\s*(?:(["'])(.*?)\2|([^\s>]+))/gi,(e,t,n,r,i)=>{let a=r??i??``;return O(a)?``:n?` ${t}=${n}${a}${n}`:` ${t}=${a}`}).replace(/\s+style\s*=\s*(["'])(.*?)\1/gi,(e,t,n)=>A(n)?``:` style=${t}${n}${t}`)}function E(e){return t.collectFromHtmlTags(e,s,e=>t.getHtmlAttribute(e,`data-key`))}function D(e){let t=[];return/<\s*(script|style|meta|link|iframe|object|embed)\b/i.test(e)&&t.push(`正文包含已移除的危险标签`),/\s(?:on[a-z]+|srcdoc)\s*=/i.test(e)&&t.push(`正文包含已移除的事件或嵌入属性`),(k(e)||/style\s*=\s*["'][^"']*(?:expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html))/i.test(e))&&t.push(`正文包含已移除的危险 URL 或样式`),t}function O(e){let t=e.replace(/&#(?:x([\da-f]+)|(\d+));?/gi,(e,t,n)=>{let r=Number.parseInt(t??n??``,t?16:10);try{return Number.isFinite(r)?String.fromCodePoint(r):e}catch{return e}}).replace(/&(colon|tab|newline);/gi,(e,t)=>({colon:`:`,newline:`
3
+ `,tab:` `})[t.toLowerCase()]??``).trim().replace(/[\u0000-\u0020\u007F]+/g,``);return/^(?:javascript|vbscript|data:text\/html)/i.test(t)}function k(e){let t=/\s+(?:action|formaction|href|src|xlink:href)\s*=\s*(?:(["'])(.*?)\1|([^\s>]+))/gi,n=t.exec(e);for(;n;){if(O(n[2]??n[3]??``))return!0;n=t.exec(e)}return!1}function A(e){return/expression\s*\(|url\s*\(\s*["']?\s*(?:javascript|vbscript|data:text\/html)/i.test(e)}function j(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(e));if(!t)return!1;let n=new Date(`${t[1]}-${t[2]}-${t[3]}T00:00:00Z`);return!Number.isNaN(n.getTime())&&n.getUTCFullYear()===Number(t[1])&&n.getUTCMonth()+1===Number(t[2])&&n.getUTCDate()===Number(t[3])}exports.buildInitialRenderValues=c,exports.buildTemplateRenderHtml=m,exports.buildTemplateRenderPages=p,exports.isEmptyRenderValue=h,exports.normalizeRenderValues=l,exports.resolveTemplateRenderSubmitErrors=d,exports.sanitizeContractRendererHtml=T,exports.validateTemplateRenderStructure=f,exports.validateTemplateRenderValues=u;
@@ -1 +1 @@
1
- :root{--gdant-primary-50:var(--primary-50,#f4f9ff);--gdant-primary-100:var(--primary-100,#e9f1f6);--gdant-primary-200:var(--primary-200,#bcd7ff);--gdant-primary-300:var(--primary-300,#7fb0ff);--gdant-primary-400:var(--primary-400,#3b87ff);--gdant-primary-500:var(--primary-500,#1161ff);--gdant-primary-600:var(--primary-600,#0d4ed1);--gdant-primary-700:var(--primary-700,#0a3da5);--gdant-primary-800:var(--primary-800,#082c79);--gdant-primary-900:var(--primary-900,#05204d);--gdant-neutral-0:var(--neutral-0,#fff);--gdant-neutral-50:var(--neutral-50,#fafbfc);--gdant-neutral-100:var(--neutral-100,#f5f6f8);--gdant-neutral-200:var(--neutral-200,#eaecef);--gdant-neutral-300:var(--neutral-300,#d9dce0);--gdant-neutral-400:var(--neutral-400,#aab0b7);--gdant-neutral-500:var(--neutral-500,#7a818b);--gdant-neutral-600:var(--neutral-600,#565b66);--gdant-neutral-700:var(--neutral-700,#383d47);--gdant-neutral-800:var(--neutral-800,#262a33);--gdant-neutral-900:var(--neutral-900,#0f131a);--gdant-success-50:var(--success-50,#e8f9ed);--gdant-success-500:var(--success-500,#00b42a);--gdant-success-600:var(--success-600,#009023);--gdant-warning-50:var(--warning-50,#fff3e8);--gdant-warning-100:var(--warning-100,#ffe4cc);--gdant-warning-500:var(--warning-500,#f58634);--gdant-warning-600:var(--warning-600,#d96c1c);--gdant-warning-700:var(--warning-700,#b35316);--gdant-error-50:var(--error-50,#fde9e9);--gdant-error-100:var(--error-100,#fcd4d4);--gdant-error-300:var(--error-300,#f47070);--gdant-error-500:var(--error-500,#ee3939);--gdant-error-600:var(--error-600,#c92626);--gdant-error-700:var(--error-700,#a31c1c);--gdant-radius-xs:var(--radius-xs,2px);--gdant-radius-sm:var(--radius-sm,4px);--gdant-radius-md:var(--radius-md,6px);--gdant-radius-lg:var(--radius-lg,8px);--gdant-radius-xl:var(--radius-xl,12px);--gdant-radius-pill:var(--radius-pill,9999px);--gdant-shadow-raised:var(--shadow-raised,0 1px 2px #0f172a0a, 0 1px 4px #0f172a0f);--gdant-shadow-overlay:var(--shadow-overlay,0 4px 12px #0f172a14, 0 2px 6px #0f172a0a);--gdant-shadow-modal:var(--shadow-modal,0 16px 48px #0f172a29, 0 4px 12px #0f172a14);--gdant-spacing-xs:var(--spacing-xs,4px);--gdant-spacing-sm:var(--spacing-sm,8px);--gdant-spacing-md:var(--spacing-md,12px);--gdant-spacing-base:var(--spacing-base,16px);--gdant-spacing-lg:var(--spacing-lg,20px);--gdant-spacing-xl:var(--spacing-xl,24px);--gdant-text-body:var(--text-body,14px);--gdant-text-body-sm:var(--text-body-sm,12px);--gdant-text-h3:var(--text-h3,16px);--gdant-font-medium:var(--font-medium,500);--gdant-font-semibold:var(--font-semibold,600);--gdant-duration-normal:var(--duration-normal,.2s);--gdant-duration-slow:var(--duration-slow,.3s);--gdant-easing-default:var(--easing-default,cubic-bezier(.2, 0, 0, 1));--gdant-overlay-bg:#ffffffb8;--gdant-z-overlay:var(--z-overlay,1040);--gdant-z-modal:var(--z-modal,1050)}.gd-contract-template-designer{--gd-toolbar-control-height:30px;--gd-toolbar-radius:10px;--gd-toolbar-gap:8px;--gd-toolbar-border:var(--gdant-neutral-200);--gd-toolbar-bg:var(--gdant-neutral-0);--gd-toolbar-muted-bg:var(--gdant-neutral-50);--gd-toolbar-shadow:var(--gdant-shadow-raised);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-100);min-height:640px;color:var(--gdant-neutral-800);flex-direction:column;font-size:14px;display:flex;overflow:hidden;container-type:inline-size}.gd-contract-template-designer__layout{--gd-sidebar-expanded:260px;--gd-inspector-expanded:300px;flex:auto;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.gd-contract-template-designer__file-bar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-md);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);display:flex}.gd-contract-template-designer__file-list{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-width:thin;flex:auto;padding-block:2px;padding-inline-end:var(--gdant-spacing-xs);display:flex;overflow-x:auto}.gd-contract-template-designer__file-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);min-width:128px;max-width:280px;height:34px;transition:border-color var(--gdant-duration-fast) var(--gdant-easing-default), background var(--gdant-duration-fast) var(--gdant-easing-default), box-shadow var(--gdant-duration-fast) var(--gdant-easing-default);flex:none;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);box-shadow:inset 3px 0 0 var(--gdant-primary-500)}.gd-contract-template-designer__file-tab{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:100%;padding:0 var(--gdant-spacing-sm);color:var(--gdant-neutral-700);cursor:pointer;text-align:left;background:0 0;border:0;flex:auto;display:inline-flex}.gd-contract-template-designer__file-tab small{color:var(--gdant-neutral-500);flex:none;font-size:11px}.gd-contract-template-designer__file-index{background:var(--gdant-neutral-200);width:18px;height:18px;color:var(--gdant-neutral-600);font-size:11px;font-weight:var(--gdant-font-semibold);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active .gd-contract-template-designer__file-index{background:var(--gdant-primary-500);color:var(--gdant-neutral-0)}.gd-contract-template-designer__file-name{min-width:0;font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.gd-contract-template-designer__file-actions{flex:none;align-items:center;padding-inline-end:2px;display:inline-flex}.gd-contract-template-designer__file-actions .ant-btn-sm{width:24px;min-width:24px;height:24px;padding:0}.gd-contract-template-designer__file-rename{width:180px;margin-inline:var(--gdant-spacing-xs)}.gd-contract-template-designer__file-add.ant-btn-sm{border-color:var(--gdant-primary-200);height:30px;color:var(--gdant-primary-600);flex:none}.gd-contract-template-designer.is-fullscreen{z-index:980;border-radius:0;width:100vw;min-height:0;position:fixed;inset:0;height:100dvh!important}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector{z-index:1;background:var(--gdant-neutral-0);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);flex-direction:column;display:flex;position:relative;overflow:visible}.gd-contract-template-designer__sidebar{width:var(--gd-sidebar-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__sidebar.is-collapsed{border-right-width:0;width:0}.gd-contract-template-designer__inspector.is-collapsed{border-left-width:0;width:0}.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack{visibility:hidden}.gd-contract-template-designer__workspace{grid-template-rows:auto auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.gd-contract-template-designer__workspace-header{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-0) 0%, var(--gdant-neutral-50) 100%);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__workspace-meta{align-content:center;gap:2px;min-width:0;min-height:38px;display:grid}.gd-contract-template-designer__workspace-meta>span{color:var(--gdant-neutral-500);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.gd-contract-template-designer__workspace-meta>strong{color:var(--gdant-neutral-800);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.gd-contract-template-designer__workspace-meta>small{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__draft-cache-status.is-success{color:var(--gdant-success-600)}.gd-contract-template-designer__draft-cache-status.is-warning,.gd-contract-template-designer__draft-cache-status.is-error{color:var(--gdant-warning-700)}.gd-contract-template-designer__workspace-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.gd-contract-template-designer__workspace-controls,.gd-contract-template-designer__workspace-buttons{align-items:center;gap:var(--gd-toolbar-gap);border:1px solid var(--gd-toolbar-border);border-radius:var(--gdant-radius-xl);background:var(--gd-toolbar-bg);box-shadow:var(--gd-toolbar-shadow);padding:4px;display:flex}.gd-contract-template-designer__workspace-buttons{flex-wrap:wrap}.gd-contract-template-designer__toolbar{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-50) 0%, var(--gdant-neutral-50) 100%);align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__toolbar-section{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.gd-contract-template-designer__toolbar-section--main{flex-wrap:nowrap;flex:auto;gap:8px 0}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:nowrap;flex-shrink:0}.gd-contract-template-designer__toolbar-section--main>.gd-contract-template-designer__toolbar-group:first-child:before{display:none}.gd-contract-template-designer__toolbar-select{flex:none;min-width:80px;max-width:112px}.gd-contract-template-designer__toolbar-select.is-wide{min-width:108px;max-width:132px}.gd-contract-template-designer__toolbar-number{width:78px}.gd-contract-template-designer__icon-button.ant-btn-sm{width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);min-width:var(--gd-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-designer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-designer__icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__toolbar-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.gd-contract-template-designer__toolbar-group:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar .gd-contract-template-designer__icon-button.ant-btn-sm:not(.is-selected):not(.ant-btn-primary):hover:not(:disabled){background:var(--gdant-neutral-100)}.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__workspace-actions .ant-btn-sm{min-width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);border-radius:var(--gdant-radius-lg);padding-inline:10px;font-weight:500}.gd-contract-template-designer__toolbar .ant-btn-sm.ant-btn-icon-only,.gd-contract-template-designer__workspace-actions .ant-btn-sm.ant-btn-icon-only{padding-inline:0}.gd-contract-template-designer__toolbar .ant-select,.gd-contract-template-designer__workspace-actions .ant-select{align-self:stretch}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__toolbar .ant-input-number-input-wrap,.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__toolbar .gd-contract-template-designer__color,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-input-number-input-wrap,.gd-contract-template-designer__workspace-actions .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-btn-sm,.gd-contract-template-designer__workspace-actions .gd-contract-template-designer__color{height:var(--gd-toolbar-control-height)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number{border-radius:var(--gdant-radius-lg)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-select-selector{align-items:center;display:flex}.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-input-number-input{height:calc(var(--gd-toolbar-control-height) - 2px)}.gd-contract-template-designer__zoom{align-items:center;gap:var(--gd-toolbar-gap);flex:none;grid-template-columns:32px 56px 32px 32px 32px 32px;display:inline-grid}.gd-contract-template-designer__zoom>span{color:var(--gdant-neutral-600);text-align:center;white-space:nowrap;font-size:12px;line-height:24px}.gd-contract-template-designer__color{width:var(--gd-toolbar-control-height);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);padding:0}.gd-contract-template-designer__popover{gap:10px;min-width:220px;display:grid}.gd-contract-template-designer__popover>strong{color:var(--gdant-neutral-800);font-size:13px}.gd-contract-template-designer__control-insert-popover{--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);width:min(304px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-insert-popover{width:min(300px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-size-fields{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__image-size-fields label{gap:var(--gdant-spacing-xs);min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);display:grid}.gd-contract-template-designer__image-size-fields .ant-input-number{width:100%}.gd-contract-template-designer__hidden-file-input{display:none}.gd-contract-template-designer__canvas{scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;place-content:start center;gap:28px;min-width:0;min-height:0;padding:24px;display:grid;overflow:auto}.gd-contract-template-designer__validation{border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);gap:8px;padding:10px 12px;display:grid}.gd-contract-template-designer__validation-list{max-height:126px;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;gap:6px;padding-inline-end:var(--gdant-spacing-xs);display:grid;overflow:auto}.gd-contract-template-designer__validation-item{border:1px solid var(--gdant-error-50);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;color:var(--gdant-error-700);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;display:flex}.gd-contract-template-designer__validation-item:hover{border-color:var(--gdant-error-300);background:var(--gdant-error-50)}.gd-contract-template-designer__validation-item small{color:var(--gdant-neutral-500);flex:none}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__panel-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:20px;color:var(--gdant-neutral-700);display:flex}.gd-contract-template-designer__panel-head>strong{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-800);font-size:14px;font-weight:var(--gdant-font-semibold);display:inline-flex}.gd-contract-template-designer__panel-head>strong:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__panel-head>span{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-designer__panel-actions{gap:8px;display:flex}.gd-contract-template-designer__panel-stack{width:100%;min-width:0;height:100%;min-height:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;flex:auto;padding-inline-end:var(--gdant-spacing-xs);overflow:hidden auto}.gd-contract-template-designer__file-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__panel-stack::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__canvas::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__validation-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__file-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__canvas::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__validation-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-sidebar-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-inspector-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gd-contract-template-designer__panel-handle .anticon{font-size:10px}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-contract-template-designer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__toolbar-more{flex:none;align-items:center;display:flex;position:relative}.gd-contract-template-designer__toolbar-more:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar-more-panel{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);width:236px;max-width:calc(100vw - 24px);box-shadow:var(--gdant-shadow-modal);flex-direction:column;gap:12px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.gd-contract-template-designer__toolbar-more-section{flex-direction:column;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-title{color:var(--gdant-neutral-500);font-size:12px;line-height:18px}.gd-contract-template-designer__toolbar-more-slot{flex-wrap:wrap;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1;gap:6px;width:100%}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group:before{display:none}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select,.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select.is-wide{flex:92px;min-width:92px;max-width:none}.gd-contract-template-designer__nav-item,.gd-contract-template-designer__variable-chip,.gd-contract-template-designer__tool-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;min-height:36px;color:var(--gdant-neutral-700);cursor:pointer;text-align:left;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);justify-content:space-between;align-items:center;margin:0;padding:8px;display:flex}.gd-contract-template-designer__nav-item:hover,.gd-contract-template-designer__variable-chip:hover,.gd-contract-template-designer__tool-item:hover,.gd-contract-template-designer__nav-item.is-active,.gd-contract-template-designer__variable-chip.is-active,.gd-contract-template-designer__tool-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__nav-item:focus-visible,.gd-contract-template-designer__variable-chip:focus-visible,.gd-contract-template-designer__tool-item:focus-visible{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);outline:none}.gd-contract-template-designer__nav-item:disabled,.gd-contract-template-designer__variable-chip:disabled,.gd-contract-template-designer__tool-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__tool-item{justify-content:flex-start;gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__tool-item-icon{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);width:28px;height:28px;color:var(--gdant-primary-500);flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.gd-contract-template-designer__tool-item-icon .anticon,.gd-contract-template-designer__tool-item-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-designer__tool-item:disabled .gd-contract-template-designer__tool-item-icon{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__tool-item-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__nav-item>span{gap:2px;min-width:0;display:grid}.gd-contract-template-designer__page-nav-row{align-items:center;gap:var(--gdant-spacing-xs);margin-bottom:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.gd-contract-template-designer__page-nav-row .gd-contract-template-designer__nav-item{min-width:0;margin-bottom:0}.gd-contract-template-designer__page-nav-actions{gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-designer__page-nav-actions .gd-contract-template-designer__icon-button.ant-btn-sm{width:28px;min-width:28px;height:28px}.gd-contract-template-designer__nav-item small{max-width:92px;color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gd-contract-template-designer__page-config{border-top:1px dashed var(--gdant-neutral-300);gap:8px;margin-top:12px;padding-top:12px;display:grid}.gd-contract-template-designer__page-size-note{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__variable-form{gap:8px;margin-bottom:10px;display:grid}.gd-contract-template-designer__page-shell{margin:0 auto;position:relative}.gd-contract-template-designer__page-zoom{border-radius:var(--gdant-radius-lg);width:fit-content;transform:translateX(-50%) scale(var(--gd-contract-page-zoom,1));transform-origin:top;border:1px solid #0000;padding:3px;position:absolute;top:0;left:50%}.gd-contract-template-designer__page-zoom.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__page-title{color:var(--gdant-neutral-600);justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.gd-contract-template-designer__page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);padding:54px 64px;position:relative;overflow:hidden}.gd-contract-template-designer__signing-layer{z-index:var(--gdant-z-overlay);pointer-events:none;position:absolute;inset:0;overflow:hidden}.gd-contract-template-designer__signing-coordinate-guides{z-index:1;pointer-events:none;position:absolute;inset:0}.gd-contract-template-designer__signing-coordinate-guide{border-color:color-mix(in srgb, var(--gdant-primary-500) 70%, transparent);pointer-events:none;border-style:dashed;display:block;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal{top:var(--gd-contract-signing-y);width:var(--gd-contract-signing-x);border-top-width:1px;left:0}.gd-contract-template-designer__signing-coordinate-guide.is-vertical{top:0;left:var(--gd-contract-signing-x);height:var(--gd-contract-signing-y);border-left-width:1px}.gd-contract-template-designer__signing-coordinate-guide small{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-50);color:var(--gdant-primary-700);font-size:11px;font-weight:var(--gdant-font-medium);white-space:nowrap;padding:1px 4px;line-height:16px;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal small{bottom:3px;right:4px}.gd-contract-template-designer__signing-coordinate-guide.is-vertical small{top:4px;left:3px}.gd-contract-template-designer__signing-placement{z-index:2;place-content:center;gap:var(--gdant-spacing-xs);box-sizing:border-box;min-width:0;min-height:0;padding:var(--gdant-spacing-xs);border:2px dashed var(--gdant-primary-500);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-primary-50) 76%, transparent);color:var(--gdant-primary-700);cursor:move;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);display:grid;position:absolute;overflow:hidden}.gd-contract-template-designer__signing-placement.is-seal{border-color:var(--gdant-error-500);background:color-mix(in srgb, var(--gdant-error-50) 80%, transparent);color:var(--gdant-error-700)}.gd-contract-template-designer__signing-placement.is-date{border-color:var(--gdant-warning-500);background:color-mix(in srgb, var(--gdant-warning-50) 80%, transparent);color:var(--gdant-warning-700)}.gd-contract-template-designer__signing-placement:hover,.gd-contract-template-designer__signing-placement:focus-visible,.gd-contract-template-designer__signing-placement.is-selected{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 20%, transparent);border-style:solid;outline:none}.gd-contract-template-designer__signing-placement-visual{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;inset:6px}.gd-contract-template-designer.is-readonly .gd-contract-template-designer__signing-placement,.gd-contract-template-designer.is-disabled .gd-contract-template-designer__signing-placement{cursor:pointer}.gd-contract-template-designer__signing-placement-label{font-size:13px;font-weight:var(--gdant-font-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.gd-contract-template-designer__signing-placement-required{text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2;font-weight:var(--gdant-font-semibold);overflow:hidden}.gd-contract-template-designer__signing-tool{justify-content:flex-start;gap:var(--gdant-spacing-sm);border-style:dashed;min-width:0}.gd-contract-template-designer__signing-tool-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__signing-tool-label{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__signing-inspector-body{gap:var(--gdant-spacing-md);display:grid}.gd-contract-template-designer__inspector-section{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__inspector-section--nested{padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50)}.gd-contract-template-designer__inspector-section-title{color:var(--gdant-neutral-600);font-size:12px;font-weight:var(--gdant-font-medium);line-height:1.5}.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__switch-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__form-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__grid-form{margin-bottom:0}.gd-contract-template-designer__signing-inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__signing-inspector-actions .ant-btn{width:100%}.gd-contract-template-designer__signing-inspector-danger-action{padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__signing-empty{color:var(--gdant-neutral-500);margin:0;font-size:12px;line-height:1.6}.gd-contract-template-designer__editor-prose{min-height:var(--gd-contract-page-content-height,1000px);color:var(--gdant-neutral-800);font-family:var(--gd-contract-template-editor-font-family,"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif);outline:none;line-height:1.75}.gd-contract-template-designer__editor-prose p{margin:0 0 10px}.gd-contract-template-designer__editor-prose ul,.gd-contract-template-designer__editor-prose ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__editor-prose ul{list-style-type:disc}.gd-contract-template-designer__editor-prose ul ul{list-style-type:circle}.gd-contract-template-designer__editor-prose ul ul ul{list-style-type:square}.gd-contract-template-designer__editor-prose ol{list-style-type:decimal}.gd-contract-template-designer__editor-prose ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__editor-prose ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__preview .gd-contract-template-page ul,.gd-contract-template-designer__preview .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__preview .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-designer__preview .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-designer__preview .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-designer__preview .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-designer__preview .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__preview .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul,.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__editor-prose img,.gd-contract-template-designer__preview .gd-contract-template-page img,.gd-contract-template-renderer__page-frame .gd-contract-template-page img{object-fit:contain;vertical-align:middle;max-width:100%;display:inline-block}.gd-contract-template-designer__editor-prose img[width],.gd-contract-template-designer__editor-prose img[height],.gd-contract-template-designer__preview .gd-contract-template-page img[width],.gd-contract-template-designer__preview .gd-contract-template-page img[height],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[width],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[height]{max-width:none}.gd-contract-template-designer__editor-prose img:not([height]),.gd-contract-template-designer__preview .gd-contract-template-page img:not([height]),.gd-contract-template-renderer__page-frame .gd-contract-template-page img:not([height]){height:auto}.gd-contract-template-designer__editor-prose sup,.gd-contract-template-designer__editor-prose sub,.gd-contract-template-designer__preview .gd-contract-template-page sup,.gd-contract-template-designer__preview .gd-contract-template-page sub,.gd-contract-template-renderer__page-frame .gd-contract-template-page sup,.gd-contract-template-renderer__page-frame .gd-contract-template-page sub{line-height:0}.gd-contract-template-designer__editor-prose table{border-collapse:collapse;width:100%}.gd-contract-template-designer__editor-prose th,.gd-contract-template-designer__editor-prose td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__editor-prose .selectedCell:after{background:color-mix(in srgb, var(--gdant-primary-500) 14%, transparent)}.gd-contract-template-designer__page.is-variable-dragging .gd-contract-template-variable{cursor:grabbing}.gd-contract-template-variable{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);border-radius:var(--gdant-radius-xs);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));font-size:var(--gd-contract-variable-font-size,14px);font-family:var(--gd-contract-variable-font-family,inherit);text-align:var(--gd-contract-variable-text-align,left);vertical-align:middle;white-space:nowrap;border:1px solid #0000;margin:0 2px;padding:0 6px;line-height:1.5;transition:border-color .12s,background-color .12s,box-shadow .12s;display:inline-flex;position:relative}.gd-contract-template-variable:hover{border-color:var(--gdant-primary-300);background-color:color-mix(in srgb, var(--gdant-primary-50) 48%, transparent)}.gd-contract-template-variable.has-border{border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-style:var(--gd-contract-variable-border-style,solid)}.gd-contract-template-variable.has-underline{border-color:#0000;border-bottom-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-bottom-style:var(--gd-contract-variable-border-style,solid);border-radius:0}.gd-contract-template-variable.is-placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-variable.is-active{border-color:var(--gdant-warning-500);background-color:var(--gdant-warning-50);color:var(--gdant-warning-700);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-warning-500) 18%, transparent)}.gd-contract-template-variable.is-multiline{width:var(--gd-contract-variable-width,160px);height:var(--gd-contract-variable-multiline-height,84px);min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px);vertical-align:top;white-space:pre-wrap;padding:0 6px;display:inline-block;overflow:hidden}.gd-contract-template-variable.is-multiline.has-underline{background-image:linear-gradient(to bottom, transparent calc(100% - 1px), var(--gd-contract-variable-line-color,var(--gdant-neutral-600)) calc(100% - 1px));background-repeat:repeat-y;background-size:100% var(--gd-contract-variable-line-height,28px);border-bottom-color:#0000}.gd-contract-template-variable.is-number{font-variant-numeric:tabular-nums}.gd-contract-template-variable.is-checkbox{width:auto;min-width:var(--gd-contract-variable-width,96px);justify-content:flex-start;gap:6px;padding:0 2px}.gd-contract-template-variable.is-checkbox:before{border-radius:var(--gdant-radius-xs);content:"";border:1px solid;justify-content:center;align-items:center;width:13px;height:13px;font-size:10px;line-height:1;display:inline-flex}.gd-contract-template-variable.is-checkbox.is-checked:before{content:"✓"}.gd-contract-template-variable.is-image{min-height:var(--gd-contract-variable-height,96px);border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-300));border-style:var(--gd-contract-variable-border-style,dashed);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500));white-space:normal;justify-content:center;overflow:hidden}.gd-contract-template-variable.is-image.has-value{color:#0000}.gd-contract-template-variable.is-image.has-value:before{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain);content:"";position:absolute;inset:4px}.gd-contract-template-designer__form-row{color:var(--gdant-neutral-600);gap:6px;margin-bottom:12px;font-size:12px;display:grid}.gd-contract-template-designer__form-row.is-compact{margin-bottom:0}.gd-contract-template-designer__switch-row{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);min-height:28px;color:var(--gdant-neutral-600);justify-content:space-between;align-items:center;gap:12px;margin:0;padding:6px 8px;font-size:12px;display:flex}.gd-contract-template-designer__switch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.gd-contract-template-designer__tool-item small{color:var(--gdant-neutral-500);font-size:11px}.gd-contract-template-designer__grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.gd-contract-template-designer__table-picker{gap:var(--gdant-spacing-sm);margin:var(--gdant-spacing-sm) 0;display:grid}.gd-contract-template-designer__table-picker-label{color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-designer__table-picker-grid{gap:3px;width:fit-content;display:grid}.gd-contract-template-designer__table-picker-row{grid-template-columns:repeat(10,18px);gap:3px;display:grid}.gd-contract-template-designer__table-picker-cell{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);cursor:pointer;width:18px;height:18px;padding:0}.gd-contract-template-designer__table-picker-cell:hover,.gd-contract-template-designer__table-picker-cell.is-previewed{border-color:var(--gdant-primary-500);background:var(--gdant-primary-100)}.gd-contract-template-designer__table-picker-cell:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:1px}.gd-contract-template-designer__grid-form label{color:var(--gdant-neutral-600);gap:6px;font-size:12px;display:grid}.gd-contract-template-designer__popover-actions{justify-content:flex-end;gap:8px;display:flex}.gd-contract-template-designer__table-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.gd-contract-template-designer__context-menu{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xl);background:color-mix(in srgb, var(--gdant-neutral-0) 98%, transparent);min-width:240px;max-width:min(360px,100vw - 24px);box-shadow:var(--gdant-shadow-modal);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:8px;padding:10px;display:grid;position:fixed}.gd-contract-template-designer__context-menu-row{flex-wrap:wrap;gap:8px;display:flex}.gd-contract-template-designer__context-menu-group{border-bottom:1px solid var(--gdant-neutral-200);gap:6px;padding-bottom:8px;display:grid}.gd-contract-template-designer__context-menu-group>span{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__context-menu-group.is-danger{border-bottom:0;padding-bottom:0}.gd-contract-template-designer__image-context-menu{box-sizing:border-box;width:min(288px, 100vw - var(--gdant-spacing-xl));gap:var(--gdant-spacing-md);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none}.gd-contract-template-designer__image-context-title{gap:calc(var(--gdant-spacing-xs) / 2);display:grid}.gd-contract-template-designer__image-context-title strong{color:var(--gdant-neutral-800);font-size:var(--gdant-text-body)}.gd-contract-template-designer__image-context-title span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__text-context-menu{--gd-text-context-menu-gutter:var(--gdant-spacing-md);--gd-text-context-menu-width:calc(var(--gdant-spacing-xl) * 12 + var(--gdant-spacing-sm) * 2);--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);--gd-text-context-menu-thin:calc(var(--gdant-spacing-xs) / 2);width:min(var(--gd-text-context-menu-width), 100vw - var(--gd-text-context-menu-gutter) * 2);min-width:0;max-width:none;max-height:calc(100vh - var(--gd-text-context-menu-gutter) * 2);gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);box-shadow:var(--gdant-shadow-raised);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;overflow-y:auto}.gd-contract-template-designer__text-menu-row{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;padding:0;display:flex}.gd-contract-template-designer__text-menu-row+.gd-contract-template-designer__text-menu-row{padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-quick-insert{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gd-contract-template-designer__text-menu-quick-insert .ant-btn{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-quick-insert .ant-btn>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-group{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__text-menu-control-head{justify-content:space-between;align-items:baseline;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-700);font-size:var(--gdant-text-body-sm);display:flex}.gd-contract-template-designer__text-menu-control-head>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-options{gap:var(--gdant-spacing-xs);grid-template-columns:repeat(5,minmax(0,1fr));min-width:0;display:grid}.gd-contract-template-designer__text-menu-control-option{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:calc(var(--gd-text-context-menu-control-size) + var(--gdant-spacing-md));padding:var(--gdant-spacing-xs) var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);flex-direction:column;line-height:1.2;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-control-option .anticon{color:var(--gdant-primary-500);font-size:var(--gdant-text-h3);flex:none}.gd-contract-template-designer__text-menu-control-option span{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;display:block;overflow:hidden}.gd-contract-template-designer__text-menu-control-option:hover{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-control-option:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:var(--gd-text-context-menu-control-size);padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);line-height:1.2;display:inline-flex}.gd-contract-template-designer__text-menu-bind-toggle:hover:not(:disabled){border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-toggle:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__text-menu-bind-search{width:100%}.gd-contract-template-designer__text-menu-bind-list{gap:var(--gdant-spacing-xs);max-height:calc(var(--gdant-spacing-xl) * 5 + var(--gdant-spacing-md));display:grid;overflow:auto}.gd-contract-template-designer__text-menu-bind-item{align-items:flex-start;gap:var(--gdant-spacing-xs);width:100%;min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-800);cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;display:flex}.gd-contract-template-designer__text-menu-bind-item-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.gd-contract-template-designer__text-menu-bind-item-meta,.gd-contract-template-designer__text-menu-bind-empty{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-designer__text-menu-bind-empty{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);margin:0}.gd-contract-template-designer__text-menu-bind-item:hover,.gd-contract-template-designer__text-menu-bind-item:focus-visible{background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-item:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-row--controls{gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm{flex:0 0 var(--gd-text-context-menu-control-size);width:var(--gd-text-context-menu-control-size);min-width:var(--gd-text-context-menu-control-size);height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-700);background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900);border-color:#0000}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-100);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:focus-visible,.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:focus-visible,.gd-contract-template-designer__context-menu-color:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-divider{width:var(--gd-text-context-menu-thin);height:var(--gdant-spacing-base);margin:0 var(--gd-text-context-menu-thin);background:var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-font-size{min-width:calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-alignment{min-width:calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-row .ant-select-selector{min-height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm)}.gd-contract-template-designer__text-menu-row .ant-select-focused .ant-select-selector{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent)}.gd-contract-template-designer__text-menu-row .ant-select-selection-search-input,.gd-contract-template-designer__text-menu-row .ant-select-selection-item{line-height:calc(var(--gd-text-context-menu-control-size) - var(--gdant-spacing-xs) / 2)}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:var(--gd-text-context-menu-control-size);padding:0 var(--gdant-spacing-sm);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);flex:1 1 0;display:inline-flex}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:hover:not(:disabled){border-color:var(--gdant-error-200);background:var(--gdant-error-50);color:var(--gdant-error-600)}.gd-contract-template-designer__table-context-menu{box-sizing:border-box;width:min(240px,100vw - 16px);min-width:0;max-width:none;max-height:min(520px,100vh - 24px);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;animation:gd-contract-template-table-menu-enter var(--gdant-duration-normal) var(--gdant-easing-default);display:block;overflow:hidden auto}.gd-contract-template-designer__table-menu-group{gap:calc(var(--gdant-spacing-xs) / 2);padding:var(--gdant-spacing-xs) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__table-menu-group.is-stacked{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__table-menu-group+.gd-contract-template-designer__table-menu-group{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__table-menu-item{appearance:none;box-sizing:border-box;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:32px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);cursor:pointer;font:inherit;font-size:var(--gdant-text-body);letter-spacing:0;text-align:left;white-space:nowrap;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;line-height:20px;display:flex}.gd-contract-template-designer__table-menu-item .anticon{width:16px;color:var(--gdant-neutral-500);transition:color var(--gdant-duration-normal) var(--gdant-easing-default);flex:0 0 16px;font-size:15px}.gd-contract-template-designer__table-menu-item:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900)}.gd-contract-template-designer__table-menu-item:hover:not(:disabled) .anticon{color:var(--gdant-neutral-700)}.gd-contract-template-designer__table-menu-item:focus-visible,.gd-contract-template-designer__table-menu-align-item:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:-2px}.gd-contract-template-designer__table-menu-item:disabled,.gd-contract-template-designer__table-menu-align-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__table-menu-item:disabled .anticon{color:var(--gdant-neutral-400)}.gd-contract-template-designer__table-menu-item.is-danger{color:var(--gdant-error-700);grid-column:1/-1}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled){background:var(--gdant-error-50);color:var(--gdant-error-700)}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled) .anticon{color:var(--gdant-error-600)}.gd-contract-template-designer__table-menu-align{align-items:center;gap:var(--gdant-spacing-sm);min-height:38px;padding:calc(var(--gdant-spacing-xs) / 2) var(--gdant-spacing-sm);grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__table-menu-align-label{min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.gd-contract-template-designer__table-menu-align-options{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-100);grid-template-columns:repeat(3,30px);gap:2px;padding:2px;display:grid}.gd-contract-template-designer__table-menu-align-item{appearance:none;border-radius:var(--gdant-radius-sm);width:30px;height:28px;color:var(--gdant-neutral-600);cursor:pointer;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;place-items:center;padding:0;font-size:15px;display:grid}.gd-contract-template-designer__table-menu-align-item:hover:not(:disabled){background:var(--gdant-neutral-200);color:var(--gdant-neutral-800)}.gd-contract-template-designer__table-menu-align-item.is-selected{background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-raised);color:var(--gdant-primary-600)}.gd-contract-template-designer__table-menu-danger{margin-top:var(--gdant-spacing-xs);padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}@keyframes gd-contract-template-table-menu-enter{0%{opacity:0;transform:translateY(-2px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__table-context-menu{animation:none}.gd-contract-template-designer__table-menu-item,.gd-contract-template-designer__table-menu-item .anticon,.gd-contract-template-designer__table-menu-align-item,.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__panel-handle,.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-handle{transition:none}}@media (width<=260px){.gd-contract-template-designer__table-menu-group{grid-template-columns:minmax(0,1fr)}}.gd-contract-template-designer__sr-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.gd-contract-template-designer__context-menu-field{flex:112px;min-width:112px}.gd-contract-template-designer__context-menu-color{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);cursor:pointer;width:40px;height:32px;padding:0}.gd-contract-template-designer.is-disabled{opacity:.68;pointer-events:none}.gd-contract-template-designer__preview-modal .ant-modal{max-width:calc(100vw - 32px)}.gd-contract-template-designer__preview-modal .ant-modal-body{padding:0}.gd-contract-template-designer__preview{background:var(--gdant-neutral-100);max-height:calc(100vh - 180px);padding:32px;display:block;overflow:auto}.gd-contract-template-designer__preview.is-multi-file{padding:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-columns:220px minmax(0,1fr);height:min(720px,100vh - 180px);min-height:420px;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{gap:var(--gdant-spacing-xs);min-width:0;padding:var(--gdant-spacing-md);border-right:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-50);flex-direction:column;display:flex;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{padding:0 var(--gdant-spacing-sm) var(--gdant-spacing-sm);color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:44px;padding:var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab:hover,.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab.is-active{border-color:var(--gdant-primary-200);background:var(--gdant-neutral-0);color:var(--gdant-primary-600)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout>.gd-contract-template-designer__preview-file{min-width:0;max-height:100%;margin:0;padding:24px;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell{width:fit-content;max-width:100%;margin:0 auto 24px}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell:last-child{margin-bottom:0}.gd-contract-template-designer__preview .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);color:var(--gdant-neutral-800);padding:54px 64px;line-height:1.75;position:relative;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-designer__preview .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-designer__preview .gd-contract-template-page th,.gd-contract-template-designer__preview .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__preview-file+.gd-contract-template-designer__preview-file{margin-top:var(--gdant-spacing-xl);padding-top:var(--gdant-spacing-xl);border-top:1px solid var(--gdant-neutral-300)}.gd-contract-template-designer__preview-file-title{align-items:center;gap:var(--gdant-spacing-sm);width:fit-content;margin:0 auto var(--gdant-spacing-md);color:var(--gdant-neutral-800);font-size:var(--gdant-text-title);display:flex}.gd-contract-template-designer__preview-file-title:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__preview-signing-layer{z-index:2;pointer-events:none;position:absolute;inset:0 auto auto 0}.gd-contract-template-designer__preview-signing-placement{box-sizing:border-box;border:1px solid var(--gdant-primary-500);background:color-mix(in srgb, var(--gdant-success-50) 60%, transparent);min-width:0;min-height:0;color:var(--gdant-primary-300);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;overflow:hidden}.gd-contract-template-designer__preview-signing-placement-add{gap:var(--gdant-spacing-xs);box-sizing:border-box;overflow-wrap:anywhere;max-width:100%;padding:10px;display:grid;overflow:hidden}@media (width<=760px){.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{border-right:0;border-bottom:1px solid var(--gdant-neutral-200);flex-direction:row}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{display:none}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{flex:0 0 min(220px,72vw)}}.gd-contract-template-designer__submit-data-modal .ant-modal-body{padding:0}.gd-contract-template-designer__submit-data{background:var(--gdant-neutral-900);max-height:calc(100vh - 220px);color:var(--gdant-neutral-100);white-space:pre;margin:0;padding:16px 20px;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:12px;line-height:1.6;overflow:auto}.gd-contract-template-renderer{--gd-contract-renderer-background:var(--gdant-neutral-100);--gd-contract-renderer-surface:var(--gdant-neutral-0);--gd-contract-renderer-panel-width:336px;--gd-contract-renderer-page-gap:24px;--gd-contract-renderer-border-color:var(--gdant-neutral-300);--gd-contract-renderer-toolbar-control-height:30px;box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-background);min-height:420px;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""validation""body";display:grid;overflow:hidden}.gd-contract-template-renderer.is-disabled .gd-contract-template-renderer__field-list{opacity:.72}.gd-contract-template-renderer__header{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:56px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex-wrap:wrap;grid-area:header;display:flex}.gd-contract-template-renderer__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-contract-template-renderer__title-bar{width:var(--gdant-spacing-xs);height:var(--gdant-spacing-base);border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);flex:none}.gd-contract-template-renderer__header-meta{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-contract-template-renderer__header-meta strong{color:var(--gdant-neutral-900);font-size:var(--gdant-text-h3);font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-renderer__header-meta span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__progress-pill{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-primary-200);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-50);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);white-space:nowrap;flex:none}.gd-contract-template-renderer__progress-pill.is-warning{border-color:var(--gdant-warning-100);background:var(--gdant-warning-50);color:var(--gdant-warning-700)}.gd-contract-template-renderer__header-actions{align-items:center;gap:var(--gdant-spacing-sm);flex-wrap:wrap;flex:none;display:flex}.gd-contract-template-renderer__icon-button.ant-btn-sm{width:var(--gd-contract-renderer-toolbar-control-height);height:var(--gd-contract-renderer-toolbar-control-height);min-width:var(--gd-contract-renderer-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-renderer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-renderer__toolbar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-xl);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-raised);display:flex}.gd-contract-template-renderer__toolbar-group{align-items:center;gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-renderer__zoom-value{box-sizing:border-box;width:54px;color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;text-align:center}.gd-contract-template-renderer__page-select{width:min(240px,36vw)}.gd-contract-template-renderer__validation{gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);font-size:var(--gdant-text-body-sm);grid-area:validation;display:grid}.gd-contract-template-renderer__validation.is-success{background:var(--gdant-success-50);color:var(--gdant-success-600)}.gd-contract-template-renderer__validation.is-error{background:var(--gdant-error-50);color:var(--gdant-error-700);border-bottom-color:var(--gdant-error-100)}.gd-contract-template-renderer__validation-bar{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:28px;display:flex}.gd-contract-template-renderer__validation-toggle{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;text-decoration:underline}.gd-contract-template-renderer__validation-list{gap:var(--gdant-spacing-xs);max-height:132px;display:grid;overflow:auto}.gd-contract-template-renderer__validation-item{width:100%;padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-100);border-radius:var(--gdant-radius-md);background:var(--gdant-warning-50);color:var(--gdant-error-700);text-align:left;cursor:pointer}.gd-contract-template-renderer__empty{min-height:0;padding:var(--gdant-spacing-base);grid-area:body;place-items:center;display:grid}.gd-contract-template-renderer__workspace{gap:var(--gdant-spacing-base);min-height:0;padding:var(--gdant-spacing-md);grid-area:body;grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.gd-contract-template-renderer__workspace.is-inline{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__pages-viewport{min-width:0;min-height:0;padding:var(--gdant-spacing-xs) 0;overscroll-behavior:contain;overflow:auto}.gd-contract-template-renderer__pages{place-content:start center;gap:var(--gd-contract-renderer-page-gap);width:max-content;min-width:100%;padding:0 24px 24px;display:grid}.gd-contract-template-renderer__page-shell{justify-content:center;gap:8px;min-width:0;scroll-margin:12px;display:grid}.gd-contract-template-renderer__page-meta{width:100%;color:var(--gdant-neutral-600);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;font-size:12px;display:grid}.gd-contract-template-renderer__page-meta strong{color:var(--gdant-neutral-800);font-weight:600}.gd-contract-template-renderer__page-meta span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-renderer__page-meta small{font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-renderer__page-frame{flex:none;transition:width .1s cubic-bezier(.4,0,.2,1),height .1s cubic-bezier(.4,0,.2,1);position:relative}.gd-contract-template-renderer__page-frame .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-overlay);transform-origin:0 0;padding:54px 64px;line-height:1.75;position:absolute;inset:0 auto auto 0;overflow:hidden}.gd-contract-template-renderer__page-frame .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-renderer__page-frame .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-renderer__page-frame .gd-contract-template-page th,.gd-contract-template-renderer__page-frame .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-renderer__panel-wrap{z-index:1;width:var(--gd-contract-renderer-panel-width);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);position:relative;overflow:visible}.gd-contract-template-renderer__panel-wrap.is-collapsed{width:0}.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:hidden}.gd-contract-template-renderer__panel-clip{width:100%;height:100%;overflow:hidden}.gd-contract-template-renderer__panel{gap:var(--gdant-spacing-sm);width:var(--gd-contract-renderer-panel-width);min-width:0;height:100%;min-height:0;padding:var(--gdant-spacing-md);border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-surface);flex-direction:column;display:flex;overflow:hidden}.gd-contract-template-renderer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);border-right:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.gd-contract-template-renderer__panel-handle .anticon{font-size:10px}.gd-contract-template-renderer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-renderer__panel-head{z-index:1;gap:var(--gdant-spacing-sm);padding-bottom:var(--gdant-spacing-sm);background:var(--gd-contract-renderer-surface);display:grid;position:sticky;top:0}.gd-contract-template-renderer__panel-head-row{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-md);display:flex}.gd-contract-template-renderer__panel-head-row>div{gap:var(--gdant-spacing-xs);display:grid}.gd-contract-template-renderer__panel-head-row strong{font-size:15px}.gd-contract-template-renderer__panel-head-row span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__panel-head-actions{gap:var(--gdant-spacing-sm);flex-wrap:wrap;display:flex}.gd-contract-template-renderer__field-list{flex:auto;align-content:start;gap:12px;min-height:0;display:grid;overflow:auto}.gd-contract-template-renderer__field{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);gap:8px;padding:12px;display:grid}.gd-contract-template-renderer__field.is-active{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 12%, transparent)}.gd-contract-template-renderer__field.has-error{border-color:var(--gdant-error-300)}.gd-contract-template-renderer__field .ant-input-number,.gd-contract-template-renderer__field .ant-picker{width:100%}.gd-contract-template-renderer__field-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gd-contract-template-renderer__field-head strong{overflow-wrap:anywhere;min-width:0;font-size:14px}.gd-contract-template-renderer__field-head small{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-renderer__field-title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;max-width:100%;display:inline-flex}.gd-contract-template-renderer__field-type-icon{color:var(--gdant-neutral-500);flex:none;align-items:center;font-size:1em;line-height:1;display:inline-flex}.gd-contract-template-renderer__field-type-icon .anticon,.gd-contract-template-renderer__field-type-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-renderer__field-title-text{overflow-wrap:anywhere;min-width:0}.gd-contract-template-renderer__field-required{color:var(--gdant-error-600);margin-left:2px}.gd-contract-template-renderer__field-checkbox{align-items:center;gap:8px;min-height:32px;display:inline-flex}.gd-contract-template-renderer__image-field{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.gd-contract-template-renderer__image-preview{border:1px dashed var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);min-width:0;color:var(--gdant-neutral-500);grid-column:1/-1;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;padding:8px;font-size:12px;display:grid}.gd-contract-template-renderer__image-preview .ant-image,.gd-contract-template-renderer__image-preview .ant-image-img{border-radius:var(--gdant-radius-sm);object-fit:contain;width:96px;height:56px}.gd-contract-template-renderer__field-errors{color:var(--gdant-error-600);gap:4px;font-size:12px;display:grid}.gd-contract-template-renderer__control{box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));background:var(--gd-contract-variable-background,transparent);font-family:var(--gd-contract-variable-font-family,inherit);font-size:var(--gd-contract-variable-font-size,14px);text-align:var(--gd-contract-variable-text-align,left);vertical-align:baseline;border:0;border-radius:0;outline:none;padding:0 4px}.gd-contract-template-renderer__control::placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__control.has-border{border:1px var(--gd-contract-variable-border-style,solid) var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-contract-template-renderer__control.has-underline{border-bottom:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-contract-template-renderer__control.is-multiline{min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px);resize:vertical;display:inline-block}.gd-contract-template-renderer__preview-control{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);cursor:pointer;display:inline-flex}.gd-contract-template-renderer__preview-control.is-image{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain)}.gd-contract-template-renderer__preview-control.is-empty{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__preview-control.is-active{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 24%, transparent)}.gd-contract-template-renderer__preview-control:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 32%, transparent)}.gd-contract-template-renderer__checkbox-mark{border:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600));justify-content:center;align-items:center;width:14px;height:14px;font-size:12px;line-height:1;display:inline-flex}label.gd-contract-template-renderer__control{align-items:center;gap:6px;display:inline-flex}label.gd-contract-template-renderer__control input{margin:0}@media (width<=960px){.gd-contract-template-renderer__header{align-items:flex-start}.gd-contract-template-renderer__workspace{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-wrap.is-collapsed{width:auto;overflow:visible}.gd-contract-template-renderer__panel-clip,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:visible;height:auto;overflow:visible}.gd-contract-template-renderer__panel,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel{width:100%;max-height:420px}.gd-contract-template-renderer__panel-handle,.gd-contract-template-renderer__panel-toggle{display:none!important}}@media (width<=640px){.gd-contract-template-renderer{min-height:0}.gd-contract-template-renderer__header{padding:var(--gdant-spacing-sm);flex-direction:column;align-items:stretch}.gd-contract-template-renderer__header-actions{justify-content:flex-start}.gd-contract-template-renderer__workspace{padding:var(--gdant-spacing-sm)}.gd-contract-template-renderer__toolbar{flex-direction:column;align-items:stretch}.gd-contract-template-renderer__toolbar-group{justify-content:space-between}.gd-contract-template-renderer__page-select{width:100%}.gd-contract-template-renderer__pages{padding-inline:var(--gdant-spacing-sm);justify-content:start}.gd-contract-template-renderer__page-meta{grid-template-columns:auto minmax(0,1fr)}.gd-contract-template-renderer__page-meta small{grid-column:1/-1}}@media (width<=1180px){.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__toolbar{padding-inline:12px}.gd-contract-template-designer__canvas{justify-content:start}.gd-contract-template-designer__page-shell{margin-inline:0}}@media (height<=820px) and (width>=761px){.gd-contract-template-designer{min-height:560px}.gd-contract-template-designer__file-bar,.gd-contract-template-designer__workspace-header,.gd-contract-template-designer__toolbar{padding-block:var(--gdant-spacing-xs)}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-xs);padding-block:var(--gdant-spacing-sm)}.gd-contract-template-designer__canvas{gap:var(--gdant-spacing-base);padding-block:var(--gdant-spacing-base)}}@media (width<=760px){.gd-contract-template-designer{height:auto;min-height:0;overflow:visible}.gd-contract-template-designer__layout,.gd-contract-template-designer__layout.is-sidebar-collapsed,.gd-contract-template-designer__layout.is-inspector-collapsed,.gd-contract-template-designer__layout.is-sidebar-collapsed.is-inspector-collapsed{grid-template-rows:auto minmax(560px,1fr) auto;grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__file-bar{flex-direction:column;align-items:stretch}.gd-contract-template-designer__file-add.ant-btn-sm{align-self:flex-start}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__sidebar.is-collapsed,.gd-contract-template-designer__inspector.is-collapsed{border:0;width:auto;max-height:360px;overflow:auto}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{visibility:visible;width:100%}.gd-contract-template-designer__panel-handle,.gd-contract-template-designer__toolbar-more{display:none!important}.gd-contract-template-designer__toolbar-section--main{flex-wrap:wrap;row-gap:8px;display:flex}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1}.gd-contract-template-designer__sidebar{border-bottom:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__workspace{min-height:560px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__canvas{justify-content:start;padding:16px 8px}}@container (width<=1279px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:220px;--gd-inspector-expanded:260px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__canvas{justify-content:start}}@container (width<=1079px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:200px;--gd-inspector-expanded:240px}}
1
+ :root{--gdant-primary-50:var(--primary-50,#f4f9ff);--gdant-primary-100:var(--primary-100,#e9f1f6);--gdant-primary-200:var(--primary-200,#bcd7ff);--gdant-primary-300:var(--primary-300,#7fb0ff);--gdant-primary-400:var(--primary-400,#3b87ff);--gdant-primary-500:var(--primary-500,#1161ff);--gdant-primary-600:var(--primary-600,#0d4ed1);--gdant-primary-700:var(--primary-700,#0a3da5);--gdant-primary-800:var(--primary-800,#082c79);--gdant-primary-900:var(--primary-900,#05204d);--gdant-neutral-0:var(--neutral-0,#fff);--gdant-neutral-50:var(--neutral-50,#fafbfc);--gdant-neutral-100:var(--neutral-100,#f5f6f8);--gdant-neutral-200:var(--neutral-200,#eaecef);--gdant-neutral-300:var(--neutral-300,#d9dce0);--gdant-neutral-400:var(--neutral-400,#aab0b7);--gdant-neutral-500:var(--neutral-500,#7a818b);--gdant-neutral-600:var(--neutral-600,#565b66);--gdant-neutral-700:var(--neutral-700,#383d47);--gdant-neutral-800:var(--neutral-800,#262a33);--gdant-neutral-900:var(--neutral-900,#0f131a);--gdant-success-50:var(--success-50,#e8f9ed);--gdant-success-500:var(--success-500,#00b42a);--gdant-success-600:var(--success-600,#009023);--gdant-warning-50:var(--warning-50,#fff3e8);--gdant-warning-100:var(--warning-100,#ffe4cc);--gdant-warning-500:var(--warning-500,#f58634);--gdant-warning-600:var(--warning-600,#d96c1c);--gdant-warning-700:var(--warning-700,#b35316);--gdant-error-50:var(--error-50,#fde9e9);--gdant-error-100:var(--error-100,#fcd4d4);--gdant-error-300:var(--error-300,#f47070);--gdant-error-500:var(--error-500,#ee3939);--gdant-error-600:var(--error-600,#c92626);--gdant-error-700:var(--error-700,#a31c1c);--gdant-radius-xs:var(--radius-xs,2px);--gdant-radius-sm:var(--radius-sm,4px);--gdant-radius-md:var(--radius-md,6px);--gdant-radius-lg:var(--radius-lg,8px);--gdant-radius-xl:var(--radius-xl,12px);--gdant-radius-pill:var(--radius-pill,9999px);--gdant-shadow-raised:var(--shadow-raised,0 1px 2px #0f172a0a, 0 1px 4px #0f172a0f);--gdant-shadow-overlay:var(--shadow-overlay,0 4px 12px #0f172a14, 0 2px 6px #0f172a0a);--gdant-shadow-modal:var(--shadow-modal,0 16px 48px #0f172a29, 0 4px 12px #0f172a14);--gdant-spacing-xs:var(--spacing-xs,4px);--gdant-spacing-sm:var(--spacing-sm,8px);--gdant-spacing-md:var(--spacing-md,12px);--gdant-spacing-base:var(--spacing-base,16px);--gdant-spacing-lg:var(--spacing-lg,20px);--gdant-spacing-xl:var(--spacing-xl,24px);--gdant-text-body:var(--text-body,14px);--gdant-text-body-sm:var(--text-body-sm,12px);--gdant-text-h3:var(--text-h3,16px);--gdant-font-medium:var(--font-medium,500);--gdant-font-semibold:var(--font-semibold,600);--gdant-duration-normal:var(--duration-normal,.2s);--gdant-duration-slow:var(--duration-slow,.3s);--gdant-easing-default:var(--easing-default,cubic-bezier(.2, 0, 0, 1));--gdant-overlay-bg:#ffffffb8;--gdant-z-overlay:var(--z-overlay,1040);--gdant-z-modal:var(--z-modal,1050)}.gd-contract-template-designer{--gd-toolbar-control-height:30px;--gd-toolbar-radius:10px;--gd-toolbar-gap:8px;--gd-toolbar-border:var(--gdant-neutral-200);--gd-toolbar-bg:var(--gdant-neutral-0);--gd-toolbar-muted-bg:var(--gdant-neutral-50);--gd-toolbar-shadow:var(--gdant-shadow-raised);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-100);min-height:640px;color:var(--gdant-neutral-800);flex-direction:column;font-size:14px;display:flex;overflow:hidden;container-type:inline-size}.gd-contract-template-designer__layout{--gd-sidebar-expanded:260px;--gd-inspector-expanded:300px;flex:auto;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.gd-contract-template-designer__file-bar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-md);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);display:flex}.gd-contract-template-designer__file-list{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-width:thin;flex:auto;padding-block:2px;padding-inline-end:var(--gdant-spacing-xs);display:flex;overflow-x:auto}.gd-contract-template-designer__file-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);min-width:128px;max-width:280px;height:34px;transition:border-color var(--gdant-duration-fast) var(--gdant-easing-default), background var(--gdant-duration-fast) var(--gdant-easing-default), box-shadow var(--gdant-duration-fast) var(--gdant-easing-default);flex:none;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);box-shadow:inset 3px 0 0 var(--gdant-primary-500)}.gd-contract-template-designer__file-tab{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:100%;padding:0 var(--gdant-spacing-sm);color:var(--gdant-neutral-700);cursor:pointer;text-align:left;background:0 0;border:0;flex:auto;display:inline-flex}.gd-contract-template-designer__file-tab small{color:var(--gdant-neutral-500);flex:none;font-size:11px}.gd-contract-template-designer__file-index{background:var(--gdant-neutral-200);width:18px;height:18px;color:var(--gdant-neutral-600);font-size:11px;font-weight:var(--gdant-font-semibold);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.gd-contract-template-designer__file-item.is-active .gd-contract-template-designer__file-index{background:var(--gdant-primary-500);color:var(--gdant-neutral-0)}.gd-contract-template-designer__file-name{min-width:0;font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.gd-contract-template-designer__file-actions{flex:none;align-items:center;padding-inline-end:2px;display:inline-flex}.gd-contract-template-designer__file-actions .ant-btn-sm{width:24px;min-width:24px;height:24px;padding:0}.gd-contract-template-designer__file-rename{width:180px;margin-inline:var(--gdant-spacing-xs)}.gd-contract-template-designer__file-add.ant-btn-sm{border-color:var(--gdant-primary-200);height:30px;color:var(--gdant-primary-600);flex:none}.gd-contract-template-designer.is-fullscreen{z-index:980;border-radius:0;width:100vw;min-height:0;position:fixed;inset:0;height:100dvh!important}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector{z-index:1;background:var(--gdant-neutral-0);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);flex-direction:column;display:flex;position:relative;overflow:visible}.gd-contract-template-designer__sidebar{width:var(--gd-sidebar-expanded);border-right:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{width:var(--gd-inspector-expanded);border-left:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__sidebar.is-collapsed{border-right-width:0;width:0}.gd-contract-template-designer__inspector.is-collapsed{border-left-width:0;width:0}.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack{visibility:hidden}.gd-contract-template-designer__workspace{grid-template-rows:auto auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.gd-contract-template-designer__validation{grid-row:3}.gd-contract-template-designer__canvas{grid-row:4}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm{align-items:center;gap:var(--gdant-spacing-xs);min-width:156px;height:var(--gd-toolbar-control-height);text-align:left;padding-inline:8px;display:inline-flex}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm>.anticon{flex:none}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy{min-width:0;line-height:1.1;display:grid}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy>span,.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy>small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm .gd-contract-template-designer__page-decorations-trigger-copy>small{color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.gd-contract-template-designer__page-decorations-trigger.ant-btn-sm.is-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__page-decorations-studio{z-index:var(--gdant-z-overlay);border-left:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:min(480px,68%);min-width:0;box-shadow:var(--gdant-shadow-modal);pointer-events:auto;flex-direction:column;grid-row:4;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;container:page-decorations-studio/inline-size}.gd-contract-template-designer__page-decorations-studio-head,.gd-contract-template-designer__page-decorations-studio-footer{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex:none;display:flex}.gd-contract-template-designer__page-decorations-studio-head{z-index:1;position:relative}.gd-contract-template-designer__page-decorations-studio-title,.gd-contract-template-designer__page-decorations-studio-actions,.gd-contract-template-designer__page-decorations-studio-footer>div{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-contract-template-designer__page-decorations-studio-title>div{gap:2px;min-width:0;display:grid}.gd-contract-template-designer__page-decorations-studio-title strong{color:var(--gdant-neutral-900);font-size:15px;font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__page-decorations-studio-title small,.gd-contract-template-designer__page-decorations-studio-footer>span,.gd-contract-template-designer__page-decorations-studio-section-head small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption);line-height:1.5}.gd-contract-template-designer__page-decorations-studio-icon{border-radius:var(--gdant-radius-md);background:var(--gdant-primary-50);width:28px;height:28px;color:var(--gdant-primary-600);flex:none;justify-content:center;align-items:center;display:inline-flex}.gd-contract-template-designer__page-decorations-studio-body{min-width:0;min-height:0;padding:var(--gdant-spacing-md);background:var(--gdant-neutral-50);flex:auto;display:block;overflow:auto}.gd-contract-template-designer__page-decorations-studio-form-section{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);min-width:0}.gd-contract-template-designer__page-decorations-studio-form-section>.gd-contract-template-designer__panel--decorations{border-bottom:0;width:auto}.gd-contract-template-designer__page-decorations-studio-form-section>.gd-contract-template-designer__panel--decorations.is-embedded{padding:var(--gdant-spacing-md)}.gd-contract-template-designer__decoration-plan{align-items:end;gap:var(--gdant-spacing-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__decoration-plan .gd-contract-template-designer__form-row{margin:0}.gd-contract-template-designer__decoration-errors{margin-block:var(--gdant-spacing-sm)}.gd-contract-template-designer__decoration-errors ul{margin:0;padding-inline-start:var(--gdant-spacing-xl)}.gd-contract-template-designer__decoration-advanced{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50)}.gd-contract-template-designer__decoration-advanced summary{padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-medium)}.gd-contract-template-designer__decoration-advanced-content{gap:var(--gdant-spacing-sm);padding:0 var(--gdant-spacing-md) var(--gdant-spacing-md);display:grid}.gd-contract-template-designer__color-control{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:inline-flex}.gd-contract-template-designer__color-control code{color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gd-contract-template-designer__page-decorations-studio-footer{border-top:1px solid var(--gdant-neutral-200);border-bottom:0}.gd-contract-template-designer__workspace-header{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-0) 0%, var(--gdant-neutral-50) 100%);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__workspace-meta{align-content:center;gap:2px;min-width:0;min-height:38px;display:grid}.gd-contract-template-designer__workspace-meta>span{color:var(--gdant-neutral-500);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.gd-contract-template-designer__workspace-meta>strong{color:var(--gdant-neutral-800);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.gd-contract-template-designer__workspace-meta>small{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__draft-cache-status.is-success{color:var(--gdant-success-600)}.gd-contract-template-designer__draft-cache-status.is-warning,.gd-contract-template-designer__draft-cache-status.is-error{color:var(--gdant-warning-700)}.gd-contract-template-designer__workspace-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.gd-contract-template-designer__workspace-controls,.gd-contract-template-designer__workspace-buttons{align-items:center;gap:var(--gd-toolbar-gap);border:1px solid var(--gd-toolbar-border);border-radius:var(--gdant-radius-xl);background:var(--gd-toolbar-bg);box-shadow:var(--gd-toolbar-shadow);padding:4px;display:flex}.gd-contract-template-designer__workspace-buttons{flex-wrap:wrap}.gd-contract-template-designer__toolbar{border-bottom:1px solid var(--gdant-neutral-200);background:linear-gradient(180deg, var(--gdant-neutral-50) 0%, var(--gdant-neutral-50) 100%);align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.gd-contract-template-designer__toolbar-section{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.gd-contract-template-designer__toolbar-section--main{flex-wrap:nowrap;flex:auto;gap:8px 0}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:nowrap;flex-shrink:0}.gd-contract-template-designer__toolbar-section--main>.gd-contract-template-designer__toolbar-group:first-child:before{display:none}.gd-contract-template-designer__toolbar-select{flex:none;min-width:80px;max-width:112px}.gd-contract-template-designer__toolbar-select.is-wide{min-width:108px;max-width:132px}.gd-contract-template-designer__block-format-option{line-height:1.4;display:block}.gd-contract-template-designer__block-format-option.is-level-1{font-size:16px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-2{font-size:15px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-3{font-size:14px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-4{font-size:13px;font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__block-format-option.is-level-5,.gd-contract-template-designer__block-format-option.is-level-6,.gd-contract-template-designer__block-format-option.is-mixed{font-size:13px}.gd-contract-template-designer__toolbar-number{width:78px}.gd-contract-template-designer__icon-button.ant-btn-sm{width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);min-width:var(--gd-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-designer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-designer__icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__toolbar-group{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.gd-contract-template-designer__toolbar-group:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar .gd-contract-template-designer__icon-button.ant-btn-sm:not(.is-selected):not(.ant-btn-primary):hover:not(:disabled){background:var(--gdant-neutral-100)}.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__workspace-actions .ant-btn-sm{min-width:var(--gd-toolbar-control-height);height:var(--gd-toolbar-control-height);border-radius:var(--gdant-radius-lg);padding-inline:10px;font-weight:500}.gd-contract-template-designer__toolbar .ant-btn-sm.ant-btn-icon-only,.gd-contract-template-designer__workspace-actions .ant-btn-sm.ant-btn-icon-only{padding-inline:0}.gd-contract-template-designer__toolbar .ant-select,.gd-contract-template-designer__workspace-actions .ant-select{align-self:stretch}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__toolbar .ant-input-number-input-wrap,.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__toolbar .ant-btn-sm,.gd-contract-template-designer__toolbar .gd-contract-template-designer__color,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-input-number-input-wrap,.gd-contract-template-designer__workspace-actions .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-btn-sm,.gd-contract-template-designer__workspace-actions .gd-contract-template-designer__color{height:var(--gd-toolbar-control-height)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__toolbar .ant-input-number,.gd-contract-template-designer__workspace-actions .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-input-number{border-radius:var(--gdant-radius-lg)}.gd-contract-template-designer__toolbar .ant-select-selector,.gd-contract-template-designer__workspace-actions .ant-select-selector{align-items:center;display:flex}.gd-contract-template-designer__toolbar .ant-input-number-input,.gd-contract-template-designer__workspace-actions .ant-input-number-input{height:calc(var(--gd-toolbar-control-height) - 2px)}.gd-contract-template-designer__zoom{align-items:center;gap:var(--gd-toolbar-gap);flex:none;grid-template-columns:32px 56px 32px 32px 32px 32px;display:inline-grid}.gd-contract-template-designer__zoom>span{color:var(--gdant-neutral-600);text-align:center;white-space:nowrap;font-size:12px;line-height:24px}.gd-contract-template-designer__color{width:var(--gd-toolbar-control-height);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);padding:0}.gd-contract-template-designer__popover{gap:10px;min-width:220px;display:grid}.gd-contract-template-designer__popover>strong{color:var(--gdant-neutral-800);font-size:13px}.gd-contract-template-designer__control-insert-popover{--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);width:min(304px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-insert-popover{width:min(300px, 100vw - var(--gdant-spacing-xl))}.gd-contract-template-designer__image-size-fields{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__image-size-fields label{gap:var(--gdant-spacing-xs);min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);display:grid}.gd-contract-template-designer__image-size-fields .ant-input-number{width:100%}.gd-contract-template-designer__hidden-file-input{display:none}.gd-contract-template-designer__canvas{scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin;place-content:start center;gap:28px;min-width:0;min-height:0;padding:24px;display:grid;overflow:auto}.gd-contract-template-designer__validation{border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);gap:8px;padding:10px 12px;display:grid}.gd-contract-template-designer__validation-list{max-height:126px;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;gap:6px;padding-inline-end:var(--gdant-spacing-xs);display:grid;overflow:auto}.gd-contract-template-designer__validation-item{border:1px solid var(--gdant-error-50);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;color:var(--gdant-error-700);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;display:flex}.gd-contract-template-designer__validation-item:hover{border-color:var(--gdant-error-300);background:var(--gdant-error-50)}.gd-contract-template-designer__validation-item small{color:var(--gdant-neutral-500);flex:none}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-sm);padding:var(--gdant-spacing-md) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__panel-head{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:20px;color:var(--gdant-neutral-700);display:flex}.gd-contract-template-designer__panel-head>strong{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-800);font-size:14px;font-weight:var(--gdant-font-semibold);display:inline-flex}.gd-contract-template-designer__panel-head>strong:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__panel-head>span{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-designer__panel-actions{gap:8px;display:flex}.gd-contract-template-designer__panel-stack{width:100%;min-width:0;height:100%;min-height:0;scrollbar-color:var(--gdant-neutral-300) transparent;scrollbar-gutter:stable;scrollbar-width:thin;flex:auto;padding-inline-end:var(--gdant-spacing-xs);overflow:hidden auto}.gd-contract-template-designer__file-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__panel-stack::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__canvas::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__validation-list::-webkit-scrollbar{width:10px;height:10px}.gd-contract-template-designer__file-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__canvas::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__validation-list::-webkit-scrollbar-track{background:0 0}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb{border-radius:var(--gdant-radius-xl);background:var(--gdant-neutral-300);background-clip:padding-box;border:3px solid #0000}.gd-contract-template-designer__file-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__panel-stack::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__canvas::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__validation-list::-webkit-scrollbar-thumb:hover{background:var(--gdant-neutral-400);background-clip:padding-box}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-sidebar-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{width:calc(var(--gd-inspector-expanded) - var(--gdant-spacing-xs));flex:none}.gd-contract-template-designer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gd-contract-template-designer__panel-handle .anticon{font-size:10px}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-handle{border-radius:0 var(--gdant-radius-md) var(--gdant-radius-md) 0;border-left:0;right:-14px}.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-handle{border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);border-right:0;left:-14px}.gd-contract-template-designer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__toolbar-more{flex:none;align-items:center;display:flex;position:relative}.gd-contract-template-designer__toolbar-more:before{background:var(--gdant-neutral-200);content:"";flex:none;align-self:center;width:1px;height:20px;margin-inline:4px}.gd-contract-template-designer__toolbar-more-panel{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);width:236px;max-width:calc(100vw - 24px);box-shadow:var(--gdant-shadow-modal);flex-direction:column;gap:12px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.gd-contract-template-designer__toolbar-more-section{flex-direction:column;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-title{color:var(--gdant-neutral-500);font-size:12px;line-height:18px}.gd-contract-template-designer__toolbar-more-slot{flex-wrap:wrap;gap:6px;display:flex}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1;gap:6px;width:100%}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-group:before{display:none}.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select,.gd-contract-template-designer__toolbar-more-slot .gd-contract-template-designer__toolbar-select.is-wide{flex:92px;min-width:92px;max-width:none}.gd-contract-template-designer__nav-item,.gd-contract-template-designer__variable-chip,.gd-contract-template-designer__tool-item{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:100%;min-height:36px;color:var(--gdant-neutral-700);cursor:pointer;text-align:left;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);justify-content:space-between;align-items:center;margin:0;padding:8px;display:flex}.gd-contract-template-designer__nav-item:hover,.gd-contract-template-designer__variable-chip:hover,.gd-contract-template-designer__tool-item:hover,.gd-contract-template-designer__nav-item.is-active,.gd-contract-template-designer__variable-chip.is-active,.gd-contract-template-designer__tool-item.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__nav-item:focus-visible,.gd-contract-template-designer__variable-chip:focus-visible,.gd-contract-template-designer__tool-item:focus-visible{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent);outline:none}.gd-contract-template-designer__nav-item:disabled,.gd-contract-template-designer__variable-chip:disabled,.gd-contract-template-designer__tool-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__tool-item{justify-content:flex-start;gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__tool-item-icon{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);width:28px;height:28px;color:var(--gdant-primary-500);flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.gd-contract-template-designer__tool-item-icon .anticon,.gd-contract-template-designer__tool-item-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-designer__tool-item:disabled .gd-contract-template-designer__tool-item-icon{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-designer__tool-item-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__nav-item>span{gap:2px;min-width:0;display:grid}.gd-contract-template-designer__page-nav-row{align-items:center;gap:var(--gdant-spacing-xs);margin-bottom:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.gd-contract-template-designer__page-nav-row .gd-contract-template-designer__nav-item{min-width:0;margin-bottom:0}.gd-contract-template-designer__page-nav-actions{gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-designer__page-nav-actions .gd-contract-template-designer__icon-button.ant-btn-sm{width:28px;min-width:28px;height:28px}.gd-contract-template-designer__nav-item small{max-width:92px;color:var(--gdant-neutral-500);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.gd-contract-template-designer__page-config{border-top:1px dashed var(--gdant-neutral-300);gap:8px;margin-top:12px;padding-top:12px;display:grid}.gd-contract-template-designer__page-size-note{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__variable-form{gap:8px;margin-bottom:10px;display:grid}.gd-contract-template-designer__page-shell{margin:0 auto;position:relative}.gd-contract-template-designer__page-zoom{border-radius:var(--gdant-radius-lg);width:fit-content;transform:translateX(-50%) scale(var(--gd-contract-page-zoom,1));transform-origin:top;border:1px solid #0000;padding:3px;position:absolute;top:0;left:50%}.gd-contract-template-designer__page-zoom.is-active{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50)}.gd-contract-template-designer__page-title{color:var(--gdant-neutral-600);justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.gd-contract-template-designer__page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);padding:54px 64px;position:relative;overflow:hidden}.gd-contract-template-page.has-contract-header{padding-top:80px}.gd-contract-template-designer__page:has(>.gd-contract-template-page__header){padding-top:80px}.gd-contract-template-page.has-contract-footer{padding-bottom:80px}.gd-contract-template-designer__page:has(>.gd-contract-template-page__footer){padding-bottom:80px}.gd-contract-template-page__content{z-index:1;position:relative}.gd-contract-template-page__header,.gd-contract-template-page__footer{z-index:2;align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding-block:var(--gdant-spacing-xs);pointer-events:none;grid-template-columns:repeat(3,minmax(0,1fr));line-height:1.5;display:grid;position:absolute;left:64px;right:64px}.gd-contract-template-page__header{top:24px}.gd-contract-template-page__footer{bottom:24px}.gd-contract-template-page__decoration-slot{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-page__decoration-slot.is-left{text-align:left}.gd-contract-template-page__decoration-slot.is-center{text-align:center}.gd-contract-template-page__decoration-slot.is-right{text-align:right}.gd-contract-template-page__watermark{z-index:0;letter-spacing:0;pointer-events:none;-webkit-user-select:none;user-select:none;display:grid;position:absolute;inset:0;overflow:hidden}.gd-contract-template-page__watermark.is-single{place-items:center}.gd-contract-template-page__watermark.is-tiled{grid-template-columns:repeat(var(--gd-watermark-columns), minmax(0, 1fr));grid-template-rows:repeat(var(--gd-watermark-rows), minmax(0, 1fr));padding:72px 40px}.gd-contract-template-page__watermark-item{min-width:0;max-width:100%;font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;transform-origin:50%;justify-content:center;align-items:center;line-height:1.5;display:flex;overflow:hidden}.gd-contract-template-designer__page>.gd-contract-template-page__content{min-height:inherit}.gd-contract-template-designer__signing-layer{z-index:var(--gdant-z-overlay);pointer-events:none;position:absolute;inset:0;overflow:hidden}.gd-contract-template-designer__signing-coordinate-guides{z-index:1;pointer-events:none;position:absolute;inset:0}.gd-contract-template-designer__signing-coordinate-guide{border-color:color-mix(in srgb, var(--gdant-primary-500) 70%, transparent);pointer-events:none;border-style:dashed;display:block;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal{top:var(--gd-contract-signing-y);width:var(--gd-contract-signing-x);border-top-width:1px;left:0}.gd-contract-template-designer__signing-coordinate-guide.is-vertical{top:0;left:var(--gd-contract-signing-x);height:var(--gd-contract-signing-y);border-left-width:1px}.gd-contract-template-designer__signing-coordinate-guide small{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-50);color:var(--gdant-primary-700);font-size:11px;font-weight:var(--gdant-font-medium);white-space:nowrap;padding:1px 4px;line-height:16px;position:absolute}.gd-contract-template-designer__signing-coordinate-guide.is-horizontal small{bottom:3px;right:4px}.gd-contract-template-designer__signing-coordinate-guide.is-vertical small{top:4px;left:3px}.gd-contract-template-designer__signing-placement{z-index:2;place-content:center;gap:var(--gdant-spacing-xs);box-sizing:border-box;min-width:0;min-height:0;padding:var(--gdant-spacing-xs);border:2px dashed var(--gdant-primary-500);border-radius:var(--gdant-radius-md);background:color-mix(in srgb, var(--gdant-primary-50) 76%, transparent);color:var(--gdant-primary-700);cursor:move;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;transition:border-color var(--gdant-duration-normal), background-color var(--gdant-duration-normal), box-shadow var(--gdant-duration-normal);display:grid;position:absolute;overflow:hidden}.gd-contract-template-designer__signing-placement.is-seal{border-color:var(--gdant-error-500);background:color-mix(in srgb, var(--gdant-error-50) 80%, transparent);color:var(--gdant-error-700)}.gd-contract-template-designer__signing-placement.is-date{border-color:var(--gdant-warning-500);background:color-mix(in srgb, var(--gdant-warning-50) 80%, transparent);color:var(--gdant-warning-700)}.gd-contract-template-designer__signing-placement:hover,.gd-contract-template-designer__signing-placement:focus-visible,.gd-contract-template-designer__signing-placement.is-selected{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 20%, transparent);border-style:solid;outline:none}.gd-contract-template-designer__signing-placement-visual{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;inset:6px}.gd-contract-template-designer.is-readonly .gd-contract-template-designer__signing-placement,.gd-contract-template-designer.is-disabled .gd-contract-template-designer__signing-placement{cursor:pointer}.gd-contract-template-designer__signing-placement-label{font-size:13px;font-weight:var(--gdant-font-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.gd-contract-template-designer__signing-placement-required{text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2;font-weight:var(--gdant-font-semibold);overflow:hidden}.gd-contract-template-designer__signing-tool{justify-content:flex-start;gap:var(--gdant-spacing-sm);border-style:dashed;min-width:0}.gd-contract-template-designer__signing-tool-copy{gap:var(--gdant-spacing-xs);flex:1;min-width:0;display:grid}.gd-contract-template-designer__signing-tool-label{color:var(--gdant-neutral-800);font-weight:var(--gdant-font-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__signing-inspector-body{gap:var(--gdant-spacing-md);display:grid}.gd-contract-template-designer__inspector-section{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__inspector-section--nested{padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50)}.gd-contract-template-designer__inspector-section-title{color:var(--gdant-neutral-600);font-size:12px;font-weight:var(--gdant-font-medium);line-height:1.5}.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__switch-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__form-row,.gd-contract-template-designer__signing-inspector-body .gd-contract-template-designer__grid-form{margin-bottom:0}.gd-contract-template-designer__signing-inspector-actions{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__signing-inspector-actions .ant-btn{width:100%}.gd-contract-template-designer__signing-inspector-danger-action{padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__signing-empty{color:var(--gdant-neutral-500);margin:0;font-size:12px;line-height:1.6}.gd-contract-template-designer__editor-prose{min-height:var(--gd-contract-page-content-height,1000px);color:var(--gdant-neutral-800);font-family:var(--gd-contract-template-editor-font-family,"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif);outline:none;line-height:1.75}.gd-contract-template-designer__editor-prose p{margin:0 0 10px}.gd-contract-template-designer__editor-prose ul,.gd-contract-template-designer__editor-prose ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__editor-prose ul{list-style-type:disc}.gd-contract-template-designer__editor-prose ul ul{list-style-type:circle}.gd-contract-template-designer__editor-prose ul ul ul{list-style-type:square}.gd-contract-template-designer__editor-prose ol{list-style-type:decimal}.gd-contract-template-designer__editor-prose ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__editor-prose ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__preview .gd-contract-template-page ul,.gd-contract-template-designer__preview .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-designer__preview .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-designer__preview .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-designer__preview .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-designer__preview .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-designer__preview .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-designer__preview .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul,.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{margin:0 0 10px;padding-left:2em;list-style-position:outside}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul{list-style-type:disc}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul{list-style-type:circle}.gd-contract-template-renderer__page-frame .gd-contract-template-page ul ul ul{list-style-type:square}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol{list-style-type:decimal}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol{list-style-type:lower-alpha}.gd-contract-template-renderer__page-frame .gd-contract-template-page ol ol ol{list-style-type:lower-roman}.gd-contract-template-designer__editor-prose img,.gd-contract-template-designer__preview .gd-contract-template-page img,.gd-contract-template-renderer__page-frame .gd-contract-template-page img{object-fit:contain;vertical-align:middle;max-width:100%;display:inline-block}.gd-contract-template-designer__editor-prose img[width],.gd-contract-template-designer__editor-prose img[height],.gd-contract-template-designer__preview .gd-contract-template-page img[width],.gd-contract-template-designer__preview .gd-contract-template-page img[height],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[width],.gd-contract-template-renderer__page-frame .gd-contract-template-page img[height]{max-width:none}.gd-contract-template-designer__editor-prose img:not([height]),.gd-contract-template-designer__preview .gd-contract-template-page img:not([height]),.gd-contract-template-renderer__page-frame .gd-contract-template-page img:not([height]){height:auto}.gd-contract-template-designer__editor-prose sup,.gd-contract-template-designer__editor-prose sub,.gd-contract-template-designer__preview .gd-contract-template-page sup,.gd-contract-template-designer__preview .gd-contract-template-page sub,.gd-contract-template-renderer__page-frame .gd-contract-template-page sup,.gd-contract-template-renderer__page-frame .gd-contract-template-page sub{line-height:0}.gd-contract-template-designer__editor-prose table{border-collapse:collapse;width:100%}.gd-contract-template-designer__editor-prose th,.gd-contract-template-designer__editor-prose td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__editor-prose .selectedCell:after{background:color-mix(in srgb, var(--gdant-primary-500) 14%, transparent)}.gd-contract-template-designer__page.is-variable-dragging .gd-contract-template-variable{cursor:grabbing}.gd-contract-template-variable{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);border-radius:var(--gdant-radius-xs);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));font-size:var(--gd-contract-variable-font-size,14px);font-family:var(--gd-contract-variable-font-family,inherit);text-align:var(--gd-contract-variable-text-align,left);vertical-align:middle;white-space:nowrap;border:1px solid #0000;margin:0 2px;padding:0 6px;line-height:1.5;transition:border-color .12s,background-color .12s,box-shadow .12s;display:inline-flex;position:relative}.gd-contract-template-variable:hover{border-color:var(--gdant-primary-300);background-color:color-mix(in srgb, var(--gdant-primary-50) 48%, transparent)}.gd-contract-template-variable.has-border{border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-style:var(--gd-contract-variable-border-style,solid)}.gd-contract-template-variable.has-underline{border-color:#0000;border-bottom-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-600));border-bottom-style:var(--gd-contract-variable-border-style,solid);border-radius:0}.gd-contract-template-variable.is-placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-variable.is-active{border-color:var(--gdant-warning-500);background-color:var(--gdant-warning-50);color:var(--gdant-warning-700);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-warning-500) 18%, transparent)}.gd-contract-template-variable.is-multiline{width:var(--gd-contract-variable-width,160px);height:var(--gd-contract-variable-multiline-height,84px);min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px);vertical-align:top;white-space:pre-wrap;padding:0 6px;display:inline-block;overflow:hidden}.gd-contract-template-variable.is-multiline.has-underline{background-image:linear-gradient(to bottom, transparent calc(100% - 1px), var(--gd-contract-variable-line-color,var(--gdant-neutral-600)) calc(100% - 1px));background-repeat:repeat-y;background-size:100% var(--gd-contract-variable-line-height,28px);border-bottom-color:#0000}.gd-contract-template-variable.is-number{font-variant-numeric:tabular-nums}.gd-contract-template-variable.is-checkbox{width:auto;min-width:var(--gd-contract-variable-width,96px);justify-content:flex-start;gap:6px;padding:0 2px}.gd-contract-template-variable.is-checkbox:before{border-radius:var(--gdant-radius-xs);content:"";border:1px solid;justify-content:center;align-items:center;width:13px;height:13px;font-size:10px;line-height:1;display:inline-flex}.gd-contract-template-variable.is-checkbox.is-checked:before{content:"✓"}.gd-contract-template-variable.is-image{min-height:var(--gd-contract-variable-height,96px);border-color:var(--gd-contract-variable-line-color,var(--gdant-neutral-300));border-style:var(--gd-contract-variable-border-style,dashed);background:var(--gd-contract-variable-background,transparent);color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500));white-space:normal;justify-content:center;overflow:hidden}.gd-contract-template-variable.is-image.has-value{color:#0000}.gd-contract-template-variable.is-image.has-value:before{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain);content:"";position:absolute;inset:4px}.gd-contract-template-designer__form-row{color:var(--gdant-neutral-600);gap:6px;margin-bottom:12px;font-size:12px;display:grid}.gd-contract-template-designer__form-row.is-compact{margin-bottom:0}.gd-contract-template-designer__switch-row{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);min-height:28px;color:var(--gdant-neutral-600);justify-content:space-between;align-items:center;gap:12px;margin:0;padding:6px 8px;font-size:12px;display:flex}.gd-contract-template-designer__switch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.gd-contract-template-designer__panel--decorations{flex:none}.gd-contract-template-designer__decoration-tabs{margin-top:var(--gdant-spacing-sm)}.gd-contract-template-designer__decoration-tab-label{align-items:center;gap:var(--gdant-spacing-xs);display:inline-flex}.gd-contract-template-designer__decoration-tab-label i{border-radius:var(--gdant-radius-pill);background:var(--gdant-neutral-300);width:6px;height:6px}.gd-contract-template-designer__decoration-tab-label i.is-enabled{background:var(--gdant-success-500)}.gd-contract-template-designer__decoration-form{gap:var(--gdant-spacing-sm);display:grid}.gd-contract-template-designer__decoration-slots-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;display:grid}.gd-contract-template-designer__decoration-slot-editor{align-items:end;gap:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.gd-contract-template-designer__decoration-slots-grid>.gd-contract-template-designer__decoration-slot-editor{padding:var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-50);grid-template-columns:minmax(0,1fr);align-content:start;align-items:stretch}.gd-contract-template-designer__decoration-slots-grid .gd-contract-template-designer__form-row>span{color:var(--gdant-neutral-700);font-weight:var(--gdant-font-medium)}.gd-contract-template-designer__decoration-slots-grid .ant-btn{width:100%}@container page-decorations-studio (width<=420px){.gd-contract-template-designer__decoration-plan,.gd-contract-template-designer__decoration-slots-grid,.gd-contract-template-designer__decoration-slot-editor,.gd-contract-template-designer__decoration-control-grid{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__decoration-slot-editor>.ant-dropdown-trigger{width:100%}}.gd-contract-template-designer__decoration-control-grid{gap:var(--gdant-spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__decoration-control-grid>label{gap:var(--gdant-spacing-xs);min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);display:grid}.gd-contract-template-designer__decoration-control-grid .ant-select,.gd-contract-template-designer__decoration-control-grid .ant-input-number{width:100%}.gd-contract-template-designer__unit-control{align-items:center;gap:var(--gdant-spacing-xs);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.gd-contract-template-designer__unit-control small{min-width:16px;color:var(--gdant-neutral-500);font-variant-numeric:tabular-nums}.gd-contract-template-designer__color-row{min-height:32px;color:var(--gdant-neutral-600);font-size:var(--gdant-text-caption);justify-content:space-between;align-items:center;display:flex}.gd-contract-template-designer__decoration-control-grid input[type=color],.gd-contract-template-designer__color-row input[type=color]{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);width:32px;height:32px;padding:2px}.gd-contract-template-designer__decoration-control-grid .gd-contract-template-designer__color-control{min-height:32px}.gd-contract-template-designer__form-error{color:var(--gdant-error-500);grid-column:1/-1;margin:0;font-size:11px;line-height:1.5;display:block}.gd-contract-template-designer__tool-item small{color:var(--gdant-neutral-500);font-size:11px}.gd-contract-template-designer__grid-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.gd-contract-template-designer__table-picker{gap:var(--gdant-spacing-sm);margin:var(--gdant-spacing-sm) 0;display:grid}.gd-contract-template-designer__table-picker-label{color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-designer__table-picker-grid{gap:3px;width:fit-content;display:grid}.gd-contract-template-designer__table-picker-row{grid-template-columns:repeat(10,18px);gap:3px;display:grid}.gd-contract-template-designer__table-picker-cell{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xs);background:var(--gdant-neutral-0);cursor:pointer;width:18px;height:18px;padding:0}.gd-contract-template-designer__table-picker-cell:hover,.gd-contract-template-designer__table-picker-cell.is-previewed{border-color:var(--gdant-primary-500);background:var(--gdant-primary-100)}.gd-contract-template-designer__table-picker-cell:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:1px}.gd-contract-template-designer__grid-form label{color:var(--gdant-neutral-600);gap:6px;font-size:12px;display:grid}.gd-contract-template-designer__popover-actions{justify-content:flex-end;gap:8px;display:flex}.gd-contract-template-designer__table-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.gd-contract-template-designer__context-menu{z-index:var(--gdant-z-modal);border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-xl);background:color-mix(in srgb, var(--gdant-neutral-0) 98%, transparent);min-width:240px;max-width:min(360px,100vw - 24px);box-shadow:var(--gdant-shadow-modal);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:8px;padding:10px;display:grid;position:fixed}.gd-contract-template-designer__context-menu-row{flex-wrap:wrap;gap:8px;display:flex}.gd-contract-template-designer__context-menu-group{border-bottom:1px solid var(--gdant-neutral-200);gap:6px;padding-bottom:8px;display:grid}.gd-contract-template-designer__context-menu-group>span{color:var(--gdant-neutral-500);font-size:12px}.gd-contract-template-designer__context-menu-group.is-danger{border-bottom:0;padding-bottom:0}.gd-contract-template-designer__image-context-menu{box-sizing:border-box;width:min(288px, 100vw - var(--gdant-spacing-xl));gap:var(--gdant-spacing-md);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);min-width:0;box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none}.gd-contract-template-designer__image-context-title{gap:calc(var(--gdant-spacing-xs) / 2);display:grid}.gd-contract-template-designer__image-context-title strong{color:var(--gdant-neutral-800);font-size:var(--gdant-text-body)}.gd-contract-template-designer__image-context-title span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__text-context-menu{--gd-text-context-menu-gutter:var(--gdant-spacing-md);--gd-text-context-menu-width:calc(var(--gdant-spacing-xl) * 12 + var(--gdant-spacing-sm) * 2);--gd-text-context-menu-control-size:calc(var(--gdant-spacing-base) + var(--gdant-spacing-xl) / 2);--gd-text-context-menu-thin:calc(var(--gdant-spacing-xs) / 2);width:min(var(--gd-text-context-menu-width), 100vw - var(--gd-text-context-menu-gutter) * 2);min-width:0;max-width:none;max-height:calc(100vh - var(--gd-text-context-menu-gutter) * 2);gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-md);box-shadow:var(--gdant-shadow-raised);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;overflow-y:auto}.gd-contract-template-designer__text-menu-row{align-items:center;gap:var(--gdant-spacing-xs);min-width:0;padding:0;display:flex}.gd-contract-template-designer__text-menu-row+.gd-contract-template-designer__text-menu-row{padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-quick-insert{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gd-contract-template-designer__text-menu-quick-insert .ant-btn{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-quick-insert .ant-btn>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-group{gap:var(--gdant-spacing-xs);min-width:0;padding-top:var(--gdant-spacing-xs);border-top:var(--gd-text-context-menu-thin) solid var(--gdant-neutral-200);display:grid}.gd-contract-template-designer__text-menu-control-head{justify-content:space-between;align-items:baseline;gap:var(--gdant-spacing-sm);min-width:0;color:var(--gdant-neutral-700);font-size:var(--gdant-text-body-sm);display:flex}.gd-contract-template-designer__text-menu-control-head>span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-designer__text-menu-control-options{gap:var(--gdant-spacing-xs);grid-template-columns:repeat(5,minmax(0,1fr));min-width:0;display:grid}.gd-contract-template-designer__text-menu-control-option{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;min-height:calc(var(--gd-text-context-menu-control-size) + var(--gdant-spacing-md));padding:var(--gdant-spacing-xs) var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);flex-direction:column;line-height:1.2;display:inline-flex;overflow:hidden}.gd-contract-template-designer__text-menu-control-option .anticon{color:var(--gdant-primary-500);font-size:var(--gdant-text-h3);flex:none}.gd-contract-template-designer__text-menu-control-option span{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;display:block;overflow:hidden}.gd-contract-template-designer__text-menu-control-option:hover{border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-control-option:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:var(--gd-text-context-menu-control-size);padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-700);cursor:pointer;font-size:var(--gdant-text-body-sm);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);line-height:1.2;display:inline-flex}.gd-contract-template-designer__text-menu-bind-toggle:hover:not(:disabled){border-color:var(--gdant-primary-300);background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-toggle:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-bind-toggle:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__text-menu-bind-search{width:100%}.gd-contract-template-designer__text-menu-bind-list{gap:var(--gdant-spacing-xs);max-height:calc(var(--gdant-spacing-xl) * 5 + var(--gdant-spacing-md));display:grid;overflow:auto}.gd-contract-template-designer__text-menu-bind-item{align-items:flex-start;gap:var(--gdant-spacing-xs);width:100%;min-width:0;padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-800);cursor:pointer;text-align:left;background:0 0;border:0;flex-direction:column;display:flex}.gd-contract-template-designer__text-menu-bind-item-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.gd-contract-template-designer__text-menu-bind-item-meta,.gd-contract-template-designer__text-menu-bind-empty{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-designer__text-menu-bind-empty{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);margin:0}.gd-contract-template-designer__text-menu-bind-item:hover,.gd-contract-template-designer__text-menu-bind-item:focus-visible{background:var(--gdant-primary-50);color:var(--gdant-primary-700)}.gd-contract-template-designer__text-menu-bind-item:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-row--controls{gap:var(--gdant-spacing-sm)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm{flex:0 0 var(--gd-text-context-menu-control-size);width:var(--gd-text-context-menu-control-size);min-width:var(--gd-text-context-menu-control-size);height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm);color:var(--gdant-neutral-700);background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900);border-color:#0000}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm.is-selected{border-color:var(--gdant-primary-100);background:var(--gdant-primary-50);color:var(--gdant-primary-600)}.gd-contract-template-designer__text-menu-icon-button.ant-btn-sm:focus-visible,.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:focus-visible,.gd-contract-template-designer__context-menu-color:focus-visible{outline:calc(var(--gd-text-context-menu-thin) * 2) solid var(--gdant-primary-500);outline-offset:var(--gd-text-context-menu-thin)}.gd-contract-template-designer__text-menu-divider{width:var(--gd-text-context-menu-thin);height:var(--gdant-spacing-base);margin:0 var(--gd-text-context-menu-thin);background:var(--gdant-neutral-200)}.gd-contract-template-designer__text-menu-font-size{min-width:calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 5 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-alignment{min-width:calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs));flex:1 1 calc(var(--gdant-spacing-base) * 6 + var(--gdant-spacing-xs))}.gd-contract-template-designer__text-menu-row .ant-select-selector{min-height:var(--gd-text-context-menu-control-size);border-radius:var(--gdant-radius-sm)}.gd-contract-template-designer__text-menu-row .ant-select-focused .ant-select-selector{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 15%, transparent)}.gd-contract-template-designer__text-menu-row .ant-select-selection-search-input,.gd-contract-template-designer__text-menu-row .ant-select-selection-item{line-height:calc(var(--gd-text-context-menu-control-size) - var(--gdant-spacing-xs) / 2)}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm{justify-content:center;align-items:center;gap:var(--gdant-spacing-xs);min-width:0;height:var(--gd-text-context-menu-control-size);padding:0 var(--gdant-spacing-sm);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-sm);background:var(--gdant-neutral-0);color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);flex:1 1 0;display:inline-flex}.gd-contract-template-designer__text-menu-clear-action.ant-btn-sm:hover:not(:disabled){border-color:var(--gdant-error-200);background:var(--gdant-error-50);color:var(--gdant-error-600)}.gd-contract-template-designer__table-context-menu{box-sizing:border-box;width:min(240px,100vw - 16px);min-width:0;max-width:none;max-height:min(520px,100vh - 24px);padding:var(--gdant-spacing-xs);border-color:var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);-webkit-backdrop-filter:none;backdrop-filter:none;overscroll-behavior:contain;animation:gd-contract-template-table-menu-enter var(--gdant-duration-normal) var(--gdant-easing-default);display:block;overflow:hidden auto}.gd-contract-template-designer__table-menu-group{gap:calc(var(--gdant-spacing-xs) / 2);padding:var(--gdant-spacing-xs) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gd-contract-template-designer__table-menu-group.is-stacked{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__table-menu-group+.gd-contract-template-designer__table-menu-group{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__table-menu-item{appearance:none;box-sizing:border-box;align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:32px;padding:0 var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);cursor:pointer;font:inherit;font-size:var(--gdant-text-body);letter-spacing:0;text-align:left;white-space:nowrap;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;line-height:20px;display:flex}.gd-contract-template-designer__table-menu-item .anticon{width:16px;color:var(--gdant-neutral-500);transition:color var(--gdant-duration-normal) var(--gdant-easing-default);flex:0 0 16px;font-size:15px}.gd-contract-template-designer__table-menu-item:hover:not(:disabled){background:var(--gdant-neutral-100);color:var(--gdant-neutral-900)}.gd-contract-template-designer__table-menu-item:hover:not(:disabled) .anticon{color:var(--gdant-neutral-700)}.gd-contract-template-designer__table-menu-item:focus-visible,.gd-contract-template-designer__table-menu-align-item:focus-visible{outline:2px solid var(--gdant-primary-500);outline-offset:-2px}.gd-contract-template-designer__table-menu-item:disabled,.gd-contract-template-designer__table-menu-align-item:disabled{color:var(--gdant-neutral-400);cursor:not-allowed}.gd-contract-template-designer__table-menu-item:disabled .anticon{color:var(--gdant-neutral-400)}.gd-contract-template-designer__table-menu-item.is-danger{color:var(--gdant-error-700);grid-column:1/-1}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled){background:var(--gdant-error-50);color:var(--gdant-error-700)}.gd-contract-template-designer__table-menu-item.is-danger:hover:not(:disabled) .anticon{color:var(--gdant-error-600)}.gd-contract-template-designer__table-menu-align{align-items:center;gap:var(--gdant-spacing-sm);min-height:38px;padding:calc(var(--gdant-spacing-xs) / 2) var(--gdant-spacing-sm);grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__table-menu-align-label{min-width:0;color:var(--gdant-neutral-600);font-size:var(--gdant-text-body-sm);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.gd-contract-template-designer__table-menu-align-options{border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-100);grid-template-columns:repeat(3,30px);gap:2px;padding:2px;display:grid}.gd-contract-template-designer__table-menu-align-item{appearance:none;border-radius:var(--gdant-radius-sm);width:30px;height:28px;color:var(--gdant-neutral-600);cursor:pointer;transition:background-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default), color var(--gdant-duration-normal) var(--gdant-easing-default);background:0 0;border:0;place-items:center;padding:0;font-size:15px;display:grid}.gd-contract-template-designer__table-menu-align-item:hover:not(:disabled){background:var(--gdant-neutral-200);color:var(--gdant-neutral-800)}.gd-contract-template-designer__table-menu-align-item.is-selected{background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-raised);color:var(--gdant-primary-600)}.gd-contract-template-designer__table-menu-danger{margin-top:var(--gdant-spacing-xs);padding-top:var(--gdant-spacing-sm);border-top:1px solid var(--gdant-neutral-200)}@keyframes gd-contract-template-table-menu-enter{0%{opacity:0;transform:translateY(-2px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__table-context-menu{animation:none}.gd-contract-template-designer__table-menu-item,.gd-contract-template-designer__table-menu-item .anticon,.gd-contract-template-designer__table-menu-align-item,.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__panel-handle,.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-handle{transition:none}}@media (width<=260px){.gd-contract-template-designer__table-menu-group{grid-template-columns:minmax(0,1fr)}}.gd-contract-template-designer__sr-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.gd-contract-template-designer__context-menu-field{flex:112px;min-width:112px}.gd-contract-template-designer__context-menu-color{border:1px solid var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);background:var(--gdant-neutral-0);cursor:pointer;width:40px;height:32px;padding:0}.gd-contract-template-designer.is-disabled{opacity:.68;pointer-events:none}.gd-contract-template-designer__preview-modal .ant-modal{max-width:calc(100vw - 32px)}.gd-contract-template-designer__preview-modal .ant-modal-body{padding:0}.gd-contract-template-designer__preview{background:var(--gdant-neutral-100);max-height:calc(100vh - 180px);padding:32px;display:block;overflow:auto}.gd-contract-template-designer__preview.is-multi-file{padding:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-columns:220px minmax(0,1fr);height:min(720px,100vh - 180px);min-height:420px;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{gap:var(--gdant-spacing-xs);min-width:0;padding:var(--gdant-spacing-md);border-right:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-50);flex-direction:column;display:flex;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{padding:0 var(--gdant-spacing-sm) var(--gdant-spacing-sm);color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm);font-weight:var(--gdant-font-semibold)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{align-items:center;gap:var(--gdant-spacing-sm);width:100%;min-height:44px;padding:var(--gdant-spacing-sm);border-radius:var(--gdant-radius-md);color:var(--gdant-neutral-700);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab>small{color:var(--gdant-neutral-500);font-size:var(--gdant-text-caption)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab:hover,.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab.is-active{border-color:var(--gdant-primary-200);background:var(--gdant-neutral-0);color:var(--gdant-primary-600)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout>.gd-contract-template-designer__preview-file{min-width:0;max-height:100%;margin:0;padding:24px;overflow:auto}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell{width:fit-content;max-width:100%;margin:0 auto 24px}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-page-shell:last-child{margin-bottom:0}.gd-contract-template-designer__preview .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gdant-neutral-300);background:var(--gdant-neutral-0);box-shadow:var(--gdant-shadow-overlay);color:var(--gdant-neutral-800);padding:54px 64px;line-height:1.75;position:relative;overflow:hidden}.gd-contract-template-designer__preview .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-designer__preview .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-designer__preview .gd-contract-template-page th,.gd-contract-template-designer__preview .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-designer__preview-file+.gd-contract-template-designer__preview-file{margin-top:var(--gdant-spacing-xl);padding-top:var(--gdant-spacing-xl);border-top:1px solid var(--gdant-neutral-300)}.gd-contract-template-designer__preview-file-title{align-items:center;gap:var(--gdant-spacing-sm);width:fit-content;margin:0 auto var(--gdant-spacing-md);color:var(--gdant-neutral-800);font-size:var(--gdant-text-title);display:flex}.gd-contract-template-designer__preview-file-title:before{border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);content:"";width:4px;height:16px}.gd-contract-template-designer__preview-signing-layer{z-index:2;pointer-events:none;position:absolute;inset:0 auto auto 0}.gd-contract-template-designer__preview-signing-placement{box-sizing:border-box;border:1px solid var(--gdant-primary-500);background:color-mix(in srgb, var(--gdant-success-50) 60%, transparent);min-width:0;min-height:0;color:var(--gdant-primary-300);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;overflow:hidden}.gd-contract-template-designer__preview-signing-placement-add{gap:var(--gdant-spacing-xs);box-sizing:border-box;overflow-wrap:anywhere;max-width:100%;padding:10px;display:grid;overflow:hidden}@media (width<=760px){.gd-contract-template-designer__preview .gd-contract-template-designer__preview-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav{border-right:0;border-bottom:1px solid var(--gdant-neutral-200);flex-direction:row}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-nav-title{display:none}.gd-contract-template-designer__preview .gd-contract-template-designer__preview-file-tab{flex:0 0 min(220px,72vw)}}.gd-contract-template-designer__submit-data-modal .ant-modal-body{padding:0}.gd-contract-template-designer__submit-data{background:var(--gdant-neutral-900);max-height:calc(100vh - 220px);color:var(--gdant-neutral-100);white-space:pre;margin:0;padding:16px 20px;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:12px;line-height:1.6;overflow:auto}.gd-contract-template-renderer{--gd-contract-renderer-background:var(--gdant-neutral-100);--gd-contract-renderer-surface:var(--gdant-neutral-0);--gd-contract-renderer-panel-width:336px;--gd-contract-renderer-page-gap:24px;--gd-contract-renderer-border-color:var(--gdant-neutral-300);--gd-contract-renderer-toolbar-control-height:30px;box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-background);min-height:420px;color:var(--gdant-neutral-800);font-size:var(--gdant-text-body);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""validation""body";display:grid;overflow:hidden}.gd-contract-template-renderer.is-disabled .gd-contract-template-renderer__field-list{opacity:.72}.gd-contract-template-renderer__header{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:56px;padding:var(--gdant-spacing-sm) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);background:var(--gdant-neutral-0);flex-wrap:wrap;grid-area:header;display:flex}.gd-contract-template-renderer__title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;display:flex}.gd-contract-template-renderer__title-bar{width:var(--gdant-spacing-xs);height:var(--gdant-spacing-base);border-radius:var(--gdant-radius-xs);background:var(--gdant-primary-500);flex:none}.gd-contract-template-renderer__header-meta{gap:var(--gdant-spacing-xs);min-width:0;display:grid}.gd-contract-template-renderer__header-meta strong{color:var(--gdant-neutral-900);font-size:var(--gdant-text-h3);font-weight:var(--gdant-font-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gd-contract-template-renderer__header-meta span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__progress-pill{padding:var(--gdant-spacing-xs) var(--gdant-spacing-sm);border:1px solid var(--gdant-primary-200);border-radius:var(--gdant-radius-pill);background:var(--gdant-primary-50);color:var(--gdant-primary-600);font-size:var(--gdant-text-body-sm);white-space:nowrap;flex:none}.gd-contract-template-renderer__progress-pill.is-warning{border-color:var(--gdant-warning-100);background:var(--gdant-warning-50);color:var(--gdant-warning-700)}.gd-contract-template-renderer__header-actions{align-items:center;gap:var(--gdant-spacing-sm);flex-wrap:wrap;flex:none;display:flex}.gd-contract-template-renderer__icon-button.ant-btn-sm{width:var(--gd-contract-renderer-toolbar-control-height);height:var(--gd-contract-renderer-toolbar-control-height);min-width:var(--gd-contract-renderer-toolbar-control-height);justify-content:center;align-items:center;padding-inline:0;display:inline-flex}.gd-contract-template-renderer__icon-button.ant-btn-sm .anticon{font-size:15px}.gd-contract-template-renderer__toolbar{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;padding:var(--gdant-spacing-xs);border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-xl);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-raised);display:flex}.gd-contract-template-renderer__toolbar-group{align-items:center;gap:var(--gdant-spacing-xs);display:flex}.gd-contract-template-renderer__zoom-value{box-sizing:border-box;width:54px;color:var(--gdant-neutral-700);font-variant-numeric:tabular-nums;text-align:center}.gd-contract-template-renderer__page-select{width:min(240px,36vw)}.gd-contract-template-renderer__validation{gap:var(--gdant-spacing-xs);padding:var(--gdant-spacing-xs) var(--gdant-spacing-base);border-bottom:1px solid var(--gdant-neutral-200);font-size:var(--gdant-text-body-sm);grid-area:validation;display:grid}.gd-contract-template-renderer__validation.is-success{background:var(--gdant-success-50);color:var(--gdant-success-600)}.gd-contract-template-renderer__validation.is-error{background:var(--gdant-error-50);color:var(--gdant-error-700);border-bottom-color:var(--gdant-error-100)}.gd-contract-template-renderer__validation-bar{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-sm);min-height:28px;display:flex}.gd-contract-template-renderer__validation-toggle{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;text-decoration:underline}.gd-contract-template-renderer__validation-list{gap:var(--gdant-spacing-xs);max-height:132px;display:grid;overflow:auto}.gd-contract-template-renderer__validation-item{width:100%;padding:var(--gdant-spacing-sm) var(--gdant-spacing-md);border:1px solid var(--gdant-warning-100);border-radius:var(--gdant-radius-md);background:var(--gdant-warning-50);color:var(--gdant-error-700);text-align:left;cursor:pointer}.gd-contract-template-renderer__empty{min-height:0;padding:var(--gdant-spacing-base);grid-area:body;place-items:center;display:grid}.gd-contract-template-renderer__workspace{gap:var(--gdant-spacing-base);min-height:0;padding:var(--gdant-spacing-md);grid-area:body;grid-template-columns:minmax(0,1fr) auto;display:grid;overflow:hidden}.gd-contract-template-renderer__workspace.is-inline{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__pages-viewport{min-width:0;min-height:0;padding:var(--gdant-spacing-xs) 0;overscroll-behavior:contain;overflow:auto}.gd-contract-template-renderer__pages{place-content:start center;gap:var(--gd-contract-renderer-page-gap);width:max-content;min-width:100%;padding:0 24px 24px;display:grid}.gd-contract-template-renderer__page-shell{justify-content:center;gap:8px;min-width:0;scroll-margin:12px;display:grid}.gd-contract-template-renderer__page-meta{width:100%;color:var(--gdant-neutral-600);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;font-size:12px;display:grid}.gd-contract-template-renderer__page-meta strong{color:var(--gdant-neutral-800);font-weight:600}.gd-contract-template-renderer__page-meta span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gd-contract-template-renderer__page-meta small{font-variant-numeric:tabular-nums;font-size:12px}.gd-contract-template-renderer__page-frame{flex:none;transition:width .1s cubic-bezier(.4,0,.2,1),height .1s cubic-bezier(.4,0,.2,1);position:relative}.gd-contract-template-renderer__page-frame .gd-contract-template-page{box-sizing:border-box;border:1px solid var(--gd-contract-renderer-border-color);background:var(--gd-contract-renderer-surface);box-shadow:var(--gdant-shadow-overlay);transform-origin:0 0;padding:54px 64px;line-height:1.75;position:absolute;inset:0 auto auto 0;overflow:hidden}.gd-contract-template-renderer__page-frame .gd-contract-template-page p{margin:0 0 10px}.gd-contract-template-renderer__page-frame .gd-contract-template-page table{border-collapse:collapse;width:100%}.gd-contract-template-renderer__page-frame .gd-contract-template-page th,.gd-contract-template-renderer__page-frame .gd-contract-template-page td{border:1px solid var(--gdant-neutral-300);min-width:80px;padding:6px 8px}.gd-contract-template-renderer__panel-wrap{z-index:1;width:var(--gd-contract-renderer-panel-width);min-width:0;min-height:0;transition:width var(--gdant-duration-slow) var(--gdant-easing-default);position:relative;overflow:visible}.gd-contract-template-renderer__panel-wrap.is-collapsed{width:0}.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:hidden}.gd-contract-template-renderer__panel-clip{width:100%;height:100%;overflow:hidden}.gd-contract-template-renderer__panel{gap:var(--gdant-spacing-sm);width:var(--gd-contract-renderer-panel-width);min-width:0;height:100%;min-height:0;padding:var(--gdant-spacing-md);border:1px solid var(--gd-contract-renderer-border-color);border-radius:var(--gdant-radius-lg);background:var(--gd-contract-renderer-surface);flex-direction:column;display:flex;overflow:hidden}.gd-contract-template-renderer__panel-handle{z-index:2;box-sizing:border-box;border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-md) 0 0 var(--gdant-radius-md);background:var(--gdant-neutral-0);width:14px;height:44px;color:var(--gdant-neutral-500);cursor:pointer;pointer-events:auto;transition:color var(--gdant-duration-normal) var(--gdant-easing-default), background var(--gdant-duration-normal) var(--gdant-easing-default);border-right:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.gd-contract-template-renderer__panel-handle .anticon{font-size:10px}.gd-contract-template-renderer__panel-handle:hover{background:var(--gdant-neutral-50);color:var(--gdant-primary-500)}.gd-contract-template-renderer__panel-head{z-index:1;gap:var(--gdant-spacing-sm);padding-bottom:var(--gdant-spacing-sm);background:var(--gd-contract-renderer-surface);display:grid;position:sticky;top:0}.gd-contract-template-renderer__panel-head-row{justify-content:space-between;align-items:center;gap:var(--gdant-spacing-md);display:flex}.gd-contract-template-renderer__panel-head-row>div{gap:var(--gdant-spacing-xs);display:grid}.gd-contract-template-renderer__panel-head-row strong{font-size:15px}.gd-contract-template-renderer__panel-head-row span{color:var(--gdant-neutral-500);font-size:var(--gdant-text-body-sm)}.gd-contract-template-renderer__panel-head-actions{gap:var(--gdant-spacing-sm);flex-wrap:wrap;display:flex}.gd-contract-template-renderer__field-list{flex:auto;align-content:start;gap:12px;min-height:0;display:grid;overflow:auto}.gd-contract-template-renderer__field{border:1px solid var(--gdant-neutral-200);border-radius:var(--gdant-radius-lg);background:var(--gdant-neutral-50);transition:border-color var(--gdant-duration-normal) var(--gdant-easing-default), box-shadow var(--gdant-duration-normal) var(--gdant-easing-default);gap:8px;padding:12px;display:grid}.gd-contract-template-renderer__field.is-active{border-color:var(--gdant-primary-500);box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 12%, transparent)}.gd-contract-template-renderer__field.has-error{border-color:var(--gdant-error-300)}.gd-contract-template-renderer__field .ant-input-number,.gd-contract-template-renderer__field .ant-picker{width:100%}.gd-contract-template-renderer__field-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gd-contract-template-renderer__field-head strong{overflow-wrap:anywhere;min-width:0;font-size:14px}.gd-contract-template-renderer__field-head small{color:var(--gdant-neutral-500);flex:none;font-size:12px}.gd-contract-template-renderer__field-title{align-items:center;gap:var(--gdant-spacing-sm);min-width:0;max-width:100%;display:inline-flex}.gd-contract-template-renderer__field-type-icon{color:var(--gdant-neutral-500);flex:none;align-items:center;font-size:1em;line-height:1;display:inline-flex}.gd-contract-template-renderer__field-type-icon .anticon,.gd-contract-template-renderer__field-type-icon svg{width:1em;height:1em;color:inherit;fill:currentColor;display:block}.gd-contract-template-renderer__field-title-text{overflow-wrap:anywhere;min-width:0}.gd-contract-template-renderer__field-required{color:var(--gdant-error-600);margin-left:2px}.gd-contract-template-renderer__field-checkbox{align-items:center;gap:8px;min-height:32px;display:inline-flex}.gd-contract-template-renderer__image-field{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.gd-contract-template-renderer__image-preview{border:1px dashed var(--gdant-neutral-300);border-radius:var(--gdant-radius-md);min-width:0;color:var(--gdant-neutral-500);grid-column:1/-1;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;padding:8px;font-size:12px;display:grid}.gd-contract-template-renderer__image-preview .ant-image,.gd-contract-template-renderer__image-preview .ant-image-img{border-radius:var(--gdant-radius-sm);object-fit:contain;width:96px;height:56px}.gd-contract-template-renderer__field-errors{color:var(--gdant-error-600);gap:4px;font-size:12px;display:grid}.gd-contract-template-renderer__control{box-sizing:border-box;width:var(--gd-contract-variable-width,160px);min-width:var(--gd-contract-variable-width,160px);min-height:var(--gd-contract-variable-height,32px);color:var(--gd-contract-variable-color,var(--gdant-neutral-800));background:var(--gd-contract-variable-background,transparent);font-family:var(--gd-contract-variable-font-family,inherit);font-size:var(--gd-contract-variable-font-size,14px);text-align:var(--gd-contract-variable-text-align,left);vertical-align:baseline;border:0;border-radius:0;outline:none;padding:0 4px}.gd-contract-template-renderer__control::placeholder{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__control.has-border{border:1px var(--gd-contract-variable-border-style,solid) var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-contract-template-renderer__control.has-underline{border-bottom:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600))}.gd-contract-template-renderer__control.is-multiline{min-height:var(--gd-contract-variable-multiline-height,84px);line-height:var(--gd-contract-variable-line-height,28px);resize:vertical;display:inline-block}.gd-contract-template-renderer__preview-control{align-items:center;justify-content:var(--gd-contract-variable-justify-content,flex-start);cursor:pointer;display:inline-flex}.gd-contract-template-renderer__preview-control.is-image{background-image:var(--gd-contract-variable-image);background-position:50%;background-repeat:no-repeat;background-size:var(--gd-contract-variable-object-fit,contain)}.gd-contract-template-renderer__preview-control.is-empty{color:var(--gd-contract-variable-placeholder-color,var(--gdant-neutral-500))}.gd-contract-template-renderer__preview-control.is-active{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 24%, transparent)}.gd-contract-template-renderer__preview-control:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--gdant-primary-500) 32%, transparent)}.gd-contract-template-renderer__checkbox-mark{border:1px solid var(--gd-contract-variable-line-color,var(--gdant-neutral-600));justify-content:center;align-items:center;width:14px;height:14px;font-size:12px;line-height:1;display:inline-flex}label.gd-contract-template-renderer__control{align-items:center;gap:6px;display:inline-flex}label.gd-contract-template-renderer__control input{margin:0}@media (width<=960px){.gd-contract-template-renderer__header{align-items:flex-start}.gd-contract-template-renderer__workspace{grid-template-columns:minmax(0,1fr)}.gd-contract-template-renderer__panel-wrap,.gd-contract-template-renderer__panel-wrap.is-collapsed{width:auto;overflow:visible}.gd-contract-template-renderer__panel-clip,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel-clip{visibility:visible;height:auto;overflow:visible}.gd-contract-template-renderer__panel,.gd-contract-template-renderer__panel-wrap.is-collapsed .gd-contract-template-renderer__panel{width:100%;max-height:420px}.gd-contract-template-renderer__panel-handle,.gd-contract-template-renderer__panel-toggle{display:none!important}}@media (width<=640px){.gd-contract-template-renderer{min-height:0}.gd-contract-template-renderer__header{padding:var(--gdant-spacing-sm);flex-direction:column;align-items:stretch}.gd-contract-template-renderer__header-actions{justify-content:flex-start}.gd-contract-template-renderer__workspace{padding:var(--gdant-spacing-sm)}.gd-contract-template-renderer__toolbar{flex-direction:column;align-items:stretch}.gd-contract-template-renderer__toolbar-group{justify-content:space-between}.gd-contract-template-renderer__page-select{width:100%}.gd-contract-template-renderer__pages{padding-inline:var(--gdant-spacing-sm);justify-content:start}.gd-contract-template-renderer__page-meta{grid-template-columns:auto minmax(0,1fr)}.gd-contract-template-renderer__page-meta small{grid-column:1/-1}}@media (width<=1180px){.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__toolbar{padding-inline:12px}.gd-contract-template-designer__canvas{justify-content:start}.gd-contract-template-designer__page-shell{margin-inline:0}}@media (height<=820px) and (width>=761px){.gd-contract-template-designer{min-height:560px}.gd-contract-template-designer__file-bar,.gd-contract-template-designer__workspace-header,.gd-contract-template-designer__toolbar{padding-block:var(--gdant-spacing-xs)}.gd-contract-template-designer__panel{gap:var(--gdant-spacing-xs);padding-block:var(--gdant-spacing-sm)}.gd-contract-template-designer__canvas{gap:var(--gdant-spacing-base);padding-block:var(--gdant-spacing-base)}}@media (width<=760px){.gd-contract-template-designer{height:auto;min-height:0;overflow:visible}.gd-contract-template-designer__layout,.gd-contract-template-designer__layout.is-sidebar-collapsed,.gd-contract-template-designer__layout.is-inspector-collapsed,.gd-contract-template-designer__layout.is-sidebar-collapsed.is-inspector-collapsed{grid-template-rows:auto minmax(560px,1fr) auto;grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__file-bar{flex-direction:column;align-items:stretch}.gd-contract-template-designer__file-add.ant-btn-sm{align-self:flex-start}.gd-contract-template-designer__sidebar,.gd-contract-template-designer__inspector,.gd-contract-template-designer__sidebar.is-collapsed,.gd-contract-template-designer__inspector.is-collapsed{border:0;width:auto;max-height:360px;overflow:auto}.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__inspector.is-collapsed .gd-contract-template-designer__panel-stack,.gd-contract-template-designer__sidebar .gd-contract-template-designer__panel-stack>*,.gd-contract-template-designer__inspector .gd-contract-template-designer__panel-stack>*{visibility:visible;width:100%}.gd-contract-template-designer__panel-handle,.gd-contract-template-designer__toolbar-more{display:none!important}.gd-contract-template-designer__toolbar-section--main{flex-wrap:wrap;row-gap:8px;display:flex}.gd-contract-template-designer__toolbar-section--main .gd-contract-template-designer__toolbar-group{flex-wrap:wrap;flex-shrink:1}.gd-contract-template-designer__sidebar{border-bottom:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__inspector{border-top:1px solid var(--gdant-neutral-200)}.gd-contract-template-designer__workspace{min-height:560px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__canvas{justify-content:start;padding:16px 8px}}@container (width<=1279px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:220px;--gd-inspector-expanded:260px}.gd-contract-template-designer__workspace-header{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__workspace-actions{justify-content:flex-start;width:100%}.gd-contract-template-designer__toolbar-section--main{flex-basis:100%}.gd-contract-template-designer__canvas{justify-content:start}}@container (width<=1079px){.gd-contract-template-designer__layout{--gd-sidebar-expanded:200px;--gd-inspector-expanded:240px}}@media (width<=760px){.gd-contract-template-designer__page-decorations-studio{border-top:1px solid var(--gdant-neutral-200);border-left:0;grid-row:1/-1;width:auto;height:min(70vh,100%);min-height:0;max-height:100%;inset:auto 0 0}.gd-contract-template-designer__page-decorations-studio-body{padding:var(--gdant-spacing-sm)}.gd-contract-template-designer__page-decorations-studio-head{align-items:flex-start}.gd-contract-template-designer__page-decorations-studio-actions{justify-content:flex-end;gap:var(--gdant-spacing-xs);flex-wrap:wrap}.gd-contract-template-designer__page-decorations-studio-footer{flex-direction:column;align-items:flex-start}.gd-contract-template-designer__page-decorations-studio-footer>div{justify-content:flex-end;width:100%}.gd-contract-template-designer__decoration-plan,.gd-contract-template-designer__decoration-slots-grid,.gd-contract-template-designer__decoration-slot-editor,.gd-contract-template-designer__decoration-control-grid{grid-template-columns:minmax(0,1fr)}.gd-contract-template-designer__decoration-slot-editor>.ant-dropdown-trigger{width:100%}}@media (prefers-reduced-motion:reduce){.gd-contract-template-designer__page-decorations-studio,.gd-contract-template-designer__page-decorations-studio *{transition:none}}