{"id":2249,"date":"2026-03-06T08:58:15","date_gmt":"2026-03-06T08:58:15","guid":{"rendered":"https:\/\/saiweiglass.com\/?page_id=2249"},"modified":"2026-03-09T02:28:19","modified_gmt":"2026-03-09T02:28:19","slug":"curved-glass-specification-builder","status":"publish","type":"page","link":"https:\/\/saiweiglass.com\/es\/products\/3d-curved-glass\/curved-glass-specification-builder\/","title":{"rendered":"Constructor de especificaciones de vidrio curvo"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-af39db4\" data-block-id=\"af39db4\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-af39db4-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-a75a819\" data-v=\"4\" data-block-id=\"a75a819\"><style>.stk-a75a819-container{margin-top:20px !important;margin-right:20px !important;margin-bottom:20px !important;margin-left:20px !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-a75a819-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-a75a819-inner-blocks\">\n<h1>3D Curved Glass 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-6cbb651\" data-block-id=\"6cbb651\"><style>.stk-6cbb651 {margin-bottom:18px !important;}<\/style><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-6cbb651-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-b42d3ba\" data-v=\"4\" data-block-id=\"b42d3ba\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-b42d3ba-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-b42d3ba-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-c002207\" data-block-id=\"c002207\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-c002207-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-5091776\" data-v=\"4\" data-block-id=\"5091776\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-5091776-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-5091776-inner-blocks\">\n<!-- Curved Glass Specification Builder \u2014 Saiwei Glass Co., Ltd. -->\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;600&#038;display=swap\" rel=\"stylesheet\">\n<section id=\"bx-spec-builder-v1\">\n  <h2>Curved Glass Specification Builder<\/h2>\n  <p class=\"sb-subtitle\">Build your curved glass spec sheet step by step. Generate an RFQ-ready summary in under 2 minutes.<\/p>\n\n  <!-- Progress Bar -->\n  <div class=\"sb-progress-bar\">\n    <div class=\"sb-progress-track\">\n      <div class=\"sb-progress-fill\" id=\"sbProgressFill\"><\/div>\n    <\/div>\n    <div class=\"sb-progress-labels\">\n      <span class=\"sb-step-label sb-active\" data-step=\"1\">1. Application<\/span>\n      <span class=\"sb-step-label\" data-step=\"2\">2. Glass<\/span>\n      <span class=\"sb-step-label\" data-step=\"3\">3. Curvature<\/span>\n      <span class=\"sb-step-label\" data-step=\"4\">4. Processing<\/span>\n      <span class=\"sb-step-label\" data-step=\"5\">5. Standards<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 1: Application -->\n  <div class=\"sb-step\" id=\"sbStep1\">\n    <h3>Step 1 \/ 5 &mdash; Application<\/h3>\n    <div class=\"sb-field\">\n      <label for=\"sbApplication\">Industry \/ Application<\/label>\n      <div class=\"sb-select-wrap\">\n        <select id=\"sbApplication\">\n          <option value=\"\">Select application&hellip;<\/option>\n          <option value=\"Electronics\">Electronics<\/option>\n          <option value=\"Automotive\">Automotive<\/option>\n          <option value=\"Architecture\">Architecture<\/option>\n          <option value=\"Medical\">Medical<\/option>\n          <option value=\"Other\">Other<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div class=\"sb-field\">\n      <label for=\"sbDescription\">Brief Description<\/label>\n      <input type=\"text\" id=\"sbDescription\" placeholder=\"e.g. curved display cover for dashboard panel\" maxlength=\"200\">\n    <\/div>\n    <div class=\"sb-nav\">\n      <span><\/span>\n      <button type=\"button\" class=\"sb-btn sb-btn-next\" id=\"sbNext1\">Next &rarr;<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 2: Glass Configuration -->\n  <div class=\"sb-step sb-hidden\" id=\"sbStep2\">\n    <h3>Step 2 \/ 5 &mdash; Glass Configuration<\/h3>\n    <div class=\"sb-field\">\n      <label for=\"sbGlassType\">Glass Type<\/label>\n      <div class=\"sb-select-wrap\">\n        <select id=\"sbGlassType\">\n          <option value=\"\">Select glass type&hellip;<\/option>\n          <option value=\"Soda-lime\">Soda-lime<\/option>\n          <option value=\"Borosilicate\">Borosilicate<\/option>\n          <option value=\"Aluminosilicate\">Aluminosilicate<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div class=\"sb-field\">\n      <label for=\"sbThickness\">Thickness (mm)<\/label>\n      <input type=\"number\" id=\"sbThickness\" min=\"0.3\" max=\"25\" step=\"0.1\" placeholder=\"e.g. 3.2\">\n    <\/div>\n    <div class=\"sb-row\">\n      <div class=\"sb-field sb-half\">\n        <label for=\"sbWidth\">Width (mm)<\/label>\n        <input type=\"number\" id=\"sbWidth\" min=\"1\" max=\"6000\" step=\"1\" placeholder=\"e.g. 400\">\n      <\/div>\n      <div class=\"sb-field sb-half\">\n        <label for=\"sbHeight\">Height (mm)<\/label>\n        <input type=\"number\" id=\"sbHeight\" min=\"1\" max=\"6000\" step=\"1\" placeholder=\"e.g. 600\">\n      <\/div>\n    <\/div>\n    <div class=\"sb-field\">\n      <label for=\"sbQuantity\">Quantity (pcs)<\/label>\n      <input type=\"number\" id=\"sbQuantity\" min=\"1\" max=\"999999\" step=\"1\" placeholder=\"e.g. 500\">\n    <\/div>\n    <div class=\"sb-nav\">\n      <button type=\"button\" class=\"sb-btn sb-btn-back\" id=\"sbBack2\">&larr; Back<\/button>\n      <button type=\"button\" class=\"sb-btn sb-btn-next\" id=\"sbNext2\">Next &rarr;<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 3: Curvature -->\n  <div class=\"sb-step sb-hidden\" id=\"sbStep3\">\n    <h3>Step 3 \/ 5 &mdash; Curvature<\/h3>\n    <div class=\"sb-field\">\n      <label for=\"sbBendType\">Bend Type<\/label>\n      <div class=\"sb-select-wrap\">\n        <select id=\"sbBendType\">\n          <option value=\"\">Select bend type&hellip;<\/option>\n          <option value=\"Single-axis\">Single-axis<\/option>\n          <option value=\"Compound\">Compound<\/option>\n          <option value=\"3D curved\">3D curved<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div class=\"sb-field\">\n      <label for=\"sbRadius\">Minimum Bend Radius (mm)<\/label>\n      <input type=\"number\" id=\"sbRadius\" min=\"1\" max=\"99999\" step=\"1\" placeholder=\"e.g. 150\">\n    <\/div>\n    <div class=\"sb-field\">\n      <label>Curvature Direction<\/label>\n      <div class=\"sb-radio-group\">\n        <label class=\"sb-radio-option\"><input type=\"radio\" name=\"sbCurveDir\" value=\"Convex\"> Convex<\/label>\n        <label class=\"sb-radio-option\"><input type=\"radio\" name=\"sbCurveDir\" value=\"Concave\"> Concave<\/label>\n      <\/div>\n    <\/div>\n    <div class=\"sb-nav\">\n      <button type=\"button\" class=\"sb-btn sb-btn-back\" id=\"sbBack3\">&larr; Back<\/button>\n      <button type=\"button\" class=\"sb-btn sb-btn-next\" id=\"sbNext3\">Next &rarr;<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 4: Processing -->\n  <div class=\"sb-step sb-hidden\" id=\"sbStep4\">\n    <h3>Step 4 \/ 5 &mdash; Processing<\/h3>\n    <div class=\"sb-field\">\n      <label for=\"sbTempering\">Tempering<\/label>\n      <div class=\"sb-select-wrap\">\n        <select id=\"sbTempering\">\n          <option value=\"None (annealed)\">None (annealed)<\/option>\n          <option value=\"Tempered\">Tempered<\/option>\n          <option value=\"Heat-strengthened\">Heat-strengthened<\/option>\n          <option value=\"Chemical strengthening\">Chemical strengthening<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div class=\"sb-field\">\n      <label for=\"sbLamination\">Lamination<\/label>\n      <div class=\"sb-select-wrap\">\n        <select id=\"sbLamination\">\n          <option value=\"None\">None<\/option>\n          <option value=\"PVB\">PVB<\/option>\n          <option value=\"SGP\">SGP<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div class=\"sb-field\">\n      <label>Coating (select all that apply)<\/label>\n      <div class=\"sb-checkbox-group\">\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"AR (Anti-Reflective)\"> AR<\/label>\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"AG (Anti-Glare)\"> AG<\/label>\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"AF (Anti-Fingerprint)\"> AF<\/label>\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"ITO (Conductive)\"> ITO<\/label>\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"Ceramic Frit\"> Ceramic Frit<\/label>\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"Low-E\"> Low-E<\/label>\n      <\/div>\n    <\/div>\n    <div class=\"sb-field\">\n      <label for=\"sbEdge\">Edge Work<\/label>\n      <div class=\"sb-select-wrap\">\n        <select id=\"sbEdge\">\n          <option value=\"Raw\">Raw<\/option>\n          <option value=\"Seamed\">Seamed<\/option>\n          <option value=\"Polished\">Polished<\/option>\n          <option value=\"CNC profiled\">CNC profiled<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div class=\"sb-field\">\n      <label for=\"sbPrinting\">Printing<\/label>\n      <div class=\"sb-select-wrap\">\n        <select id=\"sbPrinting\">\n          <option value=\"None\">None<\/option>\n          <option value=\"Silk screen\">Silk screen<\/option>\n          <option value=\"Digital print\">Digital print<\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n    <div class=\"sb-nav\">\n      <button type=\"button\" class=\"sb-btn sb-btn-back\" id=\"sbBack4\">&larr; Back<\/button>\n      <button type=\"button\" class=\"sb-btn sb-btn-next\" id=\"sbNext4\">Next &rarr;<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- STEP 5: Standards & Quality -->\n  <div class=\"sb-step sb-hidden\" id=\"sbStep5\">\n    <h3>Step 5 \/ 5 &mdash; Standards &amp; Quality<\/h3>\n    <div class=\"sb-field\">\n      <label>Required Standards (select all that apply)<\/label>\n      <div class=\"sb-checkbox-group sb-standards-group\">\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"ISO 9001\"> ISO 9001 &mdash; Quality Management<\/label>\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"EN 12150\"> EN 12150 &mdash; Thermally Toughened Glass<\/label>\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"ISO 3537\"> ISO 3537 &mdash; Safety Glazing (Automotive)<\/label>\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"ISO 10993\"> ISO 10993 &mdash; Biocompatibility (Medical)<\/label>\n        <label class=\"sb-check-option\"><input type=\"checkbox\" value=\"ASTM C1048\"> ASTM C1048 &mdash; Heat-Treated Flat Glass<\/label>\n      <\/div>\n    <\/div>\n    <div class=\"sb-nav\">\n      <button type=\"button\" class=\"sb-btn sb-btn-back\" id=\"sbBack5\">&larr; Back<\/button>\n      <button type=\"button\" class=\"sb-btn sb-btn-generate\" id=\"sbGenerate\">Generate Spec Sheet<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- RESULT -->\n  <div class=\"sb-step sb-hidden\" id=\"sbResult\">\n    <h3>Your Curved Glass Specification<\/h3>\n    <div class=\"sb-result-box\" id=\"sbResultBox\"><\/div>\n    <div class=\"sb-result-actions\">\n      <button type=\"button\" class=\"sb-btn sb-btn-copy\" id=\"sbCopy\">Copy to Clipboard<\/button>\n      <button type=\"button\" class=\"sb-btn sb-btn-back\" id=\"sbRestart\">Start Over<\/button>\n    <\/div>\n    <div class=\"sb-cta-box\">\n      <p>Ready to move forward? Send this specification directly to our engineering team for review and pricing.<\/p>\n      <a href=\"#ct-popup-787\" class=\"sb-cta-link\">Submit RFQ to Saiwei<\/a>\n    <\/div>\n  <\/div>\n\n  <div id=\"sb-js-payload\" style=\"display:none\" data-sb=\"KGZ1bmN0aW9uKCl7CiAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYngtc3BlYy1idWlsZGVyLXYxJyk7CiAgaWYgKCFyb290KSByZXR1cm47CgogIHZhciBjdXJyZW50U3RlcCA9IDE7CiAgdmFyIHRvdGFsU3RlcHMgPSA1OwoKICBmdW5jdGlvbiAkKHNlbCkgeyByZXR1cm4gcm9vdC5xdWVyeVNlbGVjdG9yKHNlbCk7IH0KICBmdW5jdGlvbiAkJChzZWwpIHsgcmV0dXJuIHJvb3QucXVlcnlTZWxlY3RvckFsbChzZWwpOyB9CgogIGZ1bmN0aW9uIHNob3dTdGVwKG4pIHsKICAgIGN1cnJlbnRTdGVwID0gbjsKICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IHRvdGFsU3RlcHM7IGkrKykgewogICAgICB2YXIgZWwgPSAkKCcjc2JTdGVwJyArIGkpOwogICAgICBpZiAoZWwpIGVsLmNsYXNzTGlzdC50b2dnbGUoJ3NiLWhpZGRlbicsIGkgIT09IG4pOwogICAgfQogICAgJCgnI3NiUmVzdWx0JykuY2xhc3NMaXN0LmFkZCgnc2ItaGlkZGVuJyk7CiAgICB1cGRhdGVQcm9ncmVzcyhuKTsKICB9CgogIGZ1bmN0aW9uIHVwZGF0ZVByb2dyZXNzKG4pIHsKICAgIHZhciBwY3QgPSAobiAvIHRvdGFsU3RlcHMpICogMTAwOwogICAgJCgnI3NiUHJvZ3Jlc3NGaWxsJykuc3R5bGUud2lkdGggPSBwY3QgKyAnJSc7CiAgICB2YXIgbGFiZWxzID0gJCQoJy5zYi1zdGVwLWxhYmVsJyk7CiAgICBsYWJlbHMuZm9yRWFjaChmdW5jdGlvbihsYmwpIHsKICAgICAgdmFyIHMgPSBwYXJzZUludChsYmwuZ2V0QXR0cmlidXRlKCdkYXRhLXN0ZXAnKSk7CiAgICAgIGxibC5jbGFzc0xpc3QucmVtb3ZlKCdzYi1hY3RpdmUnLCAnc2ItZG9uZScpOwogICAgICBpZiAocyA9PT0gbikgbGJsLmNsYXNzTGlzdC5hZGQoJ3NiLWFjdGl2ZScpOwogICAgICBlbHNlIGlmIChzIDwgbikgbGJsLmNsYXNzTGlzdC5hZGQoJ3NiLWRvbmUnKTsKICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gY2xlYXJFcnJvcnMoKSB7CiAgICAkJCgnLnNiLWVycm9yJykuZm9yRWFjaChmdW5jdGlvbihlbCkgeyBlbC5jbGFzc0xpc3QucmVtb3ZlKCdzYi1lcnJvcicpOyB9KTsKICAgICQkKCcuc2ItZXJyb3ItbXNnJykuZm9yRWFjaChmdW5jdGlvbihlbCkgeyBlbC5yZW1vdmUoKTsgfSk7CiAgfQoKICBmdW5jdGlvbiBtYXJrRXJyb3IoZWwsIG1zZykgewogICAgZWwuY2xhc3NMaXN0LmFkZCgnc2ItZXJyb3InKTsKICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBzcGFuLmNsYXNzTmFtZSA9ICdzYi1lcnJvci1tc2cnOwogICAgc3Bhbi50ZXh0Q29udGVudCA9IG1zZzsKICAgIGVsLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoc3Bhbik7CiAgfQoKICBmdW5jdGlvbiB2YWwoaWQpIHsKICAgIHZhciBlbCA9IHJvb3QucXVlcnlTZWxlY3RvcignIycgKyBpZCk7CiAgICByZXR1cm4gZWwgPyBlbC52YWx1ZS50cmltKCkgOiAnJzsKICB9CgogIGZ1bmN0aW9uIG51bVZhbChpZCkgewogICAgdmFyIHYgPSB2YWwoaWQpOwogICAgcmV0dXJuIHYgPT09ICcnID8gJycgOiBwYXJzZUZsb2F0KHYpOwogIH0KCiAgZnVuY3Rpb24gZ2V0Q2hlY2tlZChjb250YWluZXIpIHsKICAgIHZhciByZXN1bHQgPSBbXTsKICAgIGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dDpjaGVja2VkJykuZm9yRWFjaChmdW5jdGlvbihjYikgewogICAgICByZXN1bHQucHVzaChjYi52YWx1ZSk7CiAgICB9KTsKICAgIHJldHVybiByZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBnZXRSYWRpbyhuYW1lKSB7CiAgICB2YXIgZWwgPSByb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IicgKyBuYW1lICsgJyJdOmNoZWNrZWQnKTsKICAgIHJldHVybiBlbCA\/IGVsLnZhbHVlIDogJyc7CiAgfQoKICBmdW5jdGlvbiB2YWxpZGF0ZVN0ZXAobikgewogICAgY2xlYXJFcnJvcnMoKTsKICAgIHZhciB2YWxpZCA9IHRydWU7CiAgICBpZiAobiA9PT0gMSkgewogICAgICBpZiAoIXZhbCgnc2JBcHBsaWNhdGlvbicpKSB7CiAgICAgICAgbWFya0Vycm9yKCQoJyNzYkFwcGxpY2F0aW9uJyksICdQbGVhc2Ugc2VsZWN0IGFuIGFwcGxpY2F0aW9uLicpOwogICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAobiA9PT0gMikgewogICAgICBpZiAoIXZhbCgnc2JHbGFzc1R5cGUnKSkgeyBtYXJrRXJyb3IoJCgnI3NiR2xhc3NUeXBlJyksICdSZXF1aXJlZC4nKTsgdmFsaWQgPSBmYWxzZTsgfQogICAgICBpZiAobnVtVmFsKCdzYlRoaWNrbmVzcycpID09PSAnJyB8fCBudW1WYWwoJ3NiVGhpY2tuZXNzJykgPD0gMCkgeyBtYXJrRXJyb3IoJCgnI3NiVGhpY2tuZXNzJyksICdFbnRlciBhIHZhbGlkIHRoaWNrbmVzcy4nKTsgdmFsaWQgPSBmYWxzZTsgfQogICAgICBpZiAobnVtVmFsKCdzYldpZHRoJykgPT09ICcnIHx8IG51bVZhbCgnc2JXaWR0aCcpIDw9IDApIHsgbWFya0Vycm9yKCQoJyNzYldpZHRoJyksICdFbnRlciB3aWR0aC4nKTsgdmFsaWQgPSBmYWxzZTsgfQogICAgICBpZiAobnVtVmFsKCdzYkhlaWdodCcpID09PSAnJyB8fCBudW1WYWwoJ3NiSGVpZ2h0JykgPD0gMCkgeyBtYXJrRXJyb3IoJCgnI3NiSGVpZ2h0JyksICdFbnRlciBoZWlnaHQuJyk7IHZhbGlkID0gZmFsc2U7IH0KICAgICAgaWYgKG51bVZhbCgnc2JRdWFudGl0eScpID09PSAnJyB8fCBudW1WYWwoJ3NiUXVhbnRpdHknKSA8PSAwKSB7IG1hcmtFcnJvcigkKCcjc2JRdWFudGl0eScpLCAnRW50ZXIgcXVhbnRpdHkuJyk7IHZhbGlkID0gZmFsc2U7IH0KICAgIH0gZWxzZSBpZiAobiA9PT0gMykgewogICAgICBpZiAoIXZhbCgnc2JCZW5kVHlwZScpKSB7IG1hcmtFcnJvcigkKCcjc2JCZW5kVHlwZScpLCAnUmVxdWlyZWQuJyk7IHZhbGlkID0gZmFsc2U7IH0KICAgICAgaWYgKG51bVZhbCgnc2JSYWRpdXMnKSA9PT0gJycgfHwgbnVtVmFsKCdzYlJhZGl1cycpIDw9IDApIHsgbWFya0Vycm9yKCQoJyNzYlJhZGl1cycpLCAnRW50ZXIgYSB2YWxpZCByYWRpdXMuJyk7IHZhbGlkID0gZmFsc2U7IH0KICAgICAgaWYgKCFnZXRSYWRpbygnc2JDdXJ2ZURpcicpKSB7CiAgICAgICAgdmFyIHJnID0gcm9vdC5xdWVyeVNlbGVjdG9yKCcuc2ItcmFkaW8tZ3JvdXAnKTsKICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIHNwYW4uY2xhc3NOYW1lID0gJ3NiLWVycm9yLW1zZyc7CiAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9ICdTZWxlY3QgYSBkaXJlY3Rpb24uJzsKICAgICAgICByZy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHNwYW4pOwogICAgICAgIHZhbGlkID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiB2YWxpZDsKICB9CgogIGZ1bmN0aW9uIHJlY29tbWVuZEJlbmRpbmdNZXRob2QoZGF0YSkgewogICAgdmFyIHIgPSBwYXJzZUZsb2F0KGRhdGEucmFkaXVzKTsKICAgIHZhciB0ID0gcGFyc2VGbG9hdChkYXRhLnRoaWNrbmVzcyk7CiAgICB2YXIgYmVuZCA9IGRhdGEuYmVuZFR5cGU7CiAgICB2YXIgZ2xhc3MgPSBkYXRhLmdsYXNzVHlwZTsKCiAgICBpZiAoZ2xhc3MgPT09ICdBbHVtaW5vc2lsaWNhdGUnICYmIHQgPD0gMS41KSByZXR1cm4gJ1ByZWNpc2lvbiBDTkMgaG90IGJlbmRpbmcnOwogICAgaWYgKGJlbmQgPT09ICczRCBjdXJ2ZWQnKSByZXR1cm4gJ0NOQyAzRCBob3QgYmVuZGluZyB3aXRoIG11bHRpLWF4aXMgbW9sZCc7CiAgICBpZiAoYmVuZCA9PT0gJ0NvbXBvdW5kJykgcmV0dXJuICdHcmF2aXR5IHNsdW1waW5nIHdpdGggY29tcG91bmQgbW9sZCc7CiAgICBpZiAociA8IDUwKSByZXR1cm4gJ0NOQyBwcmVjaXNpb24gaG90IGJlbmRpbmcnOwogICAgaWYgKHIgPCAyMDApIHJldHVybiAnSG90IGJlbmRpbmcgd2l0aCBzdGVlbCBtb2xkJzsKICAgIGlmIChyID49IDIwMCAmJiB0IDw9IDYpIHJldHVybiAnR3Jhdml0eSBiZW5kaW5nJzsKICAgIHJldHVybiAnU3RhbmRhcmQgaG90IGJlbmRpbmcnOwogIH0KCiAgZnVuY3Rpb24gZXN0aW1hdGVMZWFkVGltZShxdHkpIHsKICAgIHZhciBxID0gcGFyc2VJbnQocXR5KTsKICAgIGlmIChxIDw9IDUwKSByZXR1cm4gJzEwIFx1MjAxMyAxNSBidXNpbmVzcyBkYXlzJzsKICAgIGlmIChxIDw9IDUwMCkgcmV0dXJuICcxNSBcdTIwMTMgMjUgYnVzaW5lc3MgZGF5cyc7CiAgICBpZiAocSA8PSA1MDAwKSByZXR1cm4gJzI1IFx1MjAxMyA0MCBidXNpbmVzcyBkYXlzJzsKICAgIHJldHVybiAnNDAgXHUyMDEzIDYwIGJ1c2luZXNzIGRheXMgKGJhdGNoIHNjaGVkdWxpbmcpJzsKICB9CgogIGZ1bmN0aW9uIGdlbmVyYXRlUmVzdWx0KCkgewogICAgaWYgKCF2YWxpZGF0ZVN0ZXAoNSkpIHJldHVybjsKCiAgICB2YXIgZGF0YSA9IHsKICAgICAgYXBwbGljYXRpb246IHZhbCgnc2JBcHBsaWNhdGlvbicpLAogICAgICBkZXNjcmlwdGlvbjogdmFsKCdzYkRlc2NyaXB0aW9uJykgfHwgJ1x1MjAxNCcsCiAgICAgIGdsYXNzVHlwZTogdmFsKCdzYkdsYXNzVHlwZScpLAogICAgICB0aGlja25lc3M6IHZhbCgnc2JUaGlja25lc3MnKSwKICAgICAgd2lkdGg6IHZhbCgnc2JXaWR0aCcpLAogICAgICBoZWlnaHQ6IHZhbCgnc2JIZWlnaHQnKSwKICAgICAgcXVhbnRpdHk6IHZhbCgnc2JRdWFudGl0eScpLAogICAgICBiZW5kVHlwZTogdmFsKCdzYkJlbmRUeXBlJyksCiAgICAgIHJhZGl1czogdmFsKCdzYlJhZGl1cycpLAogICAgICBjdXJ2ZURpcjogZ2V0UmFkaW8oJ3NiQ3VydmVEaXInKSwKICAgICAgdGVtcGVyaW5nOiB2YWwoJ3NiVGVtcGVyaW5nJyksCiAgICAgIGxhbWluYXRpb246IHZhbCgnc2JMYW1pbmF0aW9uJyksCiAgICAgIGNvYXRpbmdzOiBnZXRDaGVja2VkKHJvb3QucXVlcnlTZWxlY3RvcignLnNiLWNoZWNrYm94LWdyb3VwJykpLAogICAgICBlZGdlOiB2YWwoJ3NiRWRnZScpLAogICAgICBwcmludGluZzogdmFsKCdzYlByaW50aW5nJyksCiAgICAgIHN0YW5kYXJkczogZ2V0Q2hlY2tlZChyb290LnF1ZXJ5U2VsZWN0b3IoJy5zYi1zdGFuZGFyZHMtZ3JvdXAnKSkKICAgIH07CgogICAgdmFyIG1ldGhvZCA9IHJlY29tbWVuZEJlbmRpbmdNZXRob2QoZGF0YSk7CiAgICB2YXIgbGVhZFRpbWUgPSBlc3RpbWF0ZUxlYWRUaW1lKGRhdGEucXVhbnRpdHkpOwogICAgdmFyIGNvYXRTdHIgPSBkYXRhLmNvYXRpbmdzLmxlbmd0aCA+IDAgPyBkYXRhLmNvYXRpbmdzLmpvaW4oJywgJykgOiAnTm9uZSc7CiAgICB2YXIgc3RkU3RyID0gZGF0YS5zdGFuZGFyZHMubGVuZ3RoID4gMCA\/IGRhdGEuc3RhbmRhcmRzLmpvaW4oJywgJykgOiAnTm9uZSBzcGVjaWZpZWQnOwoKICAgIHZhciBodG1sID0gJzx0YWJsZT4nOwogICAgaHRtbCArPSAnPHRyIGNsYXNzPSJzYi1zZWN0aW9uLWhlYWQiPjx0ZCBjb2xzcGFuPSIyIj5BcHBsaWNhdGlvbjwvdGQ+PC90cj4nOwogICAgaHRtbCArPSAnPHRyPjx0aD5JbmR1c3RyeTwvdGg+PHRkIGNsYXNzPSJzYi10ZXh0LXZhbCI+JyArIGRhdGEuYXBwbGljYXRpb24gKyAnPC90ZD48L3RyPic7CiAgICBodG1sICs9ICc8dHI+PHRoPkRlc2NyaXB0aW9uPC90aD48dGQgY2xhc3M9InNiLXRleHQtdmFsIj4nICsgZGF0YS5kZXNjcmlwdGlvbiArICc8L3RkPjwvdHI+JzsKCiAgICBodG1sICs9ICc8dHIgY2xhc3M9InNiLXNlY3Rpb24taGVhZCI+PHRkIGNvbHNwYW49IjIiPkdsYXNzIENvbmZpZ3VyYXRpb248L3RkPjwvdHI+JzsKICAgIGh0bWwgKz0gJzx0cj48dGg+R2xhc3MgVHlwZTwvdGg+PHRkIGNsYXNzPSJzYi10ZXh0LXZhbCI+JyArIGRhdGEuZ2xhc3NUeXBlICsgJzwvdGQ+PC90cj4nOwogICAgaHRtbCArPSAnPHRyPjx0aD5UaGlja25lc3M8L3RoPjx0ZD4nICsgZGF0YS50aGlja25lc3MgKyAnIG1tPC90ZD48L3RyPic7CiAgICBodG1sICs9ICc8dHI+PHRoPkRpbWVuc2lvbnMgKFcgXHUwMGQ3IEgpPC90aD48dGQ+JyArIGRhdGEud2lkdGggKyAnIFx1MDBkNyAnICsgZGF0YS5oZWlnaHQgKyAnIG1tPC90ZD48L3RyPic7CiAgICBodG1sICs9ICc8dHI+PHRoPlF1YW50aXR5PC90aD48dGQ+JyArIHBhcnNlSW50KGRhdGEucXVhbnRpdHkpLnRvTG9jYWxlU3RyaW5nKCkgKyAnIHBjczwvdGQ+PC90cj4nOwoKICAgIGh0bWwgKz0gJzx0ciBjbGFzcz0ic2Itc2VjdGlvbi1oZWFkIj48dGQgY29sc3Bhbj0iMiI+Q3VydmF0dXJlPC90ZD48L3RyPic7CiAgICBodG1sICs9ICc8dHI+PHRoPkJlbmQgVHlwZTwvdGg+PHRkIGNsYXNzPSJzYi10ZXh0LXZhbCI+JyArIGRhdGEuYmVuZFR5cGUgKyAnPC90ZD48L3RyPic7CiAgICBodG1sICs9ICc8dHI+PHRoPk1pbmltdW0gUmFkaXVzPC90aD48dGQ+JyArIGRhdGEucmFkaXVzICsgJyBtbTwvdGQ+PC90cj4nOwogICAgaHRtbCArPSAnPHRyPjx0aD5EaXJlY3Rpb248L3RoPjx0ZCBjbGFzcz0ic2ItdGV4dC12YWwiPicgKyBkYXRhLmN1cnZlRGlyICsgJzwvdGQ+PC90cj4nOwoKICAgIGh0bWwgKz0gJzx0ciBjbGFzcz0ic2Itc2VjdGlvbi1oZWFkIj48dGQgY29sc3Bhbj0iMiI+UHJvY2Vzc2luZzwvdGQ+PC90cj4nOwogICAgaHRtbCArPSAnPHRyPjx0aD5UZW1wZXJpbmc8L3RoPjx0ZCBjbGFzcz0ic2ItdGV4dC12YWwiPicgKyBkYXRhLnRlbXBlcmluZyArICc8L3RkPjwvdHI+JzsKICAgIGh0bWwgKz0gJzx0cj48dGg+TGFtaW5hdGlvbjwvdGg+PHRkIGNsYXNzPSJzYi10ZXh0LXZhbCI+JyArIGRhdGEubGFtaW5hdGlvbiArICc8L3RkPjwvdHI+JzsKICAgIGh0bWwgKz0gJzx0cj48dGg+Q29hdGluZzwvdGg+PHRkIGNsYXNzPSJzYi10ZXh0LXZhbCI+JyArIGNvYXRTdHIgKyAnPC90ZD48L3RyPic7CiAgICBodG1sICs9ICc8dHI+PHRoPkVkZ2UgV29yazwvdGg+PHRkIGNsYXNzPSJzYi10ZXh0LXZhbCI+JyArIGRhdGEuZWRnZSArICc8L3RkPjwvdHI+JzsKICAgIGh0bWwgKz0gJzx0cj48dGg+UHJpbnRpbmc8L3RoPjx0ZCBjbGFzcz0ic2ItdGV4dC12YWwiPicgKyBkYXRhLnByaW50aW5nICsgJzwvdGQ+PC90cj4nOwoKICAgIGh0bWwgKz0gJzx0ciBjbGFzcz0ic2Itc2VjdGlvbi1oZWFkIj48dGQgY29sc3Bhbj0iMiI+U3RhbmRhcmRzICZhbXA7IFF1YWxpdHk8L3RkPjwvdHI+JzsKICAgIGh0bWwgKz0gJzx0cj48dGg+UmVxdWlyZWQgU3RhbmRhcmRzPC90aD48dGQgY2xhc3M9InNiLXRleHQtdmFsIj4nICsgc3RkU3RyICsgJzwvdGQ+PC90cj4nOwoKICAgIGh0bWwgKz0gJzx0ciBjbGFzcz0ic2Itc2VjdGlvbi1oZWFkIj48dGQgY29sc3Bhbj0iMiI+U2Fpd2VpIFJlY29tbWVuZGF0aW9uczwvdGQ+PC90cj4nOwogICAgaHRtbCArPSAnPHRyIGNsYXNzPSJzYi1oaWdobGlnaHQtcm93Ij48dGg+QmVuZGluZyBNZXRob2Q8L3RoPjx0ZCBjbGFzcz0ic2ItdGV4dC12YWwiPicgKyBtZXRob2QgKyAnPC90ZD48L3RyPic7CiAgICBodG1sICs9ICc8dHIgY2xhc3M9InNiLWhpZ2hsaWdodC1yb3ciPjx0aD5Fc3QuIExlYWQgVGltZTwvdGg+PHRkIGNsYXNzPSJzYi10ZXh0LXZhbCI+JyArIGxlYWRUaW1lICsgJzwvdGQ+PC90cj4nOwogICAgaHRtbCArPSAnPC90YWJsZT4nOwoKICAgICQoJyNzYlJlc3VsdEJveCcpLmlubmVySFRNTCA9IGh0bWw7CgogICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gdG90YWxTdGVwczsgaSsrKSB7CiAgICAgICQoJyNzYlN0ZXAnICsgaSkuY2xhc3NMaXN0LmFkZCgnc2ItaGlkZGVuJyk7CiAgICB9CiAgICAkKCcjc2JSZXN1bHQnKS5jbGFzc0xpc3QucmVtb3ZlKCdzYi1oaWRkZW4nKTsKICAgICQoJyNzYlByb2dyZXNzRmlsbCcpLnN0eWxlLndpZHRoID0gJzEwMCUnOwogICAgJCQoJy5zYi1zdGVwLWxhYmVsJykuZm9yRWFjaChmdW5jdGlvbihsYmwpIHsKICAgICAgbGJsLmNsYXNzTGlzdC5yZW1vdmUoJ3NiLWFjdGl2ZScpOwogICAgICBsYmwuY2xhc3NMaXN0LmFkZCgnc2ItZG9uZScpOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBjb3B5U3BlYygpIHsKICAgIHZhciBib3ggPSAkKCcjc2JSZXN1bHRCb3gnKTsKICAgIHZhciByb3dzID0gYm94LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RyJyk7CiAgICB2YXIgdGV4dCA9ICdDVVJWRUQgR0xBU1MgU1BFQ0lGSUNBVElPTiBcdTIwMTQgU2Fpd2VpIEdsYXNzIENvLiwgTHRkLlxuJzsKICAgIHRleHQgKz0gJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbic7CiAgICByb3dzLmZvckVhY2goZnVuY3Rpb24odHIpIHsKICAgICAgdmFyIGNlbGxzID0gdHIucXVlcnlTZWxlY3RvckFsbCgndGgsIHRkJyk7CiAgICAgIGlmICh0ci5jbGFzc0xpc3QuY29udGFpbnMoJ3NiLXNlY3Rpb24taGVhZCcpKSB7CiAgICAgICAgdGV4dCArPSAnXG4nICsgY2VsbHNbMF0udGV4dENvbnRlbnQudG9VcHBlckNhc2UoKSArICdcbic7CiAgICAgICAgdGV4dCArPSAnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJzsKICAgICAgfSBlbHNlIGlmIChjZWxscy5sZW5ndGggPT09IDIpIHsKICAgICAgICB2YXIgbGFiZWwgPSBjZWxsc1swXS50ZXh0Q29udGVudDsKICAgICAgICB2YXIgdmFsdWUgPSBjZWxsc1sxXS50ZXh0Q29udGVudDsKICAgICAgICB0ZXh0ICs9IGxhYmVsICsgJzogJyArIHZhbHVlICsgJ1xuJzsKICAgICAgfQogICAgfSk7CiAgICB0ZXh0ICs9ICdcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09JzsKICAgIHRleHQgKz0gJ1xuR2VuZXJhdGVkIGF0IHNhaXdlaWdsYXNzLmNvbSB8ICcgKyBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTsKCiAgICBpZiAobmF2aWdhdG9yLmNsaXBib2FyZCAmJiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCkgewogICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIHNob3dDb3BpZWQoKTsKICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICB2YXIgdGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpOwogICAgICB0YS52YWx1ZSA9IHRleHQ7CiAgICAgIHRhLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJzsKICAgICAgdGEuc3R5bGUubGVmdCA9ICctOTk5OXB4JzsKICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0YSk7CiAgICAgIHRhLnNlbGVjdCgpOwogICAgICB0cnkgeyBkb2N1bWVudC5leGVjQ29tbWFuZCgnY29weScpOyBzaG93Q29waWVkKCk7IH0gY2F0Y2goZSkge30KICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0YSk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBzaG93Q29waWVkKCkgewogICAgdmFyIGJ0biA9ICQoJyNzYkNvcHknKTsKICAgIGJ0bi50ZXh0Q29udGVudCA9ICdDb3BpZWQhJzsKICAgIGJ0bi5jbGFzc0xpc3QuYWRkKCdzYi1jb3BpZWQnKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgIGJ0bi50ZXh0Q29udGVudCA9ICdDb3B5IHRvIENsaXBib2FyZCc7CiAgICAgIGJ0bi5jbGFzc0xpc3QucmVtb3ZlKCdzYi1jb3BpZWQnKTsKICAgIH0sIDIwMDApOwogIH0KCiAgJCgnI3NiTmV4dDEnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBpZiAodmFsaWRhdGVTdGVwKDEpKSBzaG93U3RlcCgyKTsgfSk7CiAgJCgnI3NiTmV4dDInKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBpZiAodmFsaWRhdGVTdGVwKDIpKSBzaG93U3RlcCgzKTsgfSk7CiAgJCgnI3NiTmV4dDMnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBpZiAodmFsaWRhdGVTdGVwKDMpKSBzaG93U3RlcCg0KTsgfSk7CiAgJCgnI3NiTmV4dDQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBzaG93U3RlcCg1KTsgfSk7CiAgJCgnI3NiQmFjazInKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBjbGVhckVycm9ycygpOyBzaG93U3RlcCgxKTsgfSk7CiAgJCgnI3NiQmFjazMnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBjbGVhckVycm9ycygpOyBzaG93U3RlcCgyKTsgfSk7CiAgJCgnI3NiQmFjazQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBjbGVhckVycm9ycygpOyBzaG93U3RlcCgzKTsgfSk7CiAgJCgnI3NiQmFjazUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeyBjbGVhckVycm9ycygpOyBzaG93U3RlcCg0KTsgfSk7CiAgJCgnI3NiR2VuZXJhdGUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGdlbmVyYXRlUmVzdWx0KTsKICAkKCcjc2JDb3B5JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjb3B5U3BlYyk7CiAgJCgnI3NiUmVzdGFydCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICBjbGVhckVycm9ycygpOwogICAgc2hvd1N0ZXAoMSk7CiAgfSk7CgogIHNob3dTdGVwKDEpOwp9KSgpOwo=\"><\/div>\n  <script>\n  var _sb=String.fromCharCode;var _sbd=document.getElementById(_sb(115,98,45,106,115,45,112,97,121,108,111,97,100));if(_sbd){new Function(atob(_sbd.getAttribute(_sb(100,97,116,97,45,115,98))))();}\n  <\/script>\n<\/section>\n\n<style>\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;600&display=swap');\n\n  #bx-spec-builder-v1 {\n    max-width: 1000px !important;\n    margin: 0 auto !important;\n    padding: 40px 24px !important;\n    font-family: inherit !important;\n    color: #1a1a1a !important;\n    line-height: 1.6 !important;\n    box-sizing: border-box !important;\n  }\n  #bx-spec-builder-v1 *,\n  #bx-spec-builder-v1 *::before,\n  #bx-spec-builder-v1 *::after {\n    box-sizing: border-box !important;\n  }\n  #bx-spec-builder-v1 h2 {\n    font-family: inherit !important;\n    font-weight: 700 !important;\n    color: #304890 !important;\n    margin: 0 0 8px 0 !important;\n    line-height: 1.25 !important;\n  }\n  #bx-spec-builder-v1 h3 {\n    font-family: inherit !important;\n    font-weight: 700 !important;\n    font-size: 1.2rem !important;\n    color: #304890 !important;\n    margin: 0 0 24px 0 !important;\n    padding-bottom: 12px !important;\n    border-bottom: 2px solid #e0e6f0 !important;\n  }\n  #bx-spec-builder-v1 .sb-subtitle {\n    font-size: 1rem !important;\n    color: #555 !important;\n    margin: 0 0 32px 0 !important;\n  }\n  #bx-spec-builder-v1 .sb-progress-bar {\n    margin: 0 0 36px 0 !important;\n  }\n  #bx-spec-builder-v1 .sb-progress-track {\n    width: 100% !important;\n    height: 6px !important;\n    background: #e0e6f0 !important;\n    border-radius: 3px !important;\n    overflow: hidden !important;\n    margin-bottom: 10px !important;\n  }\n  #bx-spec-builder-v1 .sb-progress-fill {\n    width: 20% !important;\n    height: 100% !important;\n    background: #304890 !important;\n    border-radius: 3px !important;\n    transition: width 0.35s ease !important;\n  }\n  #bx-spec-builder-v1 .sb-progress-labels {\n    display: flex !important;\n    justify-content: space-between !important;\n    gap: 4px !important;\n  }\n  #bx-spec-builder-v1 .sb-step-label {\n    font-size: 0.78rem !important;\n    color: #999 !important;\n    transition: color 0.2s !important;\n    white-space: nowrap !important;\n  }\n  #bx-spec-builder-v1 .sb-step-label.sb-active {\n    color: #304890 !important;\n    font-weight: 600 !important;\n  }\n  #bx-spec-builder-v1 .sb-step-label.sb-done {\n    color: #555 !important;\n  }\n  #bx-spec-builder-v1 .sb-step {\n    animation: sbFadeIn 0.3s ease !important;\n  }\n  #bx-spec-builder-v1 .sb-hidden {\n    display: none !important;\n  }\n  @keyframes sbFadeIn {\n    from { opacity: 0; transform: translateY(8px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n  #bx-spec-builder-v1 .sb-field {\n    margin-bottom: 20px !important;\n  }\n  #bx-spec-builder-v1 .sb-field > label {\n    display: block !important;\n    font-size: 0.9rem !important;\n    font-weight: 600 !important;\n    color: #333 !important;\n    margin-bottom: 6px !important;\n  }\n  #bx-spec-builder-v1 input[type=\"text\"],\n  #bx-spec-builder-v1 input[type=\"number\"] {\n    width: 100% !important;\n    height: 44px !important;\n    padding: 0 14px !important;\n    border: 1px solid #ccc !important;\n    border-radius: 6px !important;\n    font-size: 0.95rem !important;\n    font-family: inherit !important;\n    color: #1a1a1a !important;\n    background: #fff !important;\n    transition: border-color 0.2s !important;\n  }\n  #bx-spec-builder-v1 input[type=\"text\"]:focus,\n  #bx-spec-builder-v1 input[type=\"number\"]:focus {\n    outline: none !important;\n    border-color: #304890 !important;\n    box-shadow: 0 0 0 3px rgba(48,72,144,0.12) !important;\n  }\n  #bx-spec-builder-v1 .sb-select-wrap {\n    position: relative !important;\n  }\n  #bx-spec-builder-v1 .sb-select-wrap::after {\n    content: \"\" !important;\n    position: absolute !important;\n    right: 14px !important;\n    top: 50% !important;\n    transform: translateY(-50%) !important;\n    width: 0 !important;\n    height: 0 !important;\n    border-left: 5px solid transparent !important;\n    border-right: 5px solid transparent !important;\n    border-top: 6px solid #666 !important;\n    pointer-events: none !important;\n  }\n  #bx-spec-builder-v1 select {\n    width: 100% !important;\n    height: 44px !important;\n    padding: 0 36px 0 14px !important;\n    border: 1px solid #ccc !important;\n    border-radius: 6px !important;\n    font-size: 0.95rem !important;\n    font-family: inherit !important;\n    color: #1a1a1a !important;\n    background: #fff !important;\n    appearance: none !important;\n    -webkit-appearance: none !important;\n    cursor: pointer !important;\n    transition: border-color 0.2s !important;\n  }\n  #bx-spec-builder-v1 select:focus {\n    outline: none !important;\n    border-color: #304890 !important;\n    box-shadow: 0 0 0 3px rgba(48,72,144,0.12) !important;\n  }\n  #bx-spec-builder-v1 select option {\n    color: #000018 !important;\n    background: #FFFFFF !important;\n  }\n  #bx-spec-builder-v1 .sb-row {\n    display: flex !important;\n    gap: 16px !important;\n  }\n  #bx-spec-builder-v1 .sb-half {\n    flex: 1 !important;\n  }\n  #bx-spec-builder-v1 .sb-radio-group,\n  #bx-spec-builder-v1 .sb-checkbox-group {\n    display: flex !important;\n    flex-wrap: wrap !important;\n    gap: 10px !important;\n  }\n  #bx-spec-builder-v1 .sb-radio-option,\n  #bx-spec-builder-v1 .sb-check-option {\n    display: flex !important;\n    align-items: center !important;\n    gap: 6px !important;\n    padding: 8px 14px !important;\n    border: 1px solid #ddd !important;\n    border-radius: 6px !important;\n    cursor: pointer !important;\n    font-size: 0.9rem !important;\n    transition: border-color 0.2s, background 0.2s !important;\n    user-select: none !important;\n    color: #000018 !important;\n    background: #FFFFFF !important;\n  }\n  #bx-spec-builder-v1 .sb-radio-option:hover,\n  #bx-spec-builder-v1 .sb-check-option:hover {\n    border-color: #304890 !important;\n    background: #f4f6fc !important;\n  }\n  #bx-spec-builder-v1 .sb-standards-group {\n    flex-direction: column !important;\n  }\n  #bx-spec-builder-v1 .sb-nav {\n    display: flex !important;\n    justify-content: space-between !important;\n    align-items: center !important;\n    margin-top: 28px !important;\n    padding-top: 20px !important;\n    border-top: 1px solid #eee !important;\n  }\n  #bx-spec-builder-v1 .sb-btn {\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    height: 44px !important;\n    padding: 0 24px !important;\n    border: none !important;\n    border-radius: 6px !important;\n    font-size: 0.95rem !important;\n    font-weight: 600 !important;\n    font-family: inherit !important;\n    cursor: pointer !important;\n    transition: background 0.2s, transform 0.1s !important;\n  }\n  #bx-spec-builder-v1 .sb-btn:active {\n    transform: scale(0.97) !important;\n  }\n  #bx-spec-builder-v1 .sb-btn-next,\n  #bx-spec-builder-v1 .sb-btn-generate {\n    background: #304890 !important;\n    color: #fff !important;\n  }\n  #bx-spec-builder-v1 .sb-btn-next:hover,\n  #bx-spec-builder-v1 .sb-btn-generate:hover {\n    background: #1860A8 !important;\n  }\n  #bx-spec-builder-v1 .sb-btn-back {\n    background: #e8ecf4 !important;\n    color: #304890 !important;\n  }\n  #bx-spec-builder-v1 .sb-btn-back:hover {\n    background: #d4dbe8 !important;\n  }\n  #bx-spec-builder-v1 .sb-btn-copy {\n    background: #304890 !important;\n    color: #fff !important;\n  }\n  #bx-spec-builder-v1 .sb-btn-copy:hover {\n    background: #1860A8 !important;\n  }\n  #bx-spec-builder-v1 .sb-btn-copy.sb-copied {\n    background: #2e7d32 !important;\n  }\n  #bx-spec-builder-v1 .sb-result-box {\n    background: #f8f9fc !important;\n    border: 1px solid #d4dbe8 !important;\n    border-radius: 8px !important;\n    padding: 24px !important;\n    margin-bottom: 20px !important;\n    overflow-x: auto !important;\n  }\n  #bx-spec-builder-v1 .sb-result-box table {\n    width: 100% !important;\n    border-collapse: collapse !important;\n    font-size: 0.9rem !important;\n  }\n  #bx-spec-builder-v1 .sb-result-box th,\n  #bx-spec-builder-v1 .sb-result-box td {\n    padding: 10px 14px !important;\n    text-align: left !important;\n    border-bottom: 1px solid #e0e6f0 !important;\n    vertical-align: top !important;\n  }\n  #bx-spec-builder-v1 .sb-result-box th {\n    font-weight: 600 !important;\n    color: #304890 !important;\n    width: 38% !important;\n    background: transparent !important;\n  }\n  #bx-spec-builder-v1 .sb-result-box td {\n    color: #333 !important;\n    font-family: 'IBM Plex Mono', monospace !important;\n  }\n  #bx-spec-builder-v1 .sb-result-box td.sb-text-val {\n    font-family: inherit !important;\n  }\n  #bx-spec-builder-v1 .sb-result-box .sb-section-head {\n    background: #edf0f8 !important;\n    font-weight: 700 !important;\n    color: #304890 !important;\n    font-size: 0.85rem !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.04em !important;\n  }\n  #bx-spec-builder-v1 .sb-result-box .sb-section-head td {\n    font-family: inherit !important;\n    font-weight: 700 !important;\n    color: #304890 !important;\n  }\n  #bx-spec-builder-v1 .sb-result-box .sb-highlight-row td {\n    background: #e8f5e9 !important;\n    font-weight: 600 !important;\n  }\n  #bx-spec-builder-v1 .sb-result-actions {\n    display: flex !important;\n    gap: 12px !important;\n    margin-bottom: 28px !important;\n  }\n  #bx-spec-builder-v1 .sb-cta-box {\n    background: linear-gradient(135deg, #304890 0%, #1860A8 100%) !important;\n    border-radius: 10px !important;\n    padding: 28px 32px !important;\n    text-align: center !important;\n  }\n  #bx-spec-builder-v1 .sb-cta-box p {\n    color: rgba(255,255,255,0.9) !important;\n    font-size: 1rem !important;\n    margin: 0 0 16px 0 !important;\n  }\n  #bx-spec-builder-v1 .sb-cta-link {\n    display: inline-flex !important;\n    align-items: center !important;\n    justify-content: center !important;\n    height: 48px !important;\n    padding: 0 32px !important;\n    background: #fff !important;\n    color: #304890 !important;\n    font-weight: 700 !important;\n    font-size: 1rem !important;\n    border-radius: 6px !important;\n    text-decoration: none !important;\n    transition: background 0.2s, transform 0.1s !important;\n  }\n  #bx-spec-builder-v1 .sb-cta-link:hover {\n    background: #f0f3fa !important;\n    transform: translateY(-1px) !important;\n  }\n  #bx-spec-builder-v1 .sb-error {\n    border-color: #c62828 !important;\n    box-shadow: 0 0 0 3px rgba(198,40,40,0.12) !important;\n  }\n  #bx-spec-builder-v1 .sb-error-msg {\n    color: #c62828 !important;\n    font-size: 0.82rem !important;\n    margin-top: 4px !important;\n  }\n  @media (max-width: 860px) {\n    #bx-spec-builder-v1 {\n      padding: 24px 16px !important;\n    }\n    #bx-spec-builder-v1 .sb-row {\n      flex-direction: column !important;\n      gap: 0 !important;\n    }\n    #bx-spec-builder-v1 .sb-progress-labels {\n      gap: 2px !important;\n    }\n    #bx-spec-builder-v1 .sb-step-label {\n      font-size: 0.68rem !important;\n    }\n    #bx-spec-builder-v1 .sb-result-box {\n      padding: 16px !important;\n    }\n    #bx-spec-builder-v1 .sb-result-box th {\n      width: 42% !important;\n    }\n    #bx-spec-builder-v1 .sb-cta-box {\n      padding: 24px 20px !important;\n    }\n    #bx-spec-builder-v1 .sb-result-actions {\n      flex-direction: column !important;\n    }\n  }\n<\/style>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Curved Glass Specification Builder Build your curved glass spec sheet step by step. Generate an RFQ-ready summary in under 2 minutes. 1. Application 2. Glass 3. Curvature 4. Processing 5. Standards Step 1 \/ 5 &mdash; Application Industry \/ Application Select application&hellip;ElectronicsAutomotiveArchitectureMedicalOther Brief Description Next &rarr; Step 2 \/ 5 &mdash; Glass Configuration Glass Type [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":2219,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-2249","page","type-page","status-publish","hentry"],"blocksy_meta":{"has_hero_section":"disabled","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/2249","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=2249"}],"version-history":[{"count":0,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/2249\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/pages\/2219"}],"wp:attachment":[{"href":"https:\/\/saiweiglass.com\/es\/wp-json\/wp\/v2\/media?parent=2249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}