{"id":4556,"date":"2026-06-25T23:27:06","date_gmt":"2026-06-25T15:27:06","guid":{"rendered":"https:\/\/longmai-nt.com\/?page_id=4556"},"modified":"2026-06-27T16:13:40","modified_gmt":"2026-06-27T08:13:40","slug":"4556-2","status":"publish","type":"page","link":"https:\/\/longmai-nt.com\/?page_id=4556","title":{"rendered":"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\u2014\u2014\u81ea\u52a8\u5bf9\u6bd4\u5206\u6790"},"content":{"rendered":"\n\n<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668 | \u9f99\u8109\u6696\u901a<\/title>\n<style>\n  \/* ===== Reset & Base ===== *\/\n  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\n  body{\n    font-family:-apple-system,BlinkMacSystemFont,\"PingFang SC\",\"Helvetica Neue\",\"Microsoft YaHei\",sans-serif;\n    background:#f3f5f9;color:#222;line-height:1.6;padding:20px\n  }\n  .container{max-width:1100px;margin:0 auto}\n\n  \/* ===== Header ===== *\/\n  .header{\n    background:linear-gradient(135deg,#c0392b,#e74c3c);color:#fff;\n    border-radius:16px;padding:28px 32px;margin-bottom:24px;\n    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px\n  }\n  .header h1{font-size:24px;font-weight:700;letter-spacing:.5px}\n  .header h1 small{font-size:13px;font-weight:400;opacity:.85;display:block;margin-top:3px}\n  .header-badge{background:rgba(255,255,255,.2);border-radius:8px;padding:6px 16px;font-size:13px;text-align:right}\n  .header-badge strong{font-size:20px;display:block}\n\n  \/* ===== Cards ===== *\/\n  .card{background:#fff;border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,.06);padding:22px 26px;margin-bottom:18px}\n  .card-title{font-size:17px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:10px}\n  .card-title .icon{\n    width:30px;height:30px;background:#c0392b;color:#fff;\n    border-radius:7px;display:inline-flex;align-items:center;\n    justify-content:center;font-size:15px;flex-shrink:0\n  }\n  .card-title .tag{font-size:11px;font-weight:400;background:#e8f5e9;color:#2e7d32;padding:2px 10px;border-radius:20px;margin-left:auto}\n\n  \/* ===== Form ===== *\/\n  .form-row{display:flex;flex-wrap:wrap;gap:14px 20px;margin-bottom:14px}\n  .form-row:last-child{margin-bottom:0}\n  .form-group{flex:1;min-width:180px}\n  .form-group label{display:block;font-size:13px;font-weight:600;color:#555;margin-bottom:5px}\n  .form-group label .hint{font-weight:400;color:#999;font-size:12px}\n  .form-group input[type=\"number\"],.form-group select{\n    width:100%;padding:10px 14px;border:2px solid #e0e0e0;\n    border-radius:8px;font-size:15px;transition:border .2s;background:#fff;outline:none\n  }\n  .form-group input:focus,.form-group select:focus{border-color:#c0392b}\n\n  \/* ===== Select (styled) ===== *\/\n  .styled-select{\n    width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:10px;\n    font-size:15px;background:#fff url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='2' fill='none'\/%3E%3C\/svg%3E\") no-repeat right 16px center;\n    appearance:none;-webkit-appearance:none;cursor:pointer;transition:border .2s;outline:none\n  }\n  .styled-select:focus{border-color:#c0392b}\n  .styled-select option{padding:8px}\n\n  \/* ===== Slider ===== *\/\n  .area-slider-wrap{display:flex;align-items:center;gap:16px}\n  .area-slider-wrap input[type=\"range\"]{\n    flex:1;-webkit-appearance:none;appearance:none;\n    height:6px;border-radius:3px;background:linear-gradient(to right,#e74c3c,#c0392b);outline:none\n  }\n  .area-slider-wrap input[type=\"range\"]::-webkit-slider-thumb{\n    -webkit-appearance:none;appearance:none;width:22px;height:22px;\n    border-radius:50%;background:#c0392b;cursor:pointer;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.2)\n  }\n  .area-display{font-size:26px;font-weight:800;color:#c0392b;min-width:68px;text-align:center}\n  .area-display small{font-size:13px;font-weight:400;color:#888}\n\n  \/* ===== Toggle ===== *\/\n  .toggle-wrap{display:flex;align-items:center;gap:12px;margin-top:4px}\n  .toggle{position:relative;width:48px;height:26px;flex-shrink:0}\n  .toggle input{display:none}\n  .toggle .slider{\n    position:absolute;inset:0;background:#ccc;border-radius:13px;cursor:pointer;transition:.3s\n  }\n  .toggle .slider::before{\n    content:'';position:absolute;width:20px;height:20px;\n    left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s\n  }\n  .toggle input:checked+.slider{background:#c0392b}\n  .toggle input:checked+.slider::before{transform:translateX(22px)}\n\n  \/* ===== Package Cards ===== *\/\n  .pkg-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n  @media(max-width:700px){.pkg-grid{grid-template-columns:1fr}}\n  .pkg-card{\n    border:2px solid #e8e8e8;border-radius:12px;padding:16px 18px;\n    cursor:pointer;transition:all .25s;position:relative\n  }\n  .pkg-card:hover{border-color:#bbb}\n  .pkg-card.selected{border-color:#c0392b;background:#fff5f3;box-shadow:0 0 0 1px #c0392b}\n  .pkg-card .pkg-radio{\n    width:18px;height:18px;border:2px solid #ccc;border-radius:50%;\n    display:inline-block;vertical-align:middle;margin-right:8px;position:relative;flex-shrink:0\n  }\n  .pkg-card.selected .pkg-radio{border-color:#c0392b;background:#c0392b}\n  .pkg-card.selected .pkg-radio::after{\n    content:'';position:absolute;top:3px;left:3px;width:8px;height:8px;background:#fff;border-radius:50%\n  }\n  .pkg-card .pkg-header{display:flex;align-items:center;margin-bottom:4px}\n  .pkg-name{font-weight:700;font-size:15px}\n  .pkg-price{font-size:22px;font-weight:800;color:#c0392b;margin:4px 0}\n  .pkg-price small{font-size:12px;font-weight:400;color:#888}\n  .pkg-tag{\n    font-size:10px;padding:1px 8px;border-radius:8px;display:inline-block;margin-bottom:4px\n  }\n  .tag-blue{background:#e3f2fd;color:#1565c0}\n  .tag-green{background:#e8f5e9;color:#2e7d32}\n  .tag-gold{background:#fff8e1;color:#f57f17}\n  .tag-red{background:#fce4ec;color:#c62828}\n  .pkg-detail{font-size:12px;color:#666;line-height:1.7;margin-top:4px}\n  .pkg-detail .free-upgrade{color:#2e7d32;font-weight:600}\n  .pkg-recommend{\n    position:absolute;top:-7px;right:10px;background:#e74c3c;color:#fff;\n    font-size:10px;padding:2px 10px;border-radius:10px;font-weight:600\n  }\n  .pkg-sub{font-size:12px;color:#888;margin-bottom:2px}\n\n  \/* ===== Free Upgrade Badge ===== *\/\n  .free-badge{\n    display:inline-block;background:#e8f5e9;color:#2e7d32;font-size:11px;\n    padding:2px 10px;border-radius:10px;font-weight:600;margin:2px 0\n  }\n\n  \/* ===== Cost Table ===== *\/\n  .cost-table{width:100%;border-collapse:collapse;font-size:14px}\n  .cost-table th{text-align:left;padding:8px 10px;border-bottom:2px solid #eee;font-size:12px;color:#888;font-weight:600}\n  .cost-table td{padding:8px 10px;border-bottom:1px solid #f0f0f0;vertical-align:top}\n  .cost-table tr:last-child td{border-bottom:none}\n  .cost-table .item-label{font-weight:600}\n  .cost-table .item-detail{color:#888;font-size:12px;line-height:1.6}\n  .cost-table .item-amount{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}\n  .cost-table .total-row td{font-size:16px;font-weight:800;border-top:2px solid #c0392b;padding-top:12px}\n  .cost-table .total-row .item-amount{font-size:22px;color:#c0392b}\n  .cost-table .free-row td{color:#2e7d32;font-size:12px}\n  .cost-table .free-row .item-amount{color:#2e7d32}\n\n  \/* ===== Multi-scheme Comparison ===== *\/\n  .scheme-block{border:1px solid #e8edf3;border-radius:10px;padding:16px 18px;margin-bottom:14px;background:#fafcff}\n  .scheme-block:last-child{margin-bottom:0}\n  .sb-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}\n  .sb-title{font-size:15px;font-weight:700;color:#0f3460}\n  .sb-remove{font-size:12px;color:#e74c3c;background:none;border:1px solid #e74c3c;padding:3px 12px;border-radius:4px;cursor:pointer;transition:.2s}\n  .sb-remove:hover{background:#fef5f5}\n  .sb-table{width:100%;font-size:13px;border-collapse:collapse}\n  .sb-table td{padding:4px 10px;border-bottom:1px solid #f0f0f0}\n  .sb-table .td-lbl{color:#888;width:100px}\n  .sb-table .td-val{color:#333}\n  .sb-table .td-pri{text-align:right;color:#333;font-weight:500}\n  .sb-table .sb-total td{font-weight:700;color:#c0392b;border-top:2px solid #c0392b;padding-top:8px;font-size:15px}\n  .sb-table .sb-free td{color:#2e7d32;font-size:12px}\n  .grand-total-row{display:flex!important;justify-content:space-between;align-items:center;padding:14px 18px;background:#fef5f5;border-radius:8px;margin-top:4px}\n  .empty-hint{text-align:center;color:#bbb;padding:20px;font-size:14px}\n\n  \/* ===== Summary Panel ===== *\/\n  .summary-panel{\n    background:linear-gradient(135deg,#c0392b,#e74c3c);color:#fff;\n    border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:10px\n  }\n  .summary-panel .total-big{font-size:40px;font-weight:800;line-height:1.2}\n  .summary-panel .total-big small{font-size:15px;font-weight:400;opacity:.8}\n  .summary-line{font-size:13px;opacity:.9;display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.15)}\n  .summary-line:last-of-type{border-bottom:none}\n  .summary-note{font-size:11px;opacity:.7;margin-top:8px;border-top:1px solid rgba(255,255,255,.2);padding-top:8px}\n\n  \/* ===== Free Upgrade Display ===== *\/\n  .upgrade-banner{\n    background:linear-gradient(135deg,#e8f5e9,#c8e6c9);\n    border:1px solid #a5d6a7;border-radius:10px;padding:12px 16px;\n    display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px\n  }\n  .upgrade-banner .upgrade-icon{font-size:20px}\n  .upgrade-banner .upgrade-text{font-size:13px;color:#2e7d32;font-weight:600}\n  .upgrade-banner .upgrade-item{background:#fff;border-radius:6px;padding:4px 12px;font-size:12px;color:#333}\n\n  \/* ===== Actions ===== *\/\n  .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}\n  .btn{\n    padding:10px 22px;border:none;border-radius:8px;font-size:14px;\n    font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px\n  }\n  .btn-primary{background:#c0392b;color:#fff}\n  .btn-primary:hover{background:#a93226}\n  .btn-outline{background:transparent;border:2px solid #c0392b;color:#c0392b}\n  .btn-outline:hover{background:#fff5f3}\n\n  \/* ===== Admin Panel ===== *\/\n  .admin-toggle{text-align:right;margin-bottom:10px}\n  .admin-toggle label{font-size:13px;color:#888;cursor:pointer;display:inline-flex;align-items:center;gap:6px}\n  .admin-panel{display:none;background:#fef9f0;border:1px solid #f0d9b5;border-radius:10px;padding:14px 18px;margin-bottom:14px}\n  .admin-panel.visible{display:block}\n  .admin-panel .admin-title{font-size:13px;font-weight:600;color:#a67c00;margin-bottom:10px}\n  .admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}\n  .admin-item label{display:block;font-size:11px;color:#888;margin-bottom:2px}\n  .admin-item input{width:100%;padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;background:#fff}\n\n  \/* ===== Print ===== *\/\n  @media print{\n    body{background:#fff;padding:0}\n    .header{border-radius:0}\n    .actions,.admin-toggle,.admin-panel{display:none!important}\n    .card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}\n    .summary-panel{break-inside:avoid}\n  }\n\n  \/* ===== Animation ===== *\/\n  @keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}\n  .card{animation:fadeIn .3s ease-out}\n\n  \/* ===== Collapsible Breakdown ===== *\/\n  .breakdown-toggle{\n    font-size:12px;color:#c0392b;cursor:pointer;margin-top:4px;display:inline-block\n  }\n  .breakdown-toggle:hover{text-decoration:underline}\n  .breakdown-detail{display:none;margin-top:6px;padding:8px 12px;background:#fafafa;border-radius:8px;font-size:12px;line-height:1.8}\n  .breakdown-detail.open{display:block}\n  .breakdown-detail .bd-row{display:flex;justify-content:space-between;padding:2px 0}\n  .breakdown-detail .bd-row .bd-label{color:#666}\n  .breakdown-detail .bd-row .bd-val{font-weight:600;color:#333}\n  .breakdown-detail .bd-row.bd-total{font-weight:700;border-top:1px solid #ddd;padding-top:4px;margin-top:2px}\n  .breakdown-detail .bd-row.bd-total .bd-val{color:#c0392b}\n  .breakdown-detail .bd-free{color:#2e7d32;font-weight:600;padding:2px 0}\n<\/style>\n<\/head>\n<body>\n\n<div class=\"container\" id=\"app\">\n\n  <!-- ===== HEADER ===== -->\n  <div class=\"header\">\n    <div>\n      <h1>\ud83d\udd25 \u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\n        <small>\u9f99\u8109\u6696\u901a \u00b7 \u4ef7\u683c\u6307\u4ee402\u7248 v2.0<\/small>\n      <\/h1>\n    <\/div>\n    <div class=\"header-badge\">\n      <span>\u91c7\u6696\u9762\u79ef<\/span>\n      <strong id=\"headerArea\">90<\/strong>\n      <span>\u33a1<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- ===== ADMIN TOGGLE ===== -->\n  <div class=\"admin-toggle\">\n    <label>\n      <input type=\"checkbox\" id=\"adminModeToggle\" onchange=\"toggleAdmin()\">\n      \u2699\ufe0f \u7ba1\u7406\u5458\u6a21\u5f0f\uff08\u7f16\u8f91\u5355\u4ef7\uff09\n    <\/label>\n  <\/div>\n  <div class=\"admin-panel\" id=\"adminPanel\">\n    <div class=\"admin-title\">\ud83d\udccb \u5168\u5c40\u4ef7\u683c\u8bbe\u7f6e\uff08\u4fee\u6539\u540e\u81ea\u52a8\u66f4\u65b0\u62a5\u4ef7\uff09<\/div>\n    <div class=\"admin-grid\">\n      <div class=\"admin-item\"><label>\u91c7\u6696\u9762\u79ef (\u33a1)<\/label><input type=\"number\" id=\"adminArea\" value=\"90\" min=\"30\" max=\"500\" onchange=\"syncFromAdmin()\"><\/div>\n      <div class=\"admin-item\"><label>\u5e02\u573a\u901a\u914d\u00b7\u66fc\u745e\u5fb7\u603b\u63a7 (\u5143\/\u33a1)<\/label><input type=\"number\" id=\"adminPkgA\" value=\"99\" min=\"0\" onchange=\"syncFromAdmin()\"><\/div>\n      <div class=\"admin-item\"><label>\u5e02\u573a\u901a\u914d\u00b7\u66fc\u745e\u5fb7\u5206\u63a7 (\u5143\/\u33a1)<\/label><input type=\"number\" id=\"adminPkgB\" value=\"119\" min=\"0\" onchange=\"syncFromAdmin()\"><\/div>\n      <div class=\"admin-item\"><label>\u8282\u80fd\u4f18\u60e0\u5957\u9910 (\u5143\/\u33a1)<\/label><input type=\"number\" id=\"adminPkgC\" value=\"169\" min=\"0\" onchange=\"syncFromAdmin()\"><\/div>\n      <div class=\"admin-item\"><label>\u4f1f\u661f\u767d\u6676\u677f\u5347\u7ea7 (\u5143\/\u33a1)<\/label><input type=\"number\" id=\"adminWhiteBoard\" value=\"15\" min=\"0\" onchange=\"syncFromAdmin()\"><\/div>\n      <div class=\"admin-item\"><label>\u72ec\u7acb\u70ed\u6c34\u5668 (\u5143)<\/label><input type=\"number\" id=\"adminWaterHeater\" value=\"3000\" min=\"0\" onchange=\"syncFromAdmin()\"><\/div>\n      <div class=\"admin-item\"><label>\u4e8c\u6b21\u4fa7\u53d8\u9891\u8054\u52a8 (\u5143\/\u5957)<\/label><input type=\"number\" id=\"adminFreqDrive\" value=\"3000\" min=\"0\" onchange=\"syncFromAdmin()\"><\/div>\n      <div class=\"admin-item\"><label>\u5168\u6548\u6c34\u6a21\u5757 (\u5143\/\u5957)<\/label><input type=\"number\" id=\"adminWaterModule\" value=\"8500\" min=\"0\" onchange=\"syncFromAdmin()\"><\/div>\n    <\/div>\n  <\/div>\n\n  <!-- ===== SECTION 1: \u91c7\u6696\u9762\u79ef ===== -->\n  <div class=\"card\">\n    <div class=\"card-title\">\n      <span class=\"icon\">\ud83d\udccf<\/span>\n      \u91c7\u6696\u9762\u79ef <span class=\"tag\">\u5fc5\u586b<\/span>\n    <\/div>\n    <div class=\"form-row\">\n      <div class=\"form-group\">\n        <label>\u8bf7\u8f93\u5165\u5730\u6696\u94fa\u8bbe\u9762\u79ef <span class=\"hint\">\uff08\u975e\u5efa\u7b51\u9762\u79ef\uff0c\u5efa\u8bae 50~200 \u33a1\uff09<\/span><\/label>\n        <div class=\"area-slider-wrap\">\n          <input type=\"range\" id=\"areaSlider\" min=\"20\" max=\"300\" value=\"90\" oninput=\"onAreaChange(this.value)\">\n          <span class=\"area-display\" id=\"areaDisplay\">90<small>\u33a1<\/small><\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- ===== SECTION 2: \u58c1\u6302\u7089\uff08\u4e0b\u62c9\u83dc\u5355\uff09 ===== -->\n  <div class=\"card\">\n    <div class=\"card-title\">\n      <span class=\"icon\">\ud83d\udd25<\/span>\n      \u70ed\u6e90\uff08\u58c1\u6302\u7089\/\u7a7a\u6c14\u80fd\u6c34\u6a21\u5757\uff09<span class=\"tag\">\u5fc5\u9009<\/span>\n    <\/div>\n    <div class=\"form-row\">\n      <div class=\"form-group\">\n        <label>\u8bf7\u9009\u62e9\u58c1\u6302\u7089\u578b\u53f7 <span class=\"hint\">\uff08\u4ef7\u683c\u53ef\u4e8e\u7ba1\u7406\u5458\u6a21\u5f0f\u7f16\u8f91\uff09<\/span><\/label>\n        <select class=\"styled-select\" id=\"boilerSelect\" onchange=\"onBoilerChange(this.value)\">\n          <option value=\"hipro\">\u2605 \u63a8\u8350 \u2014 \u66fc\u745e\u5fb7 HI.PRO 18kW \u53d8\u9891\u5355\u91c7\u6696\u7089 \u00a54,666<\/option>\n          <option value=\"heidelberg\">\u66fc\u745e\u5fb7 Heidelberg 24kW \u5206\u6bb5\u71c3\u70e7\u4e24\u7528\u7089 \u00a55,200<\/option>\n          <option value=\"xiaoka\">\u66fc\u745e\u5fb7\u5c0f\u5361\u6570\u5b57\u51b7\u51dd\u7089 24kW \u00a57,800<\/option>\n          <option value=\"vissmann\">\u83f2\u65af\u66fc A1JE 24kW \u5e38\u89c4\u4e24\u7528\u7089 \u00a56,800<\/option>\n          <option value=\"bosch3260\">\u535a\u4e163260\u51b7\u51dd\u7089 25kW \u00a59,800<\/option>\n          <option value=\"bosch\">\u535a\u4e16\u8ffd\u5149 28kW \u5e38\u89c4\u4e24\u7528\u7089 \u00a55,800<\/option>\n          <option value=\"b1jg\">\u83f2\u65af\u66fcB1JG\u51b7\u51dd\u7089 25kW \u00a510,800<\/option>\n        <\/select>\n      <\/div>\n      <div class=\"form-group\" style=\"min-width:120px;max-width:160px\">\n        <label>\u70ed\u6e90\u4ef7\u683c <span class=\"hint\">\u53ef\u7f16\u8f91<\/span><\/label>\n        <input type=\"number\" id=\"boilerPriceInput\" value=\"4666\" min=\"0\" onchange=\"onBoilerPriceChange(this.value)\">\n      <\/div>\n    <\/div>\n    <div class=\"form-row\">\n      <div class=\"form-group\">\n        <label>\u662f\u5426\u52a0\u88c5\u5168\u6548\u6c34\u6a21\u5757\uff1f<span class=\"hint\">\uff08\u63d0\u5347\u70ed\u6c34\u4f53\u9a8c\u4e0e\u7cfb\u7edf\u6548\u7387\uff09<\/span><\/label>\n        <div class=\"toggle-wrap\">\n          <label class=\"toggle\">\n            <input type=\"checkbox\" id=\"waterModuleToggle\" onchange=\"recalc()\">\n            <div class=\"slider\"><\/div>\n          <\/label>\n          <span id=\"waterModuleLabel\">\u672a\u9009\u914d \u2014 \u5168\u6548\u6c34\u6a21\u5757 \u00b7 <strong>\u00a58,500\/\u5957<\/strong><\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div style=\"margin-top:10px;font-size:13px;color:#888;background:#f9f9f9;padding:10px 14px;border-radius:8px;\">\n      \ud83d\udca1 <strong>\u91c7\u6696\u70ed\u6c34\u5206\u79bb\u63a8\u8350\uff1a<\/strong>\u58c1\u6302\u7089\u4ec5\u7528\u4e8e\u91c7\u6696\uff0c\u751f\u6d3b\u70ed\u6c34\u7531\u72ec\u7acb\u70ed\u6c34\u5668\u627f\u62c5\u3002\u957f\u671f\u81ea\u4f4f\u5efa\u8bae\u9009\u914d\u72ec\u7acb\u70ed\u6c34\u5668\u3002\n    <\/div>\n  <\/div>\n\n  <!-- ===== SECTION 3: \u72ec\u7acb\u70ed\u6c34\u5668 ===== -->\n  <div class=\"card\">\n    <div class=\"card-title\">\n      <span class=\"icon\">\ud83d\udebf<\/span>\n      \u72ec\u7acb\u70ed\u6c34\u5668 <span class=\"tag\">\u9009\u914d<\/span>\n    <\/div>\n    <div class=\"form-row\">\n      <div class=\"form-group\">\n        <label>\u662f\u5426\u914d\u7f6e\u72ec\u7acb\u70ed\u6c34\u5668\uff1f<span class=\"hint\">\uff08\u91c7\u6696\u70ed\u6c34\u5206\u79bb\uff0c\u63d0\u5347\u70ed\u6c34\u4f53\u9a8c\uff09<\/span><\/label>\n        <div class=\"toggle-wrap\">\n          <label class=\"toggle\">\n            <input type=\"checkbox\" id=\"waterHeaterToggle\" checked onchange=\"onWaterHeaterToggle()\">\n            <div class=\"slider\"><\/div>\n          <\/label>\n          <span id=\"whLabel\">\u5df2\u9009\u914d \u2014 \u66fc\u745e\u5fb7\/\u745e\u7f8e 13L\u6052\u6e29 \u00b7 <strong>\u00a53,000<\/strong><\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- ===== SECTION 4: \u5730\u6696\u7cfb\u7edf\u5957\u9910 ===== -->\n  <div class=\"card\">\n    <div class=\"card-title\">\n      <span class=\"icon\">\ud83d\udcd0<\/span>\n      \u5730\u6696\u7cfb\u7edf\u5957\u9910 <span class=\"tag\">\u5fc5\u9009<\/span>\n    <\/div>\n    <div style=\"font-size:13px;color:#888;margin-bottom:12px;background:#f5f5f5;padding:8px 14px;border-radius:8px;\">\n      \u2705 \u6240\u6709\u5957\u9910\u5df2\u5305\u542b\uff1a\u7ba1\u9053\u7cfb\u7edf + \u4fdd\u6e29\u5c42 + \u56de\u586b\u5c42 + \u5b89\u88c5\u65bd\u5de5\u8d39 + \u63a7\u5236\u7cfb\u7edf | \u70b9\u9009\u67e5\u770b\u8be6\u7ec6\u6784\u6210\n    <\/div>\n    <div class=\"pkg-grid\" id=\"pkgGrid\">\n      <!-- A: \u5e02\u573a\u901a\u914d\u66fc\u745e\u5fb7\u603b\u63a7 99 -->\n      <div class=\"pkg-card\" data-pkg=\"eco-total\" onclick=\"selectPkg('eco-total')\">\n        <div class=\"pkg-header\"><span class=\"pkg-radio\"><\/span><span class=\"pkg-name\">\u5e02\u573a\u901a\u914d\u00b7\u66fc\u745e\u5fb7\u603b\u63a7<\/span><\/div>\n        <div class=\"pkg-sub\">\u7ecf\u6d4e\u578b \u00b7 De16 \u00b7 15\u33a1\/\u56de\u8def \u00b7 \u95f4\u8ddd150mm<\/div>\n        <div class=\"pkg-price\" id=\"pkgPriceA\">99 <small>\u5143\/\u33a1<\/small><\/div>\n        <div class=\"pkg-detail\">\n          <span class=\"pkg-tag tag-blue\">\u7ecf\u6d4e\u578b<\/span><br>\n          De16\u76d8\u7ba1 \u00b7 15\u33a1\/\u56de\u8def \u00b7 \u95f4\u8ddd150mm<br>\n          \u8bfa\u5c14\u6324\u5851\u677f 2cm \u00b7 \u66fc\u745e\u5fb7\u603b\u63a7\uff08\u4e0d\u542b\u5206\u5ba4\u6e29\u63a7\uff09<br>\n          \u5b89\u88c5\u65bd\u5de5\u8d39\u5df2\u542b\n        <\/div>\n        <span class=\"breakdown-toggle\" onclick=\"event.stopPropagation();toggleBreakdown('bd-eco-total')\">\ud83d\udccb \u67e5\u770b\u660e\u7ec6\u6784\u6210 \u25bc<\/span>\n        <div class=\"breakdown-detail\" id=\"bd-eco-total\">\n          <div class=\"bd-row\"><span class=\"bd-label\">DE25+DE16 \u00b7 15\u33a1\/\u56de\u8def \u00b7 \u95f4\u8ddd150mm<\/span><span class=\"bd-val\">30 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u8bfa\u5c14\u6324\u5851\u677f 2cm\uff08\u4fdd\u6e29\u5c42\uff09<\/span><span class=\"bd-val\">15 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u8c46\u77f3\u6df7\u51dd\u571f\u56de\u586b\u5c42<\/span><span class=\"bd-val\">30 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u5b89\u88c5\u65bd\u5de5\u8d39<\/span><span class=\"bd-val\">24 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u66fc\u745e\u5fb7\u603b\u63a7\u7cfb\u7edf<\/span><span class=\"bd-val\">\u5df2\u542b<\/span><\/div>\n          <div class=\"bd-row bd-total\"><span class=\"bd-label\">\u5957\u9910\u603b\u4ef7<\/span><span class=\"bd-val\">99 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-free\">\u26a0\ufe0f \u4e0d\u542b\u5206\u5ba4\u6e29\u63a7\uff0c\u53ef\u5347\u7ea7\u81f3\u5206\u63a7\u5957\u9910<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- B: \u5e02\u573a\u901a\u914d\u66fc\u745e\u5fb7\u5206\u63a7 119 -->\n      <div class=\"pkg-card\" data-pkg=\"eco-split\" onclick=\"selectPkg('eco-split')\">\n        <div class=\"pkg-header\"><span class=\"pkg-radio\"><\/span><span class=\"pkg-name\">\u5e02\u573a\u901a\u914d\u00b7\u66fc\u745e\u5fb7\u5206\u63a7<\/span><\/div>\n        <div class=\"pkg-sub\">\u7ecf\u6d4e\u578b \u00b7 De16 \u00b7 15\u33a1\/\u56de\u8def \u00b7 \u95f4\u8ddd150mm<\/div>\n        <div class=\"pkg-price\" id=\"pkgPriceB\">119 <small>\u5143\/\u33a1<\/small><\/div>\n        <div class=\"pkg-detail\">\n          <span class=\"pkg-tag tag-blue\">\u7ecf\u6d4e\u578b<\/span><br>\n          De16\u76d8\u7ba1 \u00b7 15\u33a1\/\u56de\u8def \u00b7 \u95f4\u8ddd150mm<br>\n          \u8bfa\u5c14\u6324\u5851\u677f 2cm \u00b7 \u66fc\u745e\u5fb7\u5206\u5ba4\u6e29\u63a7\u7cfb\u7edf\n        <\/div>\n        <span class=\"breakdown-toggle\" onclick=\"event.stopPropagation();toggleBreakdown('bd-eco-split')\">\ud83d\udccb \u67e5\u770b\u660e\u7ec6\u6784\u6210 \u25bc<\/span>\n        <div class=\"breakdown-detail\" id=\"bd-eco-split\">\n          <div class=\"bd-row\"><span class=\"bd-label\">DE25+DE16 \u00b7 15\u33a1\/\u56de\u8def \u00b7 \u95f4\u8ddd150mm<\/span><span class=\"bd-val\">30 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u8bfa\u5c14\u6324\u5851\u677f 2cm\uff08\u4fdd\u6e29\u5c42\uff09<\/span><span class=\"bd-val\">15 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u8c46\u77f3\u6df7\u51dd\u571f\u56de\u586b\u5c42<\/span><span class=\"bd-val\">30 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u5b89\u88c5\u65bd\u5de5\u8d39<\/span><span class=\"bd-val\">24 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u66fc\u745e\u5fb7\u5206\u63a7\uff08\u5206\u5ba4\u6e29\u63a7\uff09<\/span><span class=\"bd-val\">20 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row bd-total\"><span class=\"bd-label\">\u5957\u9910\u603b\u4ef7<\/span><span class=\"bd-val\">119 \u5143\/\u33a1<\/span><\/div>\n        <\/div>\n      <\/div>\n\n      <!-- C: \u8282\u80fd\u4f18\u60e0\u5957\u9910 169\uff08\u4e2d\u5212\u7ebf\u4f18\u60e0\u4ef7\uff09 -->\n      <div class=\"pkg-card selected\" data-pkg=\"green-deal\" onclick=\"selectPkg('green-deal')\">\n        <div class=\"pkg-recommend\">\u2605 \u63a8\u8350<\/div>\n        <div class=\"pkg-header\"><span class=\"pkg-radio\"><\/span><span class=\"pkg-name\">\u8282\u80fd\u4f18\u60e0\u5957\u9910<\/span><\/div>\n        <div class=\"pkg-sub\">\u8282\u80fd\u5b9a\u5236 \u00b7 De16 \u00b7 10\u33a1\/\u56de\u8def \u00b7 \u95f4\u8ddd125mm<\/div>\n        <div class=\"pkg-price\">\n          <span style=\"text-decoration:line-through;color:#aaa;font-size:16px;font-weight:400;\">&gt;179<\/span>\n          &nbsp;169 <small>\u5143\/\u33a1<\/small>\n        <\/div>\n        <div class=\"pkg-detail\">\n          <span class=\"pkg-tag tag-green\">\u8282\u80fd\u63a8\u8350 \u2605 \u70ed\u9500<\/span>\n          <span class=\"free-badge\">\ud83c\udf81 \u514d\u8d39\u5347\u7ea7\u8054\u52a8\u63a7\u5236<\/span>\n          <span class=\"free-badge\">\ud83c\udf81 \u514d\u8d39\u5347\u7ea7\u4f1f\u661f\u4e94\u5c42\u963b\u6c27\u7ba1<\/span><br>\n          DE32+DE20\u4e3b\u7ba1 \u00b7 De16\u76d8\u7ba1 \u00b7 10\u33a1\/\u56de\u8def \u00b7 \u95f4\u8ddd125mm<br>\n          \u8bfa\u5c14\u6324\u5851\u677f 2cm \u00b7 \u66fc\u745e\u5fb7\u5206\u63a7\uff08\u542b\u5206\u5ba4\u6e29\u63a7\uff09<br>\n          \u5b89\u88c5\u65bd\u5de5\u8d39\u5df2\u542b\n        <\/div>\n        <span class=\"breakdown-toggle\" onclick=\"event.stopPropagation();toggleBreakdown('bd-green-deal')\">\ud83d\udccb \u67e5\u770b\u660e\u7ec6\u6784\u6210 \u25bc<\/span>\n        <div class=\"breakdown-detail\" id=\"bd-green-deal\">\n          <div class=\"bd-row\"><span class=\"bd-label\">DE32+DE20 \u4e3b\u7ba1 \u00b7 De16\u76d8\u7ba1\uff0810\u33a1\/\u56de\u8def \u00b7 \u95f4\u8ddd125mm\uff09<\/span><span class=\"bd-val\">45 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u8bfa\u5c14\u6324\u5851\u677f 2cm\uff08\u4fdd\u6e29\u5c42\uff09<\/span><span class=\"bd-val\">15 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u8c46\u77f3\u6df7\u51dd\u571f\u56de\u586b\u5c42<\/span><span class=\"bd-val\">30 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u5b89\u88c5\u65bd\u5de5\u8d39<\/span><span class=\"bd-val\">24 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u8bbe\u8ba1\/\u5b9a\u4f4d\/\u76d1\u7406\/\u4e09\u65b9\u8054\u4fdd<\/span><span class=\"bd-val\">36 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row\"><span class=\"bd-label\">\u66fc\u745e\u5fb7\u5206\u63a7\uff08\u5206\u5ba4\u6e29\u63a7\uff09<\/span><span class=\"bd-val\">20 \u5143\/\u33a1<\/span><\/div>\n          <div class=\"bd-row bd-total\" style=\"border-top:1px dashed #ccc;padding-top:4px;margin-top:2px\">\n            <span class=\"bd-label\">\u539f\u4ef7\u5408\u8ba1 <span style=\"color:#aaa;font-weight:400;\">\uff08\u5355\u9879\u76f8\u52a0\uff09<\/span><\/span>\n            <span class=\"bd-val\" style=\"text-decoration:line-through;color:#aaa;\">170 \u5143\/\u33a1<\/span>\n          <\/div>\n          <div class=\"bd-row bd-total\">\n            <span class=\"bd-label\">\ud83c\udf89 \u4f18\u60e0\u5957\u9910\u4ef7<\/span>\n            <span class=\"bd-val\" style=\"color:#c0392b;font-size:16px;\">169 \u5143\/\u33a1<\/span>\n          <\/div>\n          <div class=\"bd-free\">\ud83c\udf81 \u514d\u8d39\u5347\u7ea7\uff1a\u66fc\u745e\u5fb7\u8054\u52a8\u63a7\u5236\uff08\u4ef7\u503c \u00a5980\uff09+ \u4f1f\u661f\u4e94\u5c42\u963b\u6c27\u7ba1<\/div>\n        <\/div>\n      <\/div>\n\n      <\/div>\n    <\/div>\n\n    <!-- \u53ef\u9009\u5347\u7ea7\uff1a\u4f1f\u661f\u767d\u6676\u677f -->\n    <div style=\"margin-top:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff8e1;border:1px solid #ffe082;border-radius:10px;padding:10px 16px;\">\n      <span style=\"font-size:13px;font-weight:600;color:#f57f17;\">\u2b06\ufe0f \u53ef\u9009\u5347\u7ea7<\/span>\n      <span style=\"font-size:13px;color:#555;\">\u5347\u7ea7\u4f1f\u661f\u767d\u6676\u677f\uff083cm\uff09<\/span>\n      <label class=\"toggle\">\n        <input type=\"checkbox\" id=\"whiteBoardToggle\" onchange=\"recalc()\">\n        <div class=\"slider\"><\/div>\n      <\/label>\n      <span id=\"whiteBoardLabel\" style=\"font-size:13px;color:#555;\">\u672a\u5347\u7ea7 \u00b7 <strong>+15\u5143\/\u33a1<\/strong><\/span>\n    <\/div>\n    <\/div>\n\n    <!-- \u514d\u8d39\u5347\u7ea7\u6a2a\u5e45 -->\n    <div class=\"upgrade-banner\" id=\"upgradeBanner\">\n      <span class=\"upgrade-icon\">\ud83c\udf81<\/span>\n      <span class=\"upgrade-text\">\u672c\u5957\u9910\u514d\u8d39\u5347\u7ea7\u6743\u76ca\uff1a<\/span>\n      <span class=\"upgrade-item\" id=\"upgradeItems\">\u66fc\u745e\u5fb7\u8054\u52a8\u63a7\u5236\uff08\u4ef7\u503c \u00a5980\uff09<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- ===== SECTION 5: \u5176\u4ed6\u5347\u7ea7 ===== -->\n  <div class=\"card\">\n    <div class=\"card-title\">\n      <span class=\"icon\">\u26a1<\/span>\n      \u5176\u4ed6\u5347\u7ea7\u9009\u9879 <span class=\"tag\">\u9009\u914d<\/span>\n    <\/div>\n    <div class=\"form-row\">\n      <div class=\"form-group\">\n        <label>\u662f\u5426\u52a0\u88c5\u4e8c\u6b21\u4fa7\u53d8\u9891\u8054\u52a8\uff1f<span class=\"hint\">\uff08\u8fdb\u4e00\u6b65\u63d0\u5347\u8282\u80fd\u6548\u679c\uff09<\/span><\/label>\n        <div class=\"toggle-wrap\">\n          <label class=\"toggle\">\n            <input type=\"checkbox\" id=\"freqDriveToggle\" onchange=\"recalc()\">\n            <div class=\"slider\"><\/div>\n          <\/label>\n          <span id=\"freqDriveLabel\">\u672a\u9009\u914d \u2014 \u4e8c\u6b21\u4fa7\u53d8\u9891\u8054\u52a8 \u00b7 <strong>\u00a53,000\/\u5957<\/strong><\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- ===== RESULT: \u62a5\u4ef7\u660e\u7ec6 ===== -->\n  <div class=\"card\" style=\"padding-bottom:8px;\">\n    <div class=\"card-title\">\n      <span class=\"icon\">\ud83d\udcb0<\/span>\n      \u62a5\u4ef7\u660e\u7ec6 <span class=\"tag\">\u5b9e\u65f6\u66f4\u65b0<\/span>\n    <\/div>\n    <div style=\"display:flex;flex-direction:column;gap:14px;\">\n      <div>\n        <table class=\"cost-table\" id=\"costTable\">\n          <thead>\n            <tr>\n              <th style=\"width:28%\">\u9879\u76ee<\/th>\n              <th style=\"width:40%\">\u8bf4\u660e<\/th>\n              <th style=\"width:14%;text-align:right\">\u91d1\u989d<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody id=\"costBody\"><!-- JS renders --><\/tbody>\n        <\/table>\n      <\/div>\n      <div style=\"display:flex;justify-content:flex-end;\">\n        <div class=\"summary-panel\" style=\"max-width:340px;width:100%;\">\n          <div>\n            <div style=\"font-size:13px;opacity:.9;\">\u62a5\u4ef7\u5408\u8ba1<\/div>\n            <div class=\"total-big\" id=\"totalDisplay\">\u00a50<\/div>\n          <\/div>\n          <div>\n            <div class=\"summary-line\"><span>\u91c7\u6696\u9762\u79ef<\/span><span id=\"sumArea\">90 \u33a1<\/span><\/div>\n            <div class=\"summary-line\"><span>\u58c1\u6302\u7089<\/span><span id=\"sumBoiler\">\u00a50<\/span><\/div>\n            <div class=\"summary-line\"><span>\u5730\u6696\u7cfb\u7edf<\/span><span id=\"sumFloor\">\u00a50<\/span><\/div>\n            <div class=\"summary-line\"><span>\u70ed\u6c34\u5668<\/span><span id=\"sumWH\">\u00a50<\/span><\/div>\n            <div class=\"summary-line\"><span>\u5176\u4ed6\u5347\u7ea7<\/span><span id=\"sumExtra\">\u00a50<\/span><\/div>\n          <\/div>\n          <div class=\"summary-note\">* \u7cbe\u51c6\u4ef7\u683c\u4ee5\u73b0\u573a\u52d8\u6d4b\u4e3a\u51c6\u3002<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- ===== ACTIONS ===== -->\n  <div class=\"actions\">\n    <button class=\"btn btn-primary\" onclick=\"window.print()\">\ud83d\udda8\ufe0f \u6253\u5370\u62a5\u4ef7\u5355<\/button>\n    <button class=\"btn btn-outline\" onclick=\"copyQuotation()\">\ud83d\udccb \u590d\u5236\u62a5\u4ef7\u6458\u8981<\/button>\n    <button class=\"btn btn-outline\" onclick=\"resetAll()\">\ud83d\udd04 \u91cd\u7f6e\u9009\u9879<\/button>\n    <button class=\"btn btn-primary\" style=\"background:#0f3460;\" onclick=\"confirmScheme()\">\ud83d\udccc \u786e\u8ba4\u52a0\u5165\u5bf9\u6bd4<\/button>\n  <\/div>\n\n  <!-- ===== \u591a\u65b9\u6848\u5bf9\u6bd4\u6c47\u603b ===== -->\n  <div class=\"card\" id=\"comparisonCard\" style=\"display:none;\">\n    <div class=\"card-title\">\n      <span class=\"icon\">\ud83d\udcca<\/span>\n      \u591a\u65b9\u6848\u5bf9\u6bd4\u6c47\u603b <span class=\"tag\">\u5df2\u4fdd\u5b58 <span id=\"schemeCount\">0<\/span> \u4e2a\u65b9\u6848<\/span>\n    <\/div>\n    <div id=\"comparisonContainer\">\n      <div class=\"empty-hint\" style=\"text-align:center;color:#bbb;padding:20px;font-size:14px;\">\n        \u5c1a\u672a\u6dfb\u52a0\u65b9\u6848\uff0c\u8bf7\u5728\u4e0a\u65b9\u914d\u7f6e \u2192 \u70b9\u51fb\u300c\u786e\u8ba4\u52a0\u5165\u5bf9\u6bd4\u300d\n      <\/div>\n    <\/div>\n    <!-- \u5bf9\u6bd4\u7ef4\u5ea6\u77e9\u9635 -->\n    <div id=\"dimensionMatrix\" style=\"display:none;margin-top:16px;\"><\/div>\n  <\/div>\n  <\/div>\n\n  <!-- ===== FOOTER ===== -->\n  <div style=\"text-align:center;font-size:12px;color:#aaa;padding:18px 0 10px;\">\n    \u9f99\u8109\u6696\u901a \u00b7 \u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668 v2.0 &nbsp;|&nbsp; \u6570\u636e\u6765\u6e90\uff1a\n    <a href=\"https:\/\/longmai-nt.com\/?page_id=662\" target=\"_blank\" style=\"color:#aaa;\">\u4ef7\u683c\u6307\u4ee402<\/a>\n  <\/div>\n\n<\/div>\n\n<script>\n  \/* ============================================================\n     STATE\n     ============================================================ *\/\n  const state = {\n    area: 90,\n    boiler: 'hipro',\n    boilerPrices: { bosch: 5800, vissmann: 6800, heidelberg: 5200, hipro: 4666, xiaoka: 7800, bosch3260: 9800, b1jg: 10800 },\n    waterHeater: true,\n    pkg: 'green-deal',\n    whiteBoard: false,\n    freqDrive: false,\n    waterModule: false,\n    prices: {\n      pkgA: 99,\n      pkgB: 119,\n      pkgC: 169,\n      whiteBoard: 15,\n      waterHeater: 3000,\n      freqDrive: 3000,\n      waterModule: 8500\n    }\n  };\n\n  const boilerMeta = {\n    bosch:     { name: '\u535a\u4e16\u8ffd\u5149', spec: '28kW \u00b7 \u5e38\u89c4\u4e24\u7528\u7089' },\n    vissmann:  { name: '\u83f2\u65af\u66fc A1JE', spec: '24kW \u00b7 \u5e38\u89c4\u4e24\u7528\u7089' },\n    heidelberg:{ name: '\u66fc\u745e\u5fb7 Heidelberg', spec: '24kW \u00b7 \u5206\u6bb5\u71c3\u70e7\u4e24\u7528\u7089' },\n    hipro:     { name: '\u66fc\u745e\u5fb7 HI.PRO', spec: '18kW \u00b7 \u53d8\u9891\u5355\u91c7\u6696\u7089 \u2605' },\n    xiaoka:    { name: '\u66fc\u745e\u5fb7\u5c0f\u5361', spec: '24kW \u00b7 \u6570\u5b57\u51b7\u51dd\u7089' },\n    bosch3260: { name: '\u535a\u4e163260', spec: '25kW \u00b7 \u51b7\u51dd\u7089' },\n    b1jg:      { name: '\u83f2\u65af\u66fcB1JG', spec: '25kW \u00b7 \u51b7\u51dd\u7089' }\n  };\n\n  const pkgMeta = {\n    'eco-total':   { label: '\u5e02\u573a\u901a\u914d\u00b7\u66fc\u745e\u5fb7\u603b\u63a7', unitPriceKey: 'pkgA', upgrades: [] },\n    'eco-split':   { label: '\u5e02\u573a\u901a\u914d\u00b7\u66fc\u745e\u5fb7\u5206\u63a7', unitPriceKey: 'pkgB', upgrades: [] },\n    'green-deal':  { label: '\u8282\u80fd\u4f18\u60e0\u5957\u9910', unitPriceKey: 'pkgC', upgrades: ['\u66fc\u745e\u5fb7\u8054\u52a8\u63a7\u5236(\u4ef7\u503c\u00a5980)','\u4f1f\u661f\u4e94\u5c42\u963b\u6c27\u7ba1'] }\n  };\n\n  \/* ============================================================\n     INIT\n     ============================================================ *\/\n  document.addEventListener('DOMContentLoaded', () => { recalc(); });\n\n  \/* ============================================================\n     UI HANDLERS\n     ============================================================ *\/\n  function onAreaChange(val) {\n    state.area = parseInt(val);\n    document.getElementById('areaDisplay').innerHTML = val + '<small>\u33a1<\/small>';\n    document.getElementById('headerArea').textContent = val;\n    recalc();\n  }\n\n  function onBoilerChange(val) {\n    state.boiler = val;\n    document.getElementById('boilerPriceInput').value = state.boilerPrices[val];\n    recalc();\n  }\n\n  function onBoilerPriceChange(val) {\n    const v = parseFloat(val) || 0;\n    state.boilerPrices[state.boiler] = v;\n    const sel = document.getElementById('boilerSelect');\n    const optTexts = {\n      hipro: '\u2605 \u63a8\u8350 \u2014 \u66fc\u745e\u5fb7 HI.PRO 18kW \u53d8\u9891\u5355\u91c7\u6696\u7089 \u00a5',\n      heidelberg: '\u66fc\u745e\u5fb7 Heidelberg 24kW \u5206\u6bb5\u71c3\u70e7\u4e24\u7528\u7089 \u00a5',\n      xiaoka: '\u66fc\u745e\u5fb7\u5c0f\u5361\u6570\u5b57\u51b7\u51dd\u7089 24kW \u00a5',\n      vissmann: '\u83f2\u65af\u66fc A1JE 24kW \u5e38\u89c4\u4e24\u7528\u7089 \u00a5',\n      bosch3260: '\u535a\u4e163260\u51b7\u51dd\u7089 25kW \u00a5',\n      bosch: '\u535a\u4e16\u8ffd\u5149 28kW \u5e38\u89c4\u4e24\u7528\u7089 \u00a5',\n      b1jg: '\u83f2\u65af\u66fcB1JG\u51b7\u51dd\u7089 25kW \u00a5'\n    };\n    sel.options[sel.selectedIndex].text = optTexts[state.boiler] + numberFormat(v);\n    recalc();\n  }\n\n  function selectPkg(key) {\n    state.pkg = key;\n    document.querySelectorAll('.pkg-card').forEach(el => {\n      el.classList.toggle('selected', el.dataset.pkg === key);\n    });\n    updateUpgradeBanner(key);\n    recalc();\n  }\n\n  function updateUpgradeBanner(key) {\n    const meta = pkgMeta[key];\n    const banner = document.getElementById('upgradeBanner');\n    const items = document.getElementById('upgradeItems');\n    if (!meta || meta.upgrades.length === 0) {\n      banner.style.display = 'none';\n      return;\n    }\n    banner.style.display = 'flex';\n    items.innerHTML = meta.upgrades.map(u => '\ud83c\udf81 ' + u).join(' &nbsp;|&nbsp; ');\n  }\n\n  function onWaterHeaterToggle() {\n    state.waterHeater = document.getElementById('waterHeaterToggle').checked;\n    const label = document.getElementById('whLabel');\n    if (state.waterHeater) {\n      label.innerHTML = '\u5df2\u9009\u914d \u2014 \u66fc\u745e\u5fb7\/\u745e\u7f8e 13L\u6052\u6e29 \u00b7 <strong>\u00a5' + numberFormat(state.prices.waterHeater) + '<\/strong>';\n    } else {\n      label.innerHTML = '\u672a\u9009\u914d \u2014 \u53ef\u540e\u671f\u52a0\u88c5';\n    }\n    recalc();\n  }\n\n  document.getElementById('freqDriveToggle').addEventListener('change', function() {\n    state.freqDrive = this.checked;\n    const label = document.getElementById('freqDriveLabel');\n    if (this.checked) {\n      label.innerHTML = '\u5df2\u9009\u914d \u2014 \u4e8c\u6b21\u4fa7\u53d8\u9891\u8054\u52a8 \u00b7 <strong>\u00a5' + numberFormat(state.prices.freqDrive) + '<\/strong>';\n    } else {\n      label.innerHTML = '\u672a\u9009\u914d \u2014 \u4e8c\u6b21\u4fa7\u53d8\u9891\u8054\u52a8 \u00b7 <strong>\u00a5' + numberFormat(state.prices.freqDrive) + '\/\u5957<\/strong>';\n    }\n    recalc();\n  });\n\n  document.getElementById('whiteBoardToggle').addEventListener('change', function() {\n    state.whiteBoard = this.checked;\n    const label = document.getElementById('whiteBoardLabel');\n    if (this.checked) {\n      label.innerHTML = '\u5df2\u5347\u7ea7 \u00b7 <strong>+\u00a5' + numberFormat(state.prices.whiteBoard) + '\/\u33a1<\/strong>';\n    } else {\n      label.innerHTML = '\u672a\u5347\u7ea7 \u00b7 <strong>+\u00a5' + numberFormat(state.prices.whiteBoard) + '\/\u33a1<\/strong>';\n    }\n    recalc();\n  });\n\n  document.getElementById('waterModuleToggle').addEventListener('change', function() {\n    state.waterModule = this.checked;\n    const label = document.getElementById('waterModuleLabel');\n    if (this.checked) {\n      label.innerHTML = '\u5df2\u9009\u914d \u2014 \u5168\u6548\u6c34\u6a21\u5757 \u00b7 <strong>\u00a5' + numberFormat(state.prices.waterModule) + '<\/strong>';\n    } else {\n      label.innerHTML = '\u672a\u9009\u914d \u2014 \u5168\u6548\u6c34\u6a21\u5757 \u00b7 <strong>\u00a5' + numberFormat(state.prices.waterModule) + '\/\u5957<\/strong>';\n    }\n    recalc();\n  });\n\n  function toggleBreakdown(id) {\n    const el = document.getElementById(id);\n    el.classList.toggle('open');\n  }\n\n  \/* ============================================================\n     ADMIN MODE\n     ============================================================ *\/\n  function toggleAdmin() {\n    const panel = document.getElementById('adminPanel');\n    panel.classList.toggle('visible');\n    syncAdminFields();\n  }\n\n  function syncAdminFields() {\n    document.getElementById('adminArea').value = state.area;\n    document.getElementById('adminPkgA').value = state.prices.pkgA;\n    document.getElementById('adminPkgB').value = state.prices.pkgB;\n    document.getElementById('adminPkgC').value = state.prices.pkgC;\n    document.getElementById('adminWhiteBoard').value = state.prices.whiteBoard;\n    document.getElementById('adminWaterHeater').value = state.prices.waterHeater;\n    document.getElementById('adminFreqDrive').value = state.prices.freqDrive;\n    document.getElementById('adminWaterModule').value = state.prices.waterModule;\n  }\n\n  function syncFromAdmin() {\n    state.area = parseInt(document.getElementById('adminArea').value) || 90;\n    state.prices.pkgA = parseFloat(document.getElementById('adminPkgA').value) || 99;\n    state.prices.pkgB = parseFloat(document.getElementById('adminPkgB').value) || 119;\n    state.prices.pkgC = parseFloat(document.getElementById('adminPkgC').value) || 169;\n    state.prices.whiteBoard = parseFloat(document.getElementById('adminWhiteBoard').value) || 15;\n    state.prices.waterHeater = parseFloat(document.getElementById('adminWaterHeater').value) || 3000;\n    state.prices.freqDrive = parseFloat(document.getElementById('adminFreqDrive').value) || 3000;\n    state.prices.waterModule = parseFloat(document.getElementById('adminWaterModule').value) || 8500;\n\n    \/\/ sync UI\n    onAreaChange(state.area);\n    document.getElementById('pkgPriceA').innerHTML = state.prices.pkgA + ' <small>\u5143\/\u33a1<\/small>';\n    document.getElementById('pkgPriceB').innerHTML = state.prices.pkgB + ' <small>\u5143\/\u33a1<\/small>';\n\n    const whOn = state.waterHeater;\n    document.getElementById('whLabel').innerHTML = whOn\n      ? '\u5df2\u9009\u914d \u2014 \u66fc\u745e\u5fb7\/\u745e\u7f8e 13L\u6052\u6e29 \u00b7 <strong>\u00a5' + numberFormat(state.prices.waterHeater) + '<\/strong>'\n      : '\u672a\u9009\u914d \u2014 \u53ef\u540e\u671f\u52a0\u88c5';\n\n    recalc();\n  }\n\n  \/* ============================================================\n     CALC\n     ============================================================ *\/\n  function recalc() {\n    const a = state.area;\n    const pkgKey = state.pkg;\n    const pkgInfo = pkgMeta[pkgKey];\n    const unitPrice = state.prices[pkgInfo.unitPriceKey];\n    const floorTotal = a * unitPrice;\n    const boilerPrice = state.boilerPrices[state.boiler] || 0;\n    const whCost = state.waterHeater ? state.prices.waterHeater : 0;\n    const freqCost = state.freqDrive ? state.prices.freqDrive : 0;\n    const wbCost = state.whiteBoard ? a * state.prices.whiteBoard : 0;\n    const wmCost = state.waterModule ? state.prices.waterModule : 0;\n    const grandTotal = boilerPrice + floorTotal + whCost + freqCost + wbCost + wmCost;\n\n    \/\/ ---- Render table ----\n    const bMeta = boilerMeta[state.boiler];\n    const rows = [\n      { label: '\u58c1\u6302\u7089\uff08\u4e3b\u673a\uff09', detail: bMeta.name + ' \u00b7 ' + bMeta.spec, price: boilerPrice },\n      { label: '\u5730\u6696\u7cfb\u7edf\u5957\u9910', detail: pkgInfo.label + ' \u00b7 ' + unitPrice + '\u5143\/\u33a1 \u00d7 ' + a + '\u33a1', price: floorTotal },\n    ];\n    if (state.waterHeater) {\n      rows.push({ label: '\u72ec\u7acb\u70ed\u6c34\u5668', detail: '\u66fc\u745e\u5fb7\/\u745e\u7f8e 13L\u6052\u6e29', price: whCost });\n    }\n    if (state.whiteBoard) {\n      rows.push({ label: '\u5347\u7ea7\u4f1f\u661f\u767d\u6676\u677f', detail: '\u8bfa\u5c14\u6324\u5851\u677f\u2192\u4f1f\u661f\u767d\u6676\u677f 3cm \u00b7 +' + state.prices.whiteBoard + '\u5143\/\u33a1 \u00d7 ' + a + '\u33a1', price: wbCost });\n    }\n    if (state.freqDrive) {\n      rows.push({ label: '\u4e8c\u6b21\u4fa7\u53d8\u9891\u8054\u52a8', detail: '\u5168\u7cfb\u7edf\u8282\u80fd\u5347\u7ea7', price: freqCost });\n    }\n    if (state.waterModule) {\n      rows.push({ label: '\u5168\u6548\u6c34\u6a21\u5757', detail: '\u63d0\u5347\u70ed\u6c34\u4f53\u9a8c\u4e0e\u7cfb\u7edf\u6548\u7387', price: wmCost });\n    }\n\n    let html = '';\n    rows.forEach(r => {\n      html += '<tr><td class=\"item-label\">' + r.label + '<\/td><td class=\"item-detail\">' + r.detail + '<\/td><td class=\"item-amount\">\u00a5' + numberFormat(r.price) + '<\/td><\/tr>';\n    });\n    \/\/ free upgrades row\n    const upgrades = pkgInfo.upgrades;\n    if (upgrades.length > 0) {\n      html += '<tr class=\"free-row\"><td class=\"item-label\">\ud83c\udf81 \u514d\u8d39\u5347\u7ea7<\/td><td class=\"item-detail\">' + upgrades.join(' + ') + '<\/td><td class=\"item-amount\">\u00a50<\/td><\/tr>';\n    }\n    \/\/ total row\n    html += '<tr class=\"total-row\"><td class=\"item-label\">\u62a5\u4ef7\u5408\u8ba1\uff08\u7ea6\uff09<\/td><td class=\"item-detail\"><\/td><td class=\"item-amount\">\u00a5' + numberFormat(grandTotal) + '<\/td><\/tr>';\n    document.getElementById('costBody').innerHTML = html;\n\n    \/\/ ---- Summary ----\n    document.getElementById('totalDisplay').innerHTML = '\u00a5' + numberFormat(grandTotal);\n    document.getElementById('sumArea').textContent = a + ' \u33a1';\n    document.getElementById('sumBoiler').innerHTML = '\u00a5' + numberFormat(boilerPrice);\n    document.getElementById('sumFloor').innerHTML = '\u00a5' + numberFormat(floorTotal);\n    document.getElementById('sumWH').innerHTML = '\u00a5' + numberFormat(whCost);\n    document.getElementById('sumExtra').innerHTML = '\u00a5' + numberFormat(wbCost + freqCost + wmCost);\n    document.getElementById('headerArea').textContent = a;\n  }\n\n  \/* ============================================================\n     UTILITIES\n     ============================================================ *\/\n  function numberFormat(n) { return n.toLocaleString('zh-CN'); }\n\n  function copyQuotation() {\n    const a = state.area;\n    const bMeta = boilerMeta[state.boiler];\n    const pkgInfo = pkgMeta[state.pkg];\n    const unitPrice = state.prices[pkgInfo.unitPriceKey];\n    const boilerPrice = state.boilerPrices[state.boiler];\n    const whCost = state.waterHeater ? state.prices.waterHeater : 0;\n    const wbCost = state.whiteBoard ? a * state.prices.whiteBoard : 0;\n    const freqCost = state.freqDrive ? state.prices.freqDrive : 0;\n    const wmCost = state.waterModule ? state.prices.waterModule : 0;\n    const grandTotal = boilerPrice + (a * unitPrice) + whCost + wbCost + freqCost + wmCost;\n\n    const lines = [\n      '===== \u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u5355 =====',\n      '\u9f99\u8109\u6696\u901a',\n      '',\n      '\u91c7\u6696\u9762\u79ef\uff1a' + a + ' \u33a1',\n      '\u58c1\u6302\u7089\uff1a' + bMeta.name + ' \u2014 \u00a5' + numberFormat(boilerPrice),\n      '\u5730\u6696\u5957\u9910\uff1a' + pkgInfo.label + ' \u00a5' + unitPrice + '\/\u33a1 \u00d7 ' + a + '\u33a1 = \u00a5' + numberFormat(a * unitPrice),\n    ];\n    if (state.whiteBoard) lines.push('\u5347\u7ea7\u4f1f\u661f\u767d\u6676\u677f\uff1a+\u00a5' + numberFormat(state.prices.whiteBoard) + '\/\u33a1 \u00d7 ' + a + '\u33a1 = \u00a5' + numberFormat(wbCost));\n    if (state.waterHeater) lines.push('\u72ec\u7acb\u70ed\u6c34\u5668\uff1a\u00a5' + numberFormat(whCost));\n    if (state.freqDrive) lines.push('\u4e8c\u6b21\u4fa7\u53d8\u9891\u8054\u52a8\uff1a\u00a5' + numberFormat(freqCost));\n    if (state.waterModule) lines.push('\u5168\u6548\u6c34\u6a21\u5757\uff1a\u00a5' + numberFormat(wmCost));\n    if (pkgInfo.upgrades.length > 0) lines.push('\ud83c\udf81 \u514d\u8d39\u5347\u7ea7\uff1a' + pkgInfo.upgrades.join(' + '));\n    lines.push('');\n    lines.push('\u62a5\u4ef7\u5408\u8ba1\uff1a\u00a5' + numberFormat(grandTotal));\n    lines.push('');\n    lines.push('* \u4ee5\u4e0a\u4e3a\u65b9\u6848\u6846\u67b6\u62a5\u4ef7\uff0c\u7cbe\u51c6\u4ef7\u683c\u4ee5\u73b0\u573a\u52d8\u6d4b\u4e3a\u51c6\u3002');\n    lines.push('========================');\n\n    const text = lines.join('\\n');\n    navigator.clipboard.writeText(text).then(() => {\n      alert('\u2705 \u62a5\u4ef7\u6458\u8981\u5df2\u590d\u5236\u5230\u526a\u8d34\u677f\uff01');\n    }).catch(() => {\n      const ta = document.createElement('textarea');\n      ta.value = text;\n      document.body.appendChild(ta);\n      ta.select();\n      document.execCommand('copy');\n      ta.remove();\n      alert('\u2705 \u62a5\u4ef7\u6458\u8981\u5df2\u590d\u5236\u5230\u526a\u8d34\u677f\uff01');\n    });\n  }\n\n  function resetAll() {\n    state.area = 90;\n    state.boiler = 'hipro';\n    state.boilerPrices = { bosch: 5800, vissmann: 6800, heidelberg: 5200, hipro: 4666, xiaoka: 7800, bosch3260: 9800, b1jg: 10800 };\n    state.waterHeater = true;\n    state.pkg = 'green-deal';\n    state.whiteBoard = false;\n    state.freqDrive = false;\n    state.waterModule = false;\n    state.prices = { pkgA: 99, pkgB: 119, pkgC: 169, whiteBoard: 15, waterHeater: 3000, freqDrive: 3000, waterModule: 8500 };\n\n    \/\/ UI sync\n    document.getElementById('areaSlider').value = 90;\n    document.getElementById('areaDisplay').innerHTML = '90<small>\u33a1<\/small>';\n    document.getElementById('headerArea').textContent = '90';\n\n    document.getElementById('boilerSelect').value = 'hipro';\n    document.getElementById('boilerPriceInput').value = 4666;\n    const sel = document.getElementById('boilerSelect');\n    sel.options[sel.selectedIndex].text = '\u2605 \u63a8\u8350 \u2014 \u66fc\u745e\u5fb7 HI.PRO 18kW \u53d8\u9891\u5355\u91c7\u6696\u7089 \u00a54,666';\n\n    document.getElementById('waterHeaterToggle').checked = true;\n    document.getElementById('whLabel').innerHTML = '\u5df2\u9009\u914d \u2014 \u66fc\u745e\u5fb7\/\u745e\u7f8e 13L\u6052\u6e29 \u00b7 <strong>\u00a53,000<\/strong>';\n\n    document.getElementById('freqDriveToggle').checked = false;\n    document.getElementById('freqDriveLabel').innerHTML = '\u672a\u9009\u914d \u2014 \u4e8c\u6b21\u4fa7\u53d8\u9891\u8054\u52a8 \u00b7 <strong>\u00a53,000\/\u5957<\/strong>';\n\n    document.getElementById('waterModuleToggle').checked = false;\n    document.getElementById('waterModuleLabel').innerHTML = '\u672a\u9009\u914d \u2014 \u5168\u6548\u6c34\u6a21\u5757 \u00b7 <strong>\u00a58,500\/\u5957<\/strong>';\n\n    document.getElementById('whiteBoardToggle').checked = false;\n    document.getElementById('whiteBoardLabel').innerHTML = '\u672a\u5347\u7ea7 \u00b7 <strong>+15\u5143\/\u33a1<\/strong>';\n\n    document.querySelectorAll('.pkg-card').forEach(el => {\n      el.classList.toggle('selected', el.dataset.pkg === 'green-deal');\n    });\n    ['pkgPriceA','pkgPriceB'].forEach((id,i)=>{\n      const vals = [99,119];\n      const labels = ['<small>\u5143\/\u33a1<\/small>','<small>\u5143\/\u33a1<\/small>'];\n      document.getElementById(id).innerHTML = vals[i] + ' ' + labels[i];\n    });\n\n    updateUpgradeBanner('green-deal');\n    recalc();\n  }\n\n  \/* ============================================================\n     MULTI-SCHEME COMPARISON\n     ============================================================ *\/\n  const savedSchemes = [];\n\n  function getCurrentSchemeData() {\n    const a = state.area;\n    const pkgKey = state.pkg;\n    const pkgInfo = pkgMeta[pkgKey];\n    const unitPrice = state.prices[pkgInfo.unitPriceKey];\n    const bMeta = boilerMeta[state.boiler];\n    const boilerPrice = state.boilerPrices[state.boiler] || 0;\n    const whCost = state.waterHeater ? state.prices.waterHeater : 0;\n    const wbCost = state.whiteBoard ? a * state.prices.whiteBoard : 0;\n    const freqCost = state.freqDrive ? state.prices.freqDrive : 0;\n    const wmCost = state.waterModule ? state.prices.waterModule : 0;\n    const floorTotal = a * unitPrice;\n    const grandTotal = boilerPrice + floorTotal + whCost + wbCost + freqCost + wmCost;\n    const upgrades = pkgInfo.upgrades;\n\n    return {\n      area: a,\n      boiler: bMeta.name + ' \u00b7 ' + bMeta.spec,\n      boilerPrice,\n      pkg: pkgInfo.label,\n      unitPrice,\n      floorTotal,\n      waterHeater: state.waterHeater,\n      whCost,\n      whiteBoard: state.whiteBoard,\n      wbCost,\n      freqDrive: state.freqDrive,\n      freqCost,\n      waterModule: state.waterModule,\n      wmCost,\n      grandTotal,\n      upgrades\n    };\n  }\n\n  function confirmScheme() {\n    const d = getCurrentSchemeData();\n    if (d.grandTotal <= 0) { alert('\u8bf7\u5148\u5b8c\u6210\u65b9\u6848\u914d\u7f6e'); return; }\n    const idx = savedSchemes.length;\n    savedSchemes.push({ ...d, time: new Date().toLocaleTimeString() });\n    renderComparison();\n  }\n\n  function removeScheme(idx) {\n    savedSchemes.splice(idx, 1);\n    renderComparison();\n  }\n\n  function renderComparison() {\n    const card = document.getElementById('comparisonCard');\n    const container = document.getElementById('comparisonContainer');\n    const count = document.getElementById('schemeCount');\n    const matrixDiv = document.getElementById('dimensionMatrix');\n\n    if (savedSchemes.length === 0) {\n      card.style.display = 'none';\n      return;\n    }\n\n    card.style.display = 'block';\n    count.textContent = savedSchemes.length;\n\n    \/\/ --- Scheme detail blocks ---\n    let html = '';\n    savedSchemes.forEach((d, idx) => {\n      const schemeName = '\u65b9\u6848' + toChineseNum(idx + 1);\n      let rows = '';\n      rows += `<tr><td class=\"td-lbl\">\u65b9\u6848\u540d\u79f0<\/td><td class=\"td-val\" colspan=\"2\">${schemeName}<\/td><\/tr>`;\n      rows += `<tr><td class=\"td-lbl\">\u91c7\u6696\u9762\u79ef<\/td><td class=\"td-val\" colspan=\"2\">${d.area} \u33a1<\/td><\/tr>`;\n      rows += `<tr><td class=\"td-lbl\">\u70ed\u6e90<\/td><td class=\"td-val\">${d.boiler}<\/td><td class=\"td-pri\">\u00a5${numberFormat(d.boilerPrice)}<\/td><\/tr>`;\n      if (d.waterModule) {\n        rows += `<tr><td class=\"td-lbl\">\u5168\u6548\u6c34\u6a21\u5757<\/td><td class=\"td-val\">\u5df2\u9009\u914d<\/td><td class=\"td-pri\">\u00a5${numberFormat(d.wmCost)}<\/td><\/tr>`;\n      }\n      rows += `<tr><td class=\"td-lbl\">\u5730\u6696\u5957\u9910<\/td><td class=\"td-val\">${d.pkg} \u00b7 ${d.unitPrice}\u5143\/\u33a1<\/td><td class=\"td-pri\">\u00a5${numberFormat(d.floorTotal)}<\/td><\/tr>`;\n      if (d.waterHeater) {\n        rows += `<tr><td class=\"td-lbl\">\u72ec\u7acb\u70ed\u6c34\u5668<\/td><td class=\"td-val\">\u66fc\u745e\u5fb7\/\u745e\u7f8e 13L\u6052\u6e29<\/td><td class=\"td-pri\">\u00a5${numberFormat(d.whCost)}<\/td><\/tr>`;\n      }\n      if (d.whiteBoard) {\n        rows += `<tr><td class=\"td-lbl\">\u5347\u7ea7\u767d\u6676\u677f<\/td><td class=\"td-val\">+${state.prices.whiteBoard}\u5143\/\u33a1 \u00d7 ${d.area}\u33a1<\/td><td class=\"td-pri\">\u00a5${numberFormat(d.wbCost)}<\/td><\/tr>`;\n      }\n      if (d.freqDrive) {\n        rows += `<tr><td class=\"td-lbl\">\u4e8c\u6b21\u4fa7\u53d8\u9891<\/td><td class=\"td-val\">\u5df2\u9009\u914d<\/td><td class=\"td-pri\">\u00a5${numberFormat(d.freqCost)}<\/td><\/tr>`;\n      }\n      if (d.upgrades && d.upgrades.length > 0) {\n        rows += `<tr class=\"sb-free\"><td class=\"td-lbl\">\ud83c\udf81 \u514d\u8d39\u5347\u7ea7<\/td><td class=\"td-val\" colspan=\"2\">${d.upgrades.join(' + ')}<\/td><\/tr>`;\n      }\n      rows += `<tr class=\"sb-total\"><td class=\"td-lbl\">\u5c0f\u8ba1<\/td><td class=\"td-val\"><\/td><td class=\"td-pri\">\u00a5${numberFormat(d.grandTotal)}<\/td><\/tr>`;\n\n      \/\/ Dimension scores\n      const dims = calcDimensions(d);\n      rows += `<tr><td class=\"td-lbl\" style=\"padding-top:8px;font-weight:600;color:#0f3460;\">\u5bf9\u6bd4\u8bc4\u4f30<\/td><td class=\"td-val\" colspan=\"2\" style=\"padding-top:8px;\">\n        <span style=\"display:inline-block;margin-right:8px;font-size:12px;\">\u5730\u6696\u8212\u9002 ${renderStars(dims.floorComfort)}<\/span>\n        <span style=\"display:inline-block;margin-right:8px;font-size:12px;\">\u70ed\u6c34\u8212\u9002 ${renderStars(dims.waterComfort)}<\/span>\n        <span style=\"display:inline-block;margin-right:8px;font-size:12px;\">\u7a33\u5b9a ${renderStars(dims.stability)}<\/span>\n        <span style=\"display:inline-block;font-size:12px;\">\u8282\u80fd ${renderStars(dims.energy)}<\/span>\n      <\/td><\/tr>`;\n\n      html += `<div class=\"scheme-block\">\n        <div class=\"sb-header\">\n          <span class=\"sb-title\">${schemeName}<\/span>\n          <button class=\"sb-remove\" onclick=\"removeScheme(${idx})\">\ud83d\uddd1 \u79fb\u9664<\/button>\n        <\/div>\n        <table class=\"sb-table\">${rows}<\/table>\n      <\/div>`;\n    });\n\n    container.innerHTML = html;\n\n    \/\/ --- Dimension comparison matrix ---\n    if (savedSchemes.length > 1) {\n      let mHtml = '<div style=\"background:#f0f5ff;border-radius:10px;padding:16px 18px;border:1px solid #d0dff0;\">';\n      mHtml += '<div style=\"font-size:14px;font-weight:700;color:#0f3460;margin-bottom:12px;\">\ud83d\udcca \u65b9\u6848\u7efc\u5408\u5bf9\u6bd4\u8bc4\u4f30<\/div>';\n      mHtml += '<table style=\"width:100%;border-collapse:collapse;font-size:13px;\">';\n      mHtml += '<tr><th style=\"text-align:left;padding:6px 10px;border-bottom:2px solid #d0dff0;color:#555;font-weight:600;\">\u7ef4\u5ea6<\/th>';\n      savedSchemes.forEach((d, idx) => {\n        mHtml += `<th style=\"text-align:center;padding:6px 10px;border-bottom:2px solid #d0dff0;color:#0f3460;font-weight:600;\">\u65b9\u6848${toChineseNum(idx+1)}<\/th>`;\n      });\n      mHtml += '<\/tr>';\n\n      const dimLabels = [\n        { key: 'floorComfort', label: '\ud83d\udfe2 \u5730\u6696\u8212\u9002', desc: '\u5347\u6e29\u5747\u5300\u3001\u56de\u8def\u8bbe\u8ba1\u3001\u63a7\u6e29\u65b9\u5f0f' },\n        { key: 'waterComfort', label: '\ud83d\udd35 \u70ed\u6c34\u8212\u9002', desc: '\u70ed\u6c34\u7a33\u5b9a\u6027\u3001\u4e24\u7528\u7089vs\u5206\u79bb\u65b9\u6848' },\n        { key: 'stability', label: '\ud83d\udee1\ufe0f \u7a33\u5b9a\u6027', desc: '\u7cfb\u7edf\u53ef\u9760\u3001\u542f\u505c\u9891\u7387\u3001\u7ed3\u6784\u590d\u6742\u5ea6' },\n        { key: 'energy', label: '\ud83d\udfe1 \u8282\u80fd\u6027', desc: '\u8fd0\u884c\u8d39\u7528\u3001\u80fd\u6548\u7b49\u7ea7\u3001\u53d8\u9891\u8c03\u8282' }\n      ];\n\n      dimLabels.forEach(dim => {\n        mHtml += `<tr><td style=\"padding:8px 10px;border-bottom:1px solid #e8eef8;\">\n          <span style=\"font-weight:600;\">${dim.label}<\/span><br><span style=\"font-size:11px;color:#888;\">${dim.desc}<\/span>\n        <\/td>`;\n        savedSchemes.forEach(d => {\n          const score = calcDimensions(d)[dim.key];\n          mHtml += `<td style=\"text-align:center;padding:8px 10px;border-bottom:1px solid #e8eef8;\">\n            <span style=\"font-size:14px;font-weight:700;color:${score >= 4 ? '#2e7d32' : score >= 3 ? '#e65100' : '#c62828'};\">${renderStars(score)}<\/span>\n          <\/td>`;\n        });\n        mHtml += '<\/tr>';\n      });\n\n      \/\/ Cost comparison row\n      mHtml += `<tr><td style=\"padding:8px 10px;border-bottom:none;font-weight:600;color:#333;\">\n        \ud83d\udcb0 \u53c2\u8003\u603b\u4ef7\n      <\/td>`;\n      savedSchemes.forEach(d => {\n        mHtml += `<td style=\"text-align:center;padding:8px 10px;border-bottom:none;\">\n          <span style=\"font-size:15px;font-weight:700;color:#c0392b;\">\u00a5${numberFormat(d.grandTotal)}<\/span>\n        <\/td>`;\n      });\n      mHtml += '<\/tr>';\n\n      mHtml += '<\/table><\/div>';\n      matrixDiv.innerHTML = mHtml;\n      matrixDiv.style.display = 'block';\n    } else {\n      matrixDiv.style.display = 'none';\n    }\n  }\n\n  function calcDimensions(d) {\n    const pkg = d.pkg;\n    let floorComfort = 2, waterComfort = 2, stability = 2, energy = 2;\n\n    \/\/ --- \u5730\u6696\u8212\u9002 ---\n    if (pkg.includes('\u603b\u63a7')) {\n      floorComfort = 2; \/\/ \u603b\u63a7\u65e0\u5206\u5ba4\u6e29\u63a7\n    } else if (pkg.includes('\u5206\u63a7')) {\n      floorComfort = 3; \/\/ \u5206\u5ba4\u6e29\u63a7\uff0c\u5404\u623f\u95f4\u53ef\u72ec\u7acb\u8c03\u6e29\n    } else if (pkg.includes('\u8282\u80fd')) {\n      floorComfort = 5; \/\/ \u8054\u52a8\u63a7\u5236+\u7cbe\u51c6\u8c03\u8282\uff0c10\u33a1\/\u56de\u8def\u66f4\u5bc6\u66f4\u5747\u5300\n    }\n\n    \/\/ --- \u70ed\u6c34\u8212\u9002 ---\n    \/\/ \u4e24\u7528\u7089 vs \u5355\u91c7\u6696\u5206\u79bb\u65b9\u6848\n    const boilerKey = d.boiler || '';\n    const isSingleHeat = boilerKey.includes('HI.PRO') || boilerKey.includes('\u5355\u91c7\u6696');\n    const isCondensing = boilerKey.includes('\u51b7\u51dd');\n    if (d.waterHeater) {\n      waterComfort = 5; \/\/ \u72ec\u7acb\u70ed\u6c34\u5668\uff0c\u70ed\u6c34\u4e0d\u88ab\u6253\u6270\n    } else if (d.waterModule) {\n      waterComfort = 4; \/\/ \u6c34\u6a21\u5757\u8f85\u52a9\uff0c\u70ed\u6c34\u4f53\u9a8c\u63d0\u5347\n    } else if (boilerKey.includes('Heidelberg') || boilerKey.includes('\u5206\u6bb5\u71c3\u70e7')) {\n      waterComfort = 3; \/\/ \u5206\u6bb5\u71c3\u70e7\uff0c\u590f\u5b63\u6d17\u6fa1\u4e0d\u70eb\n    } else {\n      waterComfort = 2; \/\/ \u5e38\u89c4\u4e24\u7528\u7089\uff0c\u70ed\u6c34\u4e0e\u91c7\u6696\u51b2\u7a81\n    }\n\n    \/\/ --- \u7a33\u5b9a\u6027 ---\n    if (pkg.includes('\u8282\u80fd')) {\n      stability = 4; \/\/ \u8054\u52a8\u63a7\u5236\uff0c\u6309\u9700\u542f\u505c\n    } else if (pkg.includes('\u5206\u63a7')) {\n      stability = 3;\n    } else {\n      stability = 2; \/\/ \u603b\u63a7\uff0c\u542f\u505c\u8f83\u9891\u7e41\n    }\n    if (d.freqDrive) stability += 1;\n\n    \/\/ --- \u8282\u80fd\u6027 ---\n    if (pkg.includes('\u8282\u80fd')) {\n      energy = 5; \/\/ \u8054\u52a8+\u591a\u56de\u8def+\u963b\u6c27\u7ba1\uff0c\u7efc\u5408\u8282\u80fd30%\n    } else if (pkg.includes('\u5206\u63a7')) {\n      energy = 3;\n    } else {\n      energy = 2;\n    }\n    if (isCondensing) energy += 1;\n    if (d.freqDrive) energy += 1;\n    if (d.whiteBoard) energy += 0.5;\n\n    return {\n      floorComfort: Math.min(Math.round(floorComfort), 5),\n      waterComfort: Math.min(Math.round(waterComfort), 5),\n      stability: Math.min(Math.round(stability), 5),\n      energy: Math.min(Math.round(energy), 5)\n    };\n  }\n\n  function renderStars(score) {\n    const full = '\u2605', empty = '\u2606';\n    return full.repeat(score) + empty.repeat(5 - score);\n  }\n\n  function toChineseNum(n) {\n    const cn = ['\u96f6','\u4e00','\u4e8c','\u4e09','\u56db','\u4e94','\u516d','\u4e03','\u516b','\u4e5d','\u5341'];\n    if (n <= 10) return cn[n];\n    return String(n);\n  }\n<\/script>\n\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668 | \u9f99\u8109\u6696\u901a \ud83d\udd25 \u5730 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-4556","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\u2014\u2014\u81ea\u52a8\u5bf9\u6bd4\u5206\u6790 - \u9f99\u8109\u6696\u901a<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/longmai-nt.com\/?page_id=4556\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\u2014\u2014\u81ea\u52a8\u5bf9\u6bd4\u5206\u6790 - \u9f99\u8109\u6696\u901a\" \/>\n<meta property=\"og:description\" content=\"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668 | \u9f99\u8109\u6696\u901a \ud83d\udd25 \u5730 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/longmai-nt.com\/?page_id=4556\" \/>\n<meta property=\"og:site_name\" content=\"\u9f99\u8109\u6696\u901a\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-27T08:13:40+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/longmai-nt.com\\\/?page_id=4556\",\"url\":\"https:\\\/\\\/longmai-nt.com\\\/?page_id=4556\",\"name\":\"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\u2014\u2014\u81ea\u52a8\u5bf9\u6bd4\u5206\u6790 - \u9f99\u8109\u6696\u901a\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/longmai-nt.com\\\/#website\"},\"datePublished\":\"2026-06-25T15:27:06+00:00\",\"dateModified\":\"2026-06-27T08:13:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/longmai-nt.com\\\/?page_id=4556#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/longmai-nt.com\\\/?page_id=4556\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/longmai-nt.com\\\/?page_id=4556#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\\\/\\\/longmai-nt.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\u2014\u2014\u81ea\u52a8\u5bf9\u6bd4\u5206\u6790\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/longmai-nt.com\\\/#website\",\"url\":\"https:\\\/\\\/longmai-nt.com\\\/\",\"name\":\"\u9f99\u8109\u6696\u901a\",\"description\":\"\u4e13\u6ce8\u8212\u9002\u8282\u80fd\u8bbe\u8ba1\",\"publisher\":{\"@id\":\"https:\\\/\\\/longmai-nt.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/longmai-nt.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/longmai-nt.com\\\/#organization\",\"name\":\"\u6210\u90fd\u5e02\u9f99\u8109\u6696\u901a\u8bbe\u5907\u6709\u9650\u516c\u53f8\",\"alternateName\":\"\u9f99\u8109\u6696\u901a\",\"url\":\"https:\\\/\\\/longmai-nt.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\\\/\\\/longmai-nt.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"http:\\\/\\\/longmai-nt.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo.png\",\"contentUrl\":\"http:\\\/\\\/longmai-nt.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo.png\",\"width\":516,\"height\":478,\"caption\":\"\u6210\u90fd\u5e02\u9f99\u8109\u6696\u901a\u8bbe\u5907\u6709\u9650\u516c\u53f8\"},\"image\":{\"@id\":\"https:\\\/\\\/longmai-nt.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.xiaohongshu.com\\\/user\\\/profile\\\/5fe8a4e800000000010058d2\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\u2014\u2014\u81ea\u52a8\u5bf9\u6bd4\u5206\u6790 - \u9f99\u8109\u6696\u901a","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/longmai-nt.com\/?page_id=4556","og_locale":"zh_CN","og_type":"article","og_title":"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\u2014\u2014\u81ea\u52a8\u5bf9\u6bd4\u5206\u6790 - \u9f99\u8109\u6696\u901a","og_description":"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668 | \u9f99\u8109\u6696\u901a \ud83d\udd25 \u5730 [&hellip;]","og_url":"https:\/\/longmai-nt.com\/?page_id=4556","og_site_name":"\u9f99\u8109\u6696\u901a","article_modified_time":"2026-06-27T08:13:40+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/longmai-nt.com\/?page_id=4556","url":"https:\/\/longmai-nt.com\/?page_id=4556","name":"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\u2014\u2014\u81ea\u52a8\u5bf9\u6bd4\u5206\u6790 - \u9f99\u8109\u6696\u901a","isPartOf":{"@id":"https:\/\/longmai-nt.com\/#website"},"datePublished":"2026-06-25T15:27:06+00:00","dateModified":"2026-06-27T08:13:40+00:00","breadcrumb":{"@id":"https:\/\/longmai-nt.com\/?page_id=4556#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/longmai-nt.com\/?page_id=4556"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/longmai-nt.com\/?page_id=4556#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/longmai-nt.com\/"},{"@type":"ListItem","position":2,"name":"\u5730\u6696\u7cfb\u7edf\u62a5\u4ef7\u8ba1\u7b97\u5668\u2014\u2014\u81ea\u52a8\u5bf9\u6bd4\u5206\u6790"}]},{"@type":"WebSite","@id":"https:\/\/longmai-nt.com\/#website","url":"https:\/\/longmai-nt.com\/","name":"\u9f99\u8109\u6696\u901a","description":"\u4e13\u6ce8\u8212\u9002\u8282\u80fd\u8bbe\u8ba1","publisher":{"@id":"https:\/\/longmai-nt.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/longmai-nt.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/longmai-nt.com\/#organization","name":"\u6210\u90fd\u5e02\u9f99\u8109\u6696\u901a\u8bbe\u5907\u6709\u9650\u516c\u53f8","alternateName":"\u9f99\u8109\u6696\u901a","url":"https:\/\/longmai-nt.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/longmai-nt.com\/#\/schema\/logo\/image\/","url":"http:\/\/longmai-nt.com\/wp-content\/uploads\/2026\/04\/logo.png","contentUrl":"http:\/\/longmai-nt.com\/wp-content\/uploads\/2026\/04\/logo.png","width":516,"height":478,"caption":"\u6210\u90fd\u5e02\u9f99\u8109\u6696\u901a\u8bbe\u5907\u6709\u9650\u516c\u53f8"},"image":{"@id":"https:\/\/longmai-nt.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.xiaohongshu.com\/user\/profile\/5fe8a4e800000000010058d2"]}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/longmai-nt.com\/index.php?rest_route=\/wp\/v2\/pages\/4556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/longmai-nt.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/longmai-nt.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/longmai-nt.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/longmai-nt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4556"}],"version-history":[{"count":5,"href":"https:\/\/longmai-nt.com\/index.php?rest_route=\/wp\/v2\/pages\/4556\/revisions"}],"predecessor-version":[{"id":4776,"href":"https:\/\/longmai-nt.com\/index.php?rest_route=\/wp\/v2\/pages\/4556\/revisions\/4776"}],"wp:attachment":[{"href":"https:\/\/longmai-nt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}