{"id":4367,"date":"2026-03-23T01:51:42","date_gmt":"2026-03-23T01:51:42","guid":{"rendered":"https:\/\/saiweiglass.com\/?page_id=4367"},"modified":"2026-03-23T03:35:35","modified_gmt":"2026-03-23T03:35:35","slug":"coating-specification-builder","status":"publish","type":"page","link":"https:\/\/saiweiglass.com\/es\/capabilities\/ar-af-coating\/coating-specification-builder\/","title":{"rendered":"Constructor de especificaciones de recubrimiento"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-9fc785e\" data-block-id=\"9fc785e\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-9fc785e-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-3dd0bf9\" data-v=\"4\" data-block-id=\"3dd0bf9\"><style>.stk-3dd0bf9-container{margin-top:30px !important;margin-right:30px !important;margin-bottom:30px !important;margin-left:30px !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-3dd0bf9-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-3dd0bf9-inner-blocks\">\n<h1>Coating Specification Builder<\/h1>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-ef3380d\" data-block-id=\"ef3380d\"><style>.stk-ef3380d {margin-bottom:18px !important;}<\/style><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-ef3380d-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-462cd29\" data-v=\"4\" data-block-id=\"462cd29\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-462cd29-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-462cd29-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-a5b41b5\" data-block-id=\"a5b41b5\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-a5b41b5-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-39c6534\" data-v=\"4\" data-block-id=\"39c6534\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-39c6534-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-39c6534-inner-blocks\">\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;600;700&display=swap');\n#sw-tool-3 * { box-sizing: border-box !important; margin: 0 !important; padding: 0 !important; }\n#sw-tool-3 { max-width: 1120px !important; margin: 0 auto !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important; color: #1a1a2e !important; background: #f8f9fb !important; border: 2px solid #304890 !important; border-radius: 0px !important; overflow: hidden !important; }\n#sw-tool-3 .sw3-header { background: #304890 !important; padding: 28px 32px !important; }\n#sw-tool-3 .sw3-header h2 { color: #fff !important; font-size: 22px !important; font-weight: 700 !important; margin-bottom: 6px !important; }\n#sw-tool-3 .sw3-header p { color: rgba(255,255,255,0.8) !important; font-size: 14px !important; }\n#sw-tool-3 .sw3-content { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 0 !important; }\n#sw-tool-3 .sw3-builder { padding: 0 !important; border-right: 1px solid #e9ecf3 !important; background: #fff !important; }\n#sw-tool-3 .sw3-output { padding: 24px 28px !important; background: #f8f9fb !important; display: flex !important; flex-direction: column !important; }\n\/* Accordion *\/\n#sw-tool-3 .sw3-section { border-bottom: 1px solid #e9ecf3 !important; }\n#sw-tool-3 .sw3-section:last-child { border-bottom: none !important; }\n#sw-tool-3 .sw3-sec-header { display: flex !important; align-items: center !important; gap: 12px !important; padding: 16px 24px !important; cursor: pointer !important; transition: background 0.15s !important; user-select: none !important; }\n#sw-tool-3 .sw3-sec-header:hover { background: #f0f2f8 !important; }\n#sw-tool-3 .sw3-sec-num { width: 28px !important; height: 28px !important; background: #304890 !important; color: #fff !important; font-family: 'IBM Plex Mono', monospace !important; font-size: 13px !important; font-weight: 600 !important; display: flex !important; align-items: center !important; justify-content: center !important; flex-shrink: 0 !important; }\n#sw-tool-3 .sw3-sec-title { flex: 1 !important; font-size: 15px !important; font-weight: 600 !important; color: #1a1a2e !important; }\n#sw-tool-3 .sw3-sec-arrow { width: 20px !important; height: 20px !important; color: #304890 !important; transition: transform 0.2s !important; font-size: 18px !important; }\n#sw-tool-3 .sw3-section.open .sw3-sec-arrow { transform: rotate(180deg) !important; }\n#sw-tool-3 .sw3-sec-body { display: none !important; padding: 0 24px 20px 64px !important; }\n#sw-tool-3 .sw3-section.open .sw3-sec-body { display: block !important; }\n#sw-tool-3 .sw3-field { margin-bottom: 16px !important; }\n#sw-tool-3 .sw3-field:last-child { margin-bottom: 0 !important; }\n#sw-tool-3 .sw3-field-label { display: block !important; font-size: 12px !important; font-family: 'IBM Plex Mono', monospace !important; color: #6b7280 !important; text-transform: uppercase !important; letter-spacing: 0.8px !important; margin-bottom: 6px !important; }\n#sw-tool-3 select, #sw-tool-3 input[type=\"text\"], #sw-tool-3 input[type=\"number\"] { width: 100% !important; min-height: 44px !important; padding: 0 12px !important; border: 2px solid #dde1ea !important; border-radius: 0px !important; font-size: 14px !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important; color: #1a1a2e !important; background: #fff !important; }\n#sw-tool-3 select:focus, #sw-tool-3 input:focus { outline: none !important; border-color: #304890 !important; }\n#sw-tool-3 .sw3-row { display: flex !important; gap: 12px !important; }\n#sw-tool-3 .sw3-row .sw3-field { flex: 1 !important; }\n#sw-tool-3 .sw3-radios { display: flex !important; gap: 8px !important; flex-wrap: wrap !important; }\n#sw-tool-3 .sw3-radio { padding: 10px 16px !important; border: 2px solid #dde1ea !important; cursor: pointer !important; font-size: 13px !important; transition: all 0.15s !important; text-align: center !important; }\n#sw-tool-3 .sw3-radio:hover { border-color: #304890 !important; }\n#sw-tool-3 .sw3-radio.selected { border-color: #304890 !important; background: #304890 !important; color: #fff !important; }\n#sw-tool-3 .sw3-toggle-row { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 10px 0 !important; }\n#sw-tool-3 .sw3-toggle-label { font-size: 14px !important; color: #1a1a2e !important; }\n#sw-tool-3 .sw3-toggle { position: relative !important; width: 48px !important; height: 26px !important; background: #dde1ea !important; cursor: pointer !important; transition: background 0.2s !important; display: inline-block !important; }\n#sw-tool-3 .sw3-toggle.on { background: #304890 !important; }\n#sw-tool-3 .sw3-toggle::after { content: '' !important; position: absolute !important; top: 3px !important; left: 3px !important; width: 20px !important; height: 20px !important; background: #fff !important; transition: transform 0.2s !important; }\n#sw-tool-3 .sw3-toggle.on::after { transform: translateX(22px) !important; }\n#sw-tool-3 .sw3-sub-field { margin-top: 10px !important; padding-left: 16px !important; border-left: 2px solid #E8A830 !important; display: none !important; }\n#sw-tool-3 .sw3-sub-field.visible { display: block !important; }\n\/* Output *\/\n#sw-tool-3 .sw3-spec-card { background: #fff !important; border: 2px solid #304890 !important; padding: 0 !important; margin-bottom: 16px !important; flex: 1 !important; overflow-y: auto !important; max-height: 520px !important; }\n#sw-tool-3 .sw3-spec-card-header { background: #304890 !important; padding: 14px 20px !important; display: flex !important; justify-content: space-between !important; align-items: center !important; }\n#sw-tool-3 .sw3-spec-card-title { color: #fff !important; font-size: 14px !important; font-family: 'IBM Plex Mono', monospace !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: 1px !important; }\n#sw-tool-3 .sw3-spec-card-badge { background: #E8A830 !important; color: #fff !important; font-size: 10px !important; font-family: 'IBM Plex Mono', monospace !important; padding: 3px 10px !important; font-weight: 600 !important; letter-spacing: 0.5px !important; }\n#sw-tool-3 .sw3-spec-body { padding: 16px 20px !important; }\n#sw-tool-3 .sw3-spec-section { margin-bottom: 16px !important; }\n#sw-tool-3 .sw3-spec-section:last-child { margin-bottom: 0 !important; }\n#sw-tool-3 .sw3-spec-sec-title { font-size: 11px !important; font-family: 'IBM Plex Mono', monospace !important; color: #304890 !important; text-transform: uppercase !important; letter-spacing: 1px !important; padding-bottom: 6px !important; border-bottom: 1px solid #e9ecf3 !important; margin-bottom: 8px !important; font-weight: 600 !important; }\n#sw-tool-3 .sw3-spec-row { display: flex !important; justify-content: space-between !important; padding: 4px 0 !important; font-size: 13px !important; }\n#sw-tool-3 .sw3-spec-key { color: #6b7280 !important; }\n#sw-tool-3 .sw3-spec-value { font-family: 'IBM Plex Mono', monospace !important; font-weight: 600 !important; color: #1a1a2e !important; text-align: right !important; }\n#sw-tool-3 .sw3-actions { display: flex !important; gap: 10px !important; }\n#sw-tool-3 .sw3-btn { flex: 1 !important; min-height: 48px !important; font-size: 14px !important; font-weight: 600 !important; border: none !important; border-radius: 0px !important; cursor: pointer !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: all 0.2s !important; text-decoration: none !important; }\n#sw-tool-3 .sw3-btn-copy { background: #fff !important; color: #304890 !important; border: 2px solid #304890 !important; }\n#sw-tool-3 .sw3-btn-copy:hover { background: #f0f2f8 !important; }\n#sw-tool-3 .sw3-btn-quote { background: #E8A830 !important; color: #fff !important; }\n#sw-tool-3 .sw3-btn-quote:hover { background: #d4962a !important; }\n#sw-tool-3 .sw3-copied { font-size: 12px !important; color: #304890 !important; text-align: center !important; margin-top: 8px !important; min-height: 18px !important; font-family: 'IBM Plex Mono', monospace !important; }\n@media (max-width:690px) {\n  #sw-tool-3 .sw3-content { grid-template-columns: 1fr !important; }\n  #sw-tool-3 .sw3-builder { border-right: none !important; border-bottom: 1px solid #e9ecf3 !important; }\n  #sw-tool-3 .sw3-header { padding: 20px !important; }\n  #sw-tool-3 .sw3-output { padding: 20px !important; }\n  #sw-tool-3 .sw3-sec-body { padding: 0 20px 16px 48px !important; }\n  #sw-tool-3 .sw3-row { flex-direction: column !important; }\n  #sw-tool-3 .sw3-spec-card { max-height: none !important; }\n  #sw-tool-3 .sw3-actions { flex-direction: column !important; }\n}\n<\/style>\n\n<div id=\"sw-tool-3\">\n  <div class=\"sw3-header\">\n    <h2>Coating Specification Builder<\/h2>\n    <p>Build a custom spec sheet step by step, then copy or submit for a quote.<\/p>\n  <\/div>\n  <div class=\"sw3-content\">\n    <div class=\"sw3-builder\">\n      <!-- Section 1: Project Info -->\n      <div class=\"sw3-section open\" data-sec=\"1\">\n        <div class=\"sw3-sec-header\">\n          <div class=\"sw3-sec-num\">1<\/div>\n          <div class=\"sw3-sec-title\">Project Info<\/div>\n          <div class=\"sw3-sec-arrow\">&#9662;<\/div>\n        <\/div>\n        <div class=\"sw3-sec-body\">\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Project Name<\/label>\n            <input type=\"text\" id=\"sw3-project-name\" placeholder=\"e.g., HMI Display Cover Glass\">\n          <\/div>\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Application<\/label>\n            <select id=\"sw3-application\">\n              <option value=\"\">Select application&#8230;<\/option>\n              <option value=\"Consumer Electronics\">Consumer Electronics<\/option>\n              <option value=\"Medical Equipment\">Medical Equipment<\/option>\n              <option value=\"Industrial Controls\">Industrial Controls<\/option>\n              <option value=\"Automotive\">Automotive<\/option>\n              <option value=\"Optical \/ Scientific\">Optical \/ Scientific<\/option>\n              <option value=\"Other\">Other<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Target Market<\/label>\n            <select id=\"sw3-market\">\n              <option value=\"Domestic\">Domestic<\/option>\n              <option value=\"Export\">Export<\/option>\n              <option value=\"Both\">Both<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n      <\/div>\n      <!-- Section 2: Glass Substrate -->\n      <div class=\"sw3-section\" data-sec=\"2\">\n        <div class=\"sw3-sec-header\">\n          <div class=\"sw3-sec-num\">2<\/div>\n          <div class=\"sw3-sec-title\">Glass Substrate<\/div>\n          <div class=\"sw3-sec-arrow\">&#9662;<\/div>\n        <\/div>\n        <div class=\"sw3-sec-body\">\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Material<\/label>\n            <select id=\"sw3-material\">\n              <option value=\"\">Select material&#8230;<\/option>\n              <option value=\"Soda-Lime Float Glass\">Soda-Lime Float Glass<\/option>\n              <option value=\"Aluminosilicate (Gorilla\/Dragontrail)\">Aluminosilicate (Gorilla\/Dragontrail)<\/option>\n              <option value=\"Borosilicate (Schott Borofloat)\">Borosilicate (Schott Borofloat)<\/option>\n              <option value=\"Chemically Strengthened Glass\">Chemically Strengthened Glass<\/option>\n              <option value=\"Sapphire\">Sapphire<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Thickness (mm)<\/label>\n            <input type=\"number\" id=\"sw3-thickness\" min=\"0.3\" max=\"15\" step=\"0.1\" placeholder=\"e.g., 1.1\">\n          <\/div>\n          <div class=\"sw3-row\">\n            <div class=\"sw3-field\">\n              <label class=\"sw3-field-label\">Width (mm)<\/label>\n              <input type=\"number\" id=\"sw3-width\" min=\"1\" max=\"600\" placeholder=\"W\">\n            <\/div>\n            <div class=\"sw3-field\">\n              <label class=\"sw3-field-label\">Height (mm)<\/label>\n              <input type=\"number\" id=\"sw3-height\" min=\"1\" max=\"600\" placeholder=\"H\">\n            <\/div>\n          <\/div>\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Shape<\/label>\n            <div class=\"sw3-radios\" data-name=\"shape\">\n              <div class=\"sw3-radio selected\" data-value=\"Rectangle\">Rectangle<\/div>\n              <div class=\"sw3-radio\" data-value=\"Round\">Round<\/div>\n              <div class=\"sw3-radio\" data-value=\"Custom\">Custom<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <!-- Section 3: Surface Treatment -->\n      <div class=\"sw3-section\" data-sec=\"3\">\n        <div class=\"sw3-sec-header\">\n          <div class=\"sw3-sec-num\">3<\/div>\n          <div class=\"sw3-sec-title\">Surface Treatment<\/div>\n          <div class=\"sw3-sec-arrow\">&#9662;<\/div>\n        <\/div>\n        <div class=\"sw3-sec-body\">\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Coating Type<\/label>\n            <div class=\"sw3-radios\" data-name=\"coating\">\n              <div class=\"sw3-radio selected\" data-value=\"AR\">AR<\/div>\n              <div class=\"sw3-radio\" data-value=\"AF\">AF<\/div>\n              <div class=\"sw3-radio\" data-value=\"AR+AF\">AR+AF<\/div>\n              <div class=\"sw3-radio\" data-value=\"AG+AF\">AG+AF<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"sw3-field\" id=\"sw3-refl-field\">\n            <label class=\"sw3-field-label\">AR Target Reflectance<\/label>\n            <select id=\"sw3-reflectance\">\n              <option value=\"< 2%\">&lt; 2%<\/option>\n              <option value=\"< 1%\" selected>&lt; 1%<\/option>\n              <option value=\"< 0.5%\">&lt; 0.5%<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"sw3-field\" id=\"sw3-angle-field\">\n            <label class=\"sw3-field-label\">AF Contact Angle<\/label>\n            <select id=\"sw3-contact-angle\">\n              <option value=\"> 100&deg;&#8221;>&gt; 100&deg;<\/option>\n              <option value=\"> 110&deg;&#8221; selected>&gt; 110&deg;<\/option>\n              <option value=\"> 115&deg;&#8221;>&gt; 115&deg;<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Sides to Coat<\/label>\n            <div class=\"sw3-radios\" data-name=\"sides\">\n              <div class=\"sw3-radio selected\" data-value=\"One Side\">One Side<\/div>\n              <div class=\"sw3-radio\" data-value=\"Both Sides\">Both Sides<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <!-- Section 4: Additional Processing -->\n      <div class=\"sw3-section\" data-sec=\"4\">\n        <div class=\"sw3-sec-header\">\n          <div class=\"sw3-sec-num\">4<\/div>\n          <div class=\"sw3-sec-title\">Additional Processing<\/div>\n          <div class=\"sw3-sec-arrow\">&#9662;<\/div>\n        <\/div>\n        <div class=\"sw3-sec-body\">\n          <div class=\"sw3-toggle-row\">\n            <span class=\"sw3-toggle-label\">Chemical Strengthening<\/span>\n            <div class=\"sw3-toggle\" id=\"sw3-t-strengthen\"><\/div>\n          <\/div>\n          <div class=\"sw3-toggle-row\">\n            <span class=\"sw3-toggle-label\">Silk-Screen Printing<\/span>\n            <div class=\"sw3-toggle\" id=\"sw3-t-silkscreen\"><\/div>\n          <\/div>\n          <div class=\"sw3-sub-field\" id=\"sw3-silk-sub\">\n            <div class=\"sw3-field\">\n              <label class=\"sw3-field-label\">Print Color(s)<\/label>\n              <input type=\"text\" id=\"sw3-silk-color\" placeholder=\"e.g., Black border, White text\">\n            <\/div>\n          <\/div>\n          <div class=\"sw3-toggle-row\">\n            <span class=\"sw3-toggle-label\">Edge Work<\/span>\n            <div class=\"sw3-toggle\" id=\"sw3-t-edge\"><\/div>\n          <\/div>\n          <div class=\"sw3-sub-field\" id=\"sw3-edge-sub\">\n            <div class=\"sw3-field\">\n              <label class=\"sw3-field-label\">Edge Type<\/label>\n              <select id=\"sw3-edge-type\">\n                <option value=\"Polished\">Polished<\/option>\n                <option value=\"Beveled\">Beveled<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n          <div class=\"sw3-toggle-row\">\n            <span class=\"sw3-toggle-label\">Holes \/ Cutouts<\/span>\n            <div class=\"sw3-toggle\" id=\"sw3-t-holes\"><\/div>\n          <\/div>\n          <div class=\"sw3-sub-field\" id=\"sw3-holes-sub\">\n            <div class=\"sw3-field\">\n              <label class=\"sw3-field-label\">Number of Holes \/ Cutouts<\/label>\n              <input type=\"number\" id=\"sw3-hole-count\" min=\"1\" max=\"20\" placeholder=\"e.g., 2\">\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <!-- Section 5: Quantity & Timeline -->\n      <div class=\"sw3-section\" data-sec=\"5\">\n        <div class=\"sw3-sec-header\">\n          <div class=\"sw3-sec-num\">5<\/div>\n          <div class=\"sw3-sec-title\">Quantity &amp; Timeline<\/div>\n          <div class=\"sw3-sec-arrow\">&#9662;<\/div>\n        <\/div>\n        <div class=\"sw3-sec-body\">\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Annual Volume (pcs)<\/label>\n            <input type=\"number\" id=\"sw3-annual-vol\" min=\"1\" placeholder=\"e.g., 5000\">\n          <\/div>\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">First Order Qty (pcs)<\/label>\n            <input type=\"number\" id=\"sw3-first-qty\" min=\"1\" placeholder=\"e.g., 500\">\n          <\/div>\n          <div class=\"sw3-field\">\n            <label class=\"sw3-field-label\">Target Delivery<\/label>\n            <select id=\"sw3-delivery\">\n              <option value=\"Standard (15-20 business days)\">Standard (15-20 business days)<\/option>\n              <option value=\"Rush (8-12 business days)\">Rush (8-12 business days)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n    <!-- Output panel -->\n    <div class=\"sw3-output\">\n      <div class=\"sw3-spec-card\">\n        <div class=\"sw3-spec-card-header\">\n          <span class=\"sw3-spec-card-title\">Specification Summary<\/span>\n          <span class=\"sw3-spec-card-badge\">LIVE PREVIEW<\/span>\n        <\/div>\n        <div class=\"sw3-spec-body\" id=\"sw3-spec-body\">\n          <!-- Dynamically populated -->\n        <\/div>\n      <\/div>\n      <div class=\"sw3-actions\">\n        <button class=\"sw3-btn sw3-btn-copy\" id=\"sw3-copy\">Copy Spec Sheet<\/button>\n        <a href=\"#ct-popup-787\" class=\"sw3-btn sw3-btn-quote\">Submit for Quote<\/a>\n      <\/div>\n      <div class=\"sw3-copied\" id=\"sw3-copied-msg\"><\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  var root = document.getElementById('sw-tool-3');\n\n  \/\/ Accordion\n  root.querySelectorAll('.sw3-sec-header').forEach(function(hdr){\n    hdr.addEventListener('click', function(){\n      var sec = hdr.closest('.sw3-section');\n      sec.classList.toggle('open');\n    });\n  });\n\n  \/\/ Radio groups\n  root.querySelectorAll('.sw3-radios').forEach(function(group){\n    group.querySelectorAll('.sw3-radio').forEach(function(r){\n      r.addEventListener('click', function(){\n        group.querySelectorAll('.sw3-radio').forEach(function(x){ x.classList.remove('selected'); });\n        r.classList.add('selected');\n        updateCoatingFields();\n        renderSpec();\n      });\n    });\n  });\n\n  \/\/ Toggles\n  root.querySelectorAll('.sw3-toggle').forEach(function(t){\n    t.addEventListener('click', function(){\n      t.classList.toggle('on');\n      \/\/ Show\/hide sub fields\n      if(t.id === 'sw3-t-silkscreen') document.getElementById('sw3-silk-sub').classList.toggle('visible', t.classList.contains('on'));\n      if(t.id === 'sw3-t-edge') document.getElementById('sw3-edge-sub').classList.toggle('visible', t.classList.contains('on'));\n      if(t.id === 'sw3-t-holes') document.getElementById('sw3-holes-sub').classList.toggle('visible', t.classList.contains('on'));\n      renderSpec();\n    });\n  });\n\n  \/\/ All inputs\/selects trigger re-render\n  root.querySelectorAll('input, select').forEach(function(el){\n    el.addEventListener('input', renderSpec);\n    el.addEventListener('change', renderSpec);\n  });\n\n  function getRadio(name){\n    var sel = root.querySelector('.sw3-radios[data-name=\"'+name+'\"] .sw3-radio.selected');\n    return sel ? sel.getAttribute('data-value') : '';\n  }\n\n  function updateCoatingFields(){\n    var ct = getRadio('coating');\n    var showRefl = (ct === 'AR' || ct === 'AR+AF' || ct === 'AG+AF');\n    var showAngle = (ct === 'AF' || ct === 'AR+AF' || ct === 'AG+AF');\n    document.getElementById('sw3-refl-field').style.display = showRefl ? '' : 'none';\n    document.getElementById('sw3-angle-field').style.display = showAngle ? '' : 'none';\n  }\n\n  function v(id){ return document.getElementById(id).value; }\n  function tog(id){ return document.getElementById(id).classList.contains('on'); }\n\n  function renderSpec(){\n    var html = '';\n\n    \/\/ Project Info\n    var pName = v('sw3-project-name') || 'Untitled Project';\n    var app = v('sw3-application');\n    var market = v('sw3-market');\n    html += '<div class=\"sw3-spec-section\"><div class=\"sw3-spec-sec-title\">Project Info<\/div>';\n    html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Project<\/span><span class=\"sw3-spec-value\">'+esc(pName)+'<\/span><\/div>';\n    if(app) html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Application<\/span><span class=\"sw3-spec-value\">'+esc(app)+'<\/span><\/div>';\n    html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Market<\/span><span class=\"sw3-spec-value\">'+esc(market)+'<\/span><\/div>';\n    html += '<\/div>';\n\n    \/\/ Substrate\n    var mat = v('sw3-material');\n    var thick = v('sw3-thickness');\n    var w = v('sw3-width');\n    var h = v('sw3-height');\n    var shape = getRadio('shape');\n    html += '<div class=\"sw3-spec-section\"><div class=\"sw3-spec-sec-title\">Glass Substrate<\/div>';\n    if(mat) html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Material<\/span><span class=\"sw3-spec-value\">'+esc(mat)+'<\/span><\/div>';\n    if(thick) html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Thickness<\/span><span class=\"sw3-spec-value\">'+esc(thick)+' mm<\/span><\/div>';\n    if(w && h) html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Dimensions<\/span><span class=\"sw3-spec-value\">'+esc(w)+' &times; '+esc(h)+' mm<\/span><\/div>';\n    html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Shape<\/span><span class=\"sw3-spec-value\">'+esc(shape)+'<\/span><\/div>';\n    html += '<\/div>';\n\n    \/\/ Surface Treatment\n    var ct = getRadio('coating');\n    var refl = v('sw3-reflectance');\n    var angle = v('sw3-contact-angle');\n    var sides = getRadio('sides');\n    html += '<div class=\"sw3-spec-section\"><div class=\"sw3-spec-sec-title\">Surface Treatment<\/div>';\n    html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Coating<\/span><span class=\"sw3-spec-value\">'+esc(ct)+'<\/span><\/div>';\n    if(ct==='AR'||ct==='AR+AF'||ct==='AG+AF') html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Reflectance<\/span><span class=\"sw3-spec-value\">'+esc(refl)+'<\/span><\/div>';\n    if(ct==='AF'||ct==='AR+AF'||ct==='AG+AF') html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Contact Angle<\/span><span class=\"sw3-spec-value\">'+esc(angle)+'<\/span><\/div>';\n    html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Coated Sides<\/span><span class=\"sw3-spec-value\">'+esc(sides)+'<\/span><\/div>';\n    html += '<\/div>';\n\n    \/\/ Processing\n    var procs = [];\n    if(tog('sw3-t-strengthen')) procs.push('Chemical Strengthening');\n    if(tog('sw3-t-silkscreen')){\n      var sc = v('sw3-silk-color');\n      procs.push('Silk-Screen' + (sc ? ' ('+sc+')' : ''));\n    }\n    if(tog('sw3-t-edge')) procs.push('Edge: ' + v('sw3-edge-type'));\n    if(tog('sw3-t-holes')){\n      var hc = v('sw3-hole-count');\n      procs.push('Holes\/Cutouts' + (hc ? ' (\\u00d7'+hc+')' : ''));\n    }\n    if(procs.length > 0){\n      html += '<div class=\"sw3-spec-section\"><div class=\"sw3-spec-sec-title\">Additional Processing<\/div>';\n      procs.forEach(function(p){\n        html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">\\u2713<\/span><span class=\"sw3-spec-value\">'+esc(p)+'<\/span><\/div>';\n      });\n      html += '<\/div>';\n    }\n\n    \/\/ Quantity\n    var annVol = v('sw3-annual-vol');\n    var firstQty = v('sw3-first-qty');\n    var delivery = v('sw3-delivery');\n    if(annVol || firstQty){\n      html += '<div class=\"sw3-spec-section\"><div class=\"sw3-spec-sec-title\">Quantity &amp; Timeline<\/div>';\n      if(annVol) html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Annual Volume<\/span><span class=\"sw3-spec-value\">'+Number(annVol).toLocaleString()+' pcs<\/span><\/div>';\n      if(firstQty) html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">First Order<\/span><span class=\"sw3-spec-value\">'+Number(firstQty).toLocaleString()+' pcs<\/span><\/div>';\n      html += '<div class=\"sw3-spec-row\"><span class=\"sw3-spec-key\">Delivery<\/span><span class=\"sw3-spec-value\">'+esc(delivery)+'<\/span><\/div>';\n      html += '<\/div>';\n    }\n\n    document.getElementById('sw3-spec-body').innerHTML = html;\n  }\n\n  function esc(s){ var d=document.createElement('div'); d.textContent=s; return d.innerHTML; }\n\n  \/\/ Build plain text for clipboard\n  function buildText(){\n    var lines = [];\n    lines.push('=== SAIWEI GLASS \u2014 COATING SPECIFICATION ===');\n    lines.push('');\n    lines.push('PROJECT INFO');\n    lines.push('  Project:     ' + (v('sw3-project-name') || 'Untitled'));\n    if(v('sw3-application')) lines.push('  Application:  ' + v('sw3-application'));\n    lines.push('  Market:      ' + v('sw3-market'));\n    lines.push('');\n    lines.push('GLASS SUBSTRATE');\n    if(v('sw3-material')) lines.push('  Material:    ' + v('sw3-material'));\n    if(v('sw3-thickness')) lines.push('  Thickness:   ' + v('sw3-thickness') + ' mm');\n    if(v('sw3-width') && v('sw3-height')) lines.push('  Dimensions:  ' + v('sw3-width') + ' x ' + v('sw3-height') + ' mm');\n    lines.push('  Shape:       ' + getRadio('shape'));\n    lines.push('');\n    lines.push('SURFACE TREATMENT');\n    var ct = getRadio('coating');\n    lines.push('  Coating:     ' + ct);\n    if(ct==='AR'||ct==='AR+AF'||ct==='AG+AF') lines.push('  Reflectance: ' + v('sw3-reflectance'));\n    if(ct==='AF'||ct==='AR+AF'||ct==='AG+AF') lines.push('  Contact Angle: ' + v('sw3-contact-angle'));\n    lines.push('  Coated Sides: ' + getRadio('sides'));\n    lines.push('');\n    var procs = [];\n    if(tog('sw3-t-strengthen')) procs.push('Chemical Strengthening');\n    if(tog('sw3-t-silkscreen')) procs.push('Silk-Screen' + (v('sw3-silk-color')?' ('+v('sw3-silk-color')+')':''));\n    if(tog('sw3-t-edge')) procs.push('Edge: ' + v('sw3-edge-type'));\n    if(tog('sw3-t-holes')) procs.push('Holes\/Cutouts' + (v('sw3-hole-count')?' (x'+v('sw3-hole-count')+')':''));\n    if(procs.length){\n      lines.push('ADDITIONAL PROCESSING');\n      procs.forEach(function(p){ lines.push('  - ' + p); });\n      lines.push('');\n    }\n    if(v('sw3-annual-vol') || v('sw3-first-qty')){\n      lines.push('QUANTITY & TIMELINE');\n      if(v('sw3-annual-vol')) lines.push('  Annual Vol:  ' + Number(v('sw3-annual-vol')).toLocaleString() + ' pcs');\n      if(v('sw3-first-qty')) lines.push('  First Order: ' + Number(v('sw3-first-qty')).toLocaleString() + ' pcs');\n      lines.push('  Delivery:    ' + v('sw3-delivery'));\n    }\n    lines.push('');\n    lines.push('Generated by Saiwei Glass Spec Builder');\n    return lines.join('\\n');\n  }\n\n  \/\/ Copy\n  document.getElementById('sw3-copy').addEventListener('click', function(){\n    var txt = buildText();\n    navigator.clipboard.writeText(txt).then(function(){\n      document.getElementById('sw3-copied-msg').textContent = 'Copied to clipboard';\n      setTimeout(function(){ document.getElementById('sw3-copied-msg').textContent = ''; }, 2500);\n    }).catch(function(){\n      \/\/ Fallback\n      var ta = document.createElement('textarea');\n      ta.value = txt;\n      document.body.appendChild(ta);\n      ta.select();\n      document.execCommand('copy');\n      document.body.removeChild(ta);\n      document.getElementById('sw3-copied-msg').textContent = 'Copied to clipboard';\n      setTimeout(function(){ document.getElementById('sw3-copied-msg').textContent = ''; }, 2500);\n    });\n  });\n\n  updateCoatingFields();\n  renderSpec();\n})();\n<\/script>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Coating Specification Builder Build a custom spec sheet step by step, then copy or submit for a quote. 1 Project Info &#9662; Project Name Application Select application&#8230;Consumer ElectronicsMedical EquipmentIndustrial ControlsAutomotiveOptical \/ ScientificOther Target Market DomesticExportBoth 2 Glass Substrate &#9662; Material Select material&#8230;Soda-Lime Float GlassAluminosilicate (Gorilla\/Dragontrail)Borosilicate (Schott Borofloat)Chemically Strengthened GlassSapphire Thickness (mm) Width (mm) Height (mm) [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":4359,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-4367","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/4367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/comments?post=4367"}],"version-history":[{"count":0,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/4367\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/4359"}],"wp:attachment":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/media?parent=4367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}