\documentclass[12pt,a4paper]{ctexart}
\usepackage{xeCJK}
% =========================
% 0) 基础包
% =========================
\usepackage[margin=2.0cm]{geometry}
\usepackage{setspace}
\setstretch{1.12}

\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{array}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{enumitem}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{fancyhdr}
\usepackage{tikz}
\usepackage{tcolorbox}
\usepackage[version=4]{mhchem}
\usepackage{xfp}
\usepackage{needspace}
\tcbuselibrary{skins, breakable}
\hypersetup{
  colorlinks=true,
  linkcolor=black,
  urlcolor=blue,
  citecolor=black
}

\ExplSyntaxOn

% 把任意数值格式化为两位小数：10800 -> 10800.00, 9.9 -> 9.90, -990.1 -> -990.10
\NewDocumentCommand{\Money}{m}{\mutiin_money:n{#1}}

\cs_new:Npn \mutiin_money:n #1
  {
    \int_compare:nNnTF { \fp_to_int:n { round((#1)*100,0) } } < {0}
      { - \mutiin_money_pos_cents:n { \int_eval:n { -\fp_to_int:n { round((#1)*100,0) } } } }
      { \mutiin_money_pos_cents:n { \int_eval:n {  \fp_to_int:n { round((#1)*100,0) } } } }
  }

\cs_new:Npn \mutiin_money_pos_cents:n #1
  {
    \int_to_arabic:n { \int_div_truncate:nn {#1}{100} }
    .
    \mutiin_two_digits:n { \int_mod:nn {#1}{100} }
  }

\cs_new:Npn \mutiin_two_digits:n #1
  {
    \int_compare:nNnTF {#1} < {10}
      { 0\int_to_arabic:n {#1} }
      { \int_to_arabic:n {#1} }
  }

\ExplSyntaxOff

% =========================
% 1) 品牌风格（你只需要改这里）
% =========================
\definecolor{Brand}{HTML}{0B2A5B}
\definecolor{Brand2}{HTML}{1B5AA6}
\definecolor{Accent}{HTML}{F0B429}
\definecolor{SoftBG}{HTML}{F5F7FA}
\definecolor{Line}{HTML}{D7DEE8}

% 公司信息（统一维护）
\newcommand{\CompanyName}{上海宇际互影科技服务有限公司}
\newcommand{\CompanyNameEN}{Shanghai Mutiin Scientific Services Co., Ltd.}
\newcommand{\CompanySlogan}{汇聚多宇智慧\ \,助探科学彩蕴}
\newcommand{\CompanyAddr}{上海市浦东新区御桥路969弄智慧岭T4办公楼901室}
\newcommand{\CompanyWeb}{https://www.mutiin.com}
\newcommand{\CompanyEmail}{contact@mutiin.com}
\newcommand{\CompanyTel}{400 021 3616}
\newcommand{\CompanyTax}{91310107MAD2CQ623N}

% Logo（可选：放 logo.png 并取消注释）
\newcommand{\CompanyLogoPath}{logo.png} % 例如 logo.png

% 报价信息
\newcommand{\QuoteTitle}{服务报价单}
\newcommand{\QuoteNo}{Q-2026-0124}
\newcommand{\QuoteDate}{2026-01-28}
\newcommand{\Currency}{CNY} % CNY / USD / SGD

% 客户信息
\newcommand{\ClientName}{内蒙古科技大学}
\newcommand{\ClientContact}{安娜}
\newcommand{\ClientEmail}{（客户邮箱）}
\newcommand{\ClientTel}{18983127901}
\newcommand{\ClientAddr}{内蒙古包头市昆都仑区阿尔丁大街7号}

% 商务条款
\newcommand{\QuoteValidDays}{15}
\newcommand{\PayTerm}{30\% 预付款，70\% 交付后支付}
\newcommand{\InvoiceTerm}{开具（增值税专票/普票）按需}
\newcommand{\DeliveryTerm}{最终统一交付}

% 收款信息（可选）
\newcommand{\BankName}{中国工商银行股份有限公司上海市中科路支行}
\newcommand{\BankAcct}{1001145709000112021}
\newcommand{\BankHolder}{\CompanyName}

% 可选：水印（默认关）
\newif\ifWatermark
\Watermarkfalse
\Watermarktrue

% =========================
% 2) 页眉页脚（公司风）
% =========================
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

% 顶部品牌色条
\fancyhead[C]{
\begin{tikzpicture}[remember picture,overlay]
  \fill[Brand] (current page.north west) rectangle ([yshift=-1.25cm]current page.north east);
  \fill[Brand2] (current page.north west) rectangle ([yshift=-1.34cm]current page.north east);
\end{tikzpicture}
\vspace{0.55cm}
}

% 页脚信息
\fancyfoot[L]{\small \textcolor{gray}{\CompanyName\ \textbar\ \CompanyEmail\ \textbar\ \CompanyTel}}
\fancyfoot[R]{\small \textcolor{gray}{\thepage}}

% =========================
% 3) 公共组件
% =========================
\newcolumntype{Y}{>{\raggedright\arraybackslash}X}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}

\newtcolorbox{InfoBox}[1]{
  enhanced,
  breakable,
  colback=SoftBG,
  colframe=Line,
  boxrule=0.6pt,
  arc=3mm,
  left=10pt,right=10pt,top=8pt,bottom=8pt,
  title=\textbf{#1},
  coltitle=black,
  fonttitle=\normalsize,
}

\newtcolorbox{BrandBox}[1]{
  enhanced,
  breakable,
  colback=white,
  colframe=Brand,
  boxrule=0.9pt,
  arc=3mm,
  left=10pt,right=10pt,top=8pt,bottom=8pt,
  title=\textbf{#1},
  coltitle=Brand,
  fonttitle=\normalsize,
}

\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{eso-pic}
% 前景水印：每页都画，始终在最上层（不会被表格盖住）
\AddToShipoutPictureFG{
  \begin{tikzpicture}[remember picture,overlay]
    \node[opacity=0.07, rotate=45, yshift=.15\paperheight]
      at (current page.center)
      {\includegraphics[width=0.55\paperwidth,keepaspectratio]{logo2.png}};
    \node[opacity=0.07, rotate=45, yshift=-.15\paperheight]
      at (current page.center)
      {\includegraphics[width=0.55\paperwidth,keepaspectratio]{logo2.png}};
  \end{tikzpicture}
}

% =========================
\newcommand{\QuoteSealFile}{mutiin_seal.png}
\IfFileExists{mutiin_seal.png}{}{\renewcommand{\QuoteSealFile}{mutiin_seal.png}}
\newcommand{\QuoteSealWidth}{4.2cm}
\newcommand{\QuoteSealOpacity}{0.76}
\newcommand{\QuoteSealRotate}{0}

% 相对锚点的偏移（一次调好即可，后续内容变化不需要再调）
% 说明：x 正=向右，x 负=向左；y 正=向上，y 负=向下
\newcommand{\QuoteSealOffsetX}{-3cm}
\newcommand{\QuoteSealOffsetY}{-0.7cm}

% 在正文里放一个“记忆坐标”锚点
\newcommand{\QuoteSealMark}[1]{\tikz[remember picture,baseline]\node[inner sep=0pt,outer sep=0pt] (#1) {};}

% 在同一页叠加红章（overlay）
\newcommand{\PlaceQuoteSeal}[1]{%
  \begin{tikzpicture}[remember picture,overlay]
    \node[opacity=\QuoteSealOpacity, rotate=\QuoteSealRotate, anchor=center]
      at ($(#1)+(\QuoteSealOffsetX,\QuoteSealOffsetY)$)
      {\IfFileExists{\QuoteSealFile}{\includegraphics[width=\QuoteSealWidth]{\QuoteSealFile}}{}};
  \end{tikzpicture}
}

% =========================
% 4) 正文开始
% =========================
\begin{document}

\vspace*{0.55cm}

\noindent
\begin{minipage}[c]{0.18\textwidth}
  \centering
  \includegraphics[height=2.5cm,keepaspectratio]{logo1.png}
\end{minipage}
\hfill
\begin{minipage}[c]{0.80\textwidth}
  \raggedright

  % 标题
  {\fontsize{26}{32}\selectfont\bfseries \textcolor{Brand}{\QuoteTitle}}\par
  \vspace{2pt}

  % 中文公司名
  {\fontsize{12}{16}\selectfont \textcolor{gray!70}{\CompanyName}}\par

  % 英文公司名
  {\fontsize{11}{14}\selectfont \textcolor{gray!60}{\CompanyNameEN}}\par

  % 口号
  {\fontsize{11}{14}\selectfont \textcolor{gray!60}{\CompanySlogan}}
\end{minipage}

\vspace{0.65cm}

% ===== 概览信息卡 =====
\begin{InfoBox}{报价概览}
\begin{tabularx}{\textwidth}{@{}p{0.12\textwidth}Y p{0.14\textwidth}Y@{}}
\toprule
\textbf{报价编号} & \QuoteNo & \textbf{报价日期} & \QuoteDate \\
\textbf{客户名称} & \ClientName & \textbf{币种} & \Currency \\
\textbf{联系人} & \ClientContact & \textbf{报价有效期} & \QuoteValidDays\ 天 \\
\textbf{联系方式} & \ClientTel & \textbf{邮箱} & \ClientEmail \\
\textbf{客户地址} & \ClientAddr & \textbf{开票} & \InvoiceTerm \\
\bottomrule
\end{tabularx}
\end{InfoBox}

\vspace{8pt}

% ===== 项目摘要 =====
\begin{BrandBox}{项目摘要}
\begin{itemize}[leftmargin=1.8em,itemsep=2pt,topsep=2pt]
  \item \textbf{项目目标：} 协助客户推测给定条件下银离子的存在形式和形成过程
  \item \textbf{研究对象：}\ce{Ag+}、\ce{Fe^{3+}}、\ce{Cl-}和DMSO溶液体系（1M的\ce{FeCl3}溶于DMSO溶液中，体系无水，常温常压）
  \item \textbf{输出形式：}反应方程式、自由能数据、分子结构和结构图
\end{itemize}
\end{BrandBox}

\vspace{8pt}

% ===== 费用自动累计（从“计算方案与价格”表中汇总）=====
\newcommand{\PricingSumInit}{\xdef\PricingSum{0}}
\newcommand{\AddFee}[1]{
  \xdef\PricingSum{\fpeval{round(\PricingSum + (#1), 2)}}
  ￥\Money{#1}
}

% =========================
% 5) 工作包/里程碑报价
% =========================
\section*{计算方案与价格（Method \& Pricing）}
\PricingSumInit

\begin{longtable}{@{}C{0.03\textwidth}p{0.55\textwidth}p{0.22\textwidth}R{0.12\textwidth}@{}}
\toprule
\textbf{ID} & \textbf{工作包内容} & \textbf{交付物} & \textbf{费用} \\
\midrule
\endhead

M1 &
分析（不限于）如下活性物质破坏细胞壁的机理和能量势垒：
\begin{itemize}[leftmargin=1.6em,itemsep=2pt,topsep=2pt]
  \item 臭氧破坏细胞壁的机理和能量势垒。
  \item 过氧化氢破坏细胞壁的机理和能量势垒。
  \item 单线态氧破坏细胞壁的机理和能量势垒。
  \item 羟基自由基破坏细胞壁的机理和能量势垒。
  \item 激发态氧原子破坏细胞壁的机理和能量势垒。
  \item 各种活性物质产生的表观能量势垒。
\end{itemize}
&
反应机理和过渡态能量相关的分子结构和自由能数据。 &
\AddFee{5500} \\

M2 &
分析（不限于）如下活性物质破坏相应蛋白某些氨基酸残基的机理和能量势垒：
\begin{itemize}[leftmargin=1.6em,itemsep=2pt,topsep=2pt]
  \item 臭氧破坏相应蛋白的机理和能量势垒。
  \item 过氧化氢破坏相应蛋白的机理和能量势垒。
  \item 单线态氧破坏相应蛋白的机理和能量势垒。
  \item 羟基自由基破坏相应蛋白的机理和能量势垒。
  \item 激发态氧原子破坏相应蛋白的机理和能量势垒。
  \item 各种活性物质产生的表观能量势垒。
\end{itemize}
&
反应机理和过渡态能量相关的分子结构和自由能数据。 &
\AddFee{5500} \\

M3 &
分析（不限于）如下活性物质破坏多酚类物质的机理和能量势垒：
\begin{itemize}[leftmargin=1.6em,itemsep=2pt,topsep=2pt]
  \item 臭氧破坏相应多酚类化合物的机理和能量势垒。
  \item 过氧化氢破坏相应多酚类化合物的机理和能量势垒。
  \item 单线态氧破坏相应多酚类化合物的机理和能量势垒。
  \item 羟基自由基破坏相应多酚类化合物的机理和能量势垒。
  \item 激发态氧原子破坏相应多酚类化合物的机理和能量势垒。
  \item 各种活性物质产生的表观能量势垒。
\end{itemize}
&
反应机理和过渡态能量相关的分子结构和自由能数据。 &
\AddFee{5500} \\

M4 &
构建（偏）微分方程（组）：
\begin{itemize}[leftmargin=1.6em,itemsep=2pt,topsep=2pt]
  \item 构建因为细胞壁被破坏速率引发的多酚类物质释放（扩散）速率方程。
  \item 构建因为蛋白的某个或数个氨基酸残基被破坏速率引发的多酚类物质无法被结合（释放）速率方程。
  \item 构建多酚类物质被破坏速率导致的其浓度降低速率方程。
\end{itemize}
&
（偏）微分方程组。 &
\AddFee{3000} \\

M5 &
求解上述方程组，从而获得活性粒子的浓度与多酚类物质浓度之间的关系。
&
（偏）微分方程组的解及相应的浓度关系二维图。 &
\AddFee{3000} \\

\midrule
\multicolumn{4}{@{}l@{}}{\small 注：因具体情况的复杂性，实际计算过程可能有所调整。}\\
\bottomrule
\end{longtable}

\Needspace{10\baselineskip}
% ===== 金额输入（你只改后两行）=====
\edef\GrossTotal{\PricingSum}
\newcommand{\DiscGross}{1000}
\newcommand{\VATRate}{0.01}
% ===============================

\begin{InfoBox}{费用汇总}
\begingroup

\edef\GrossBefore{\fpeval{round(\GrossTotal, 2)}}
\edef\NetBefore{\fpeval{round(\GrossBefore/(1+\VATRate), 2)}}
\edef\TaxBefore{\fpeval{round(\GrossBefore-\NetBefore, 2)}}

\edef\DiscG{\fpeval{round(\DiscGross, 2)}}
\edef\DiscNet{\fpeval{round(\DiscG/(1+\VATRate), 2)}}
\edef\DiscTax{\fpeval{round(\DiscG-\DiscNet, 2)}}

\edef\GrossAfter{\fpeval{round(max(\GrossBefore-\DiscG, 0), 2)}}
\edef\NetAfter{\fpeval{round(\GrossAfter/(1+\VATRate), 2)}}
\edef\TaxAfter{\fpeval{round(\GrossAfter-\NetAfter, 2)}}

\begin{tabularx}{\textwidth}{@{}Y R{0.28\textwidth}@{}}
\toprule
\textbf{项目费用（\Currency）} & \\
\midrule
价税合计（折前，含税） & ￥\Money{\GrossBefore} \\
项目金额（折前，未税） & ￥\Money{\NetBefore} \\
税额（折前，\fpeval{round(\VATRate*100,2)}\%） & ￥\Money{\TaxBefore} \\
\midrule
优惠折扣（含税） & -￥\Money{\DiscG} \\
优惠折扣（未税） & -￥\Money{\DiscNet} \\
优惠折扣（税额） & -￥\Money{\DiscTax} \\
\midrule
折后金额（未税） & ￥\Money{\NetAfter} \\
折后税额（\fpeval{round(\VATRate*100,2)}\%） & ￥\Money{\TaxAfter} \\
\textbf{价税合计（折后，含税）} & \textbf{￥\Money{\GrossAfter}} \\
\bottomrule
\end{tabularx}

\endgroup
\end{InfoBox}

\Needspace{10\baselineskip}

% =========================
% 6) 范围说明（公司交付常见“边界”）
% =========================
\section*{范围与假设（Scope \& Assumptions)}

\begin{BrandBox}{服务范围包含}
\begin{itemize}[leftmargin=1.8em,itemsep=2pt,topsep=2pt]
  \item 模型建立与参数化（在可行范围内；必要时给出替代方案/风险提示）。
  \item 计算执行与质量控制：收敛/稳定性检查、异常排查与记录。
  \item 常规分析与结论输出：图表、对比表格、关键相互作用解释、作图原始数据。
  \item 可复现交付：关键输入、参数、脚本、软件版本/随机种子说明（如适用）。
\end{itemize}
\end{BrandBox}

\begin{InfoBox}{不包含（如需可另行报价）}
\begin{itemize}[leftmargin=1.8em,itemsep=2pt,topsep=2pt]
  \item 实验验证、样品制备、第三方数据库/商业软件额外授权费用。
  \item 超出约定范围的新增体系、显著增加的模拟时长或更高精度方法（如 FEP/TI/大规模 DFT 扫描）。
  \item 因客户提供结构/信息缺失导致的重大返工（将先评估影响并沟通调整）。
  \item 基于个人审美偏好的定制化风格调整及多轮修改（适用标准套餐）。
\end{itemize}
\end{InfoBox}

% =========================
% 7) 商务条款
% =========================
\section*{商务条款（Commercial Terms)}

\begin{InfoBox}{付款与交付}
\begin{itemize}[leftmargin=1.8em,itemsep=2pt,topsep=2pt]
  \item 付款方式：\PayTerm
  \item 交付方式：\DeliveryTerm
  \item 报价有效期：\QuoteValidDays\ 天（自 \QuoteDate 起）
\end{itemize}
\end{InfoBox}

\begin{InfoBox}{保密与知识产权}
\begin{itemize}[leftmargin=1.8em,itemsep=2pt,topsep=2pt]
  \item 保密：双方可签署 NDA；项目数据与结果仅用于约定用途。
  \item 结果归属：交付报告与数据按合同约定归属；方法/脚本通用框架保留我方署名与复用权。
  \item 免责声明：计算结果受模型假设与参数影响，建议结合实验验证；我们将如实呈现不确定性与局限性。
\end{itemize}
\end{InfoBox}

% 可选：收款信息
\begin{BrandBox}{收款信息}
\begin{tabularx}{\textwidth}{@{}p{0.16\textwidth}Y@{}}
\toprule
收款单位 & \BankHolder \\
开户行 & \BankName \\
账号 & \BankAcct \\
\bottomrule
\end{tabularx}
\end{BrandBox}

\vspace{6pt}

% =========================
% 8) 签署区
% =========================
\section*{签署确认}
\begin{tabularx}{\textwidth}{@{}X X@{}}
\toprule
\textbf{供应商（我方）} & \textbf{客户（贵方）} \\
\midrule
公司：\CompanyName\QuoteSealMark{QuoteSealAnchor} & 公司：\ClientName \\
代表：高广娟 \quad & 代表：\quad \\
日期：\QuoteDate \quad & 日期：\quad \\
\bottomrule
\end{tabularx}
\PlaceQuoteSeal{QuoteSealAnchor}

\vfill
\begin{center}
{\small \textcolor{gray}{\CompanyNameEN\quad |\quad \CompanyWeb\quad |\quad \CompanyEmail}}
\end{center}

\end{document}