{"id":1309,"date":"2026-06-14T16:26:27","date_gmt":"2026-06-14T16:26:27","guid":{"rendered":"https:\/\/360bizbrokers.com\/?page_id=1309"},"modified":"2026-06-14T16:29:12","modified_gmt":"2026-06-14T16:29:12","slug":"cim-generator-v2","status":"publish","type":"page","link":"https:\/\/360bizbrokers.com\/pt\/cim-generator-v2\/","title":{"rendered":"CIM Generator V2"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1309\" class=\"elementor elementor-1309\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0bd52ab e-flex e-con-boxed e-con e-parent\" data-id=\"0bd52ab\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-618cf96 elementor-widget elementor-widget-html\" data-id=\"618cf96\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>CIM Generator Pro\u2122 \u2014 360 Biz Brokers<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600;700&family=Montserrat:wght@300;400;500;600;700&family=Source+Sans+Pro:wght@300;400;600;700&display=swap\" rel=\"stylesheet\">\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js@4.4.0\/dist\/chart.umd.min.js\"><\/script>\n<style>\n\/* \u2500\u2500\u2500 RESET & BASE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n*{box-sizing:border-box;margin:0;padding:0}\nbody{font-family:'Inter',sans-serif;background:#f1f3f6;color:#1a1a2e;min-height:100vh;overflow:hidden}\n\n\/* \u2500\u2500\u2500 APP HEADER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#appHeader{background:#0f1117;color:#fff;height:56px;display:flex;align-items:center;padding:0 14px;gap:10px;z-index:100;position:fixed;top:0;left:0;right:0;box-shadow:0 2px 12px rgba(0,0,0,.4);flex-wrap:nowrap;overflow:hidden}\n#appHeader .logo{font-family:'Playfair Display',serif;font-size:.95rem;font-weight:700;color:#c9a84c;white-space:nowrap;letter-spacing:.02em;flex-shrink:0}\n#appHeader .logo span{color:#fff;font-weight:400}\n.header-sep{width:1px;height:28px;background:rgba(255,255,255,.15);flex-shrink:0}\n.template-pills{display:flex;gap:4px;flex-shrink:0}\n.tpill{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.7);padding:4px 10px;border-radius:20px;font-size:.69rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}\n.tpill.active{background:#c9a84c;border-color:#c9a84c;color:#000}\n.tpill:hover:not(.active){background:rgba(255,255,255,.12);color:#fff}\n#toneSelect{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.85);padding:4px 9px;border-radius:6px;font-size:.71rem;cursor:pointer;font-family:inherit;flex-shrink:0}\n#toneSelect option{background:#1a1a2e;color:#fff}\n.header-spacer{flex:1;min-width:0}\n.hbtn{padding:5px 11px;border-radius:6px;font-size:.7rem;font-weight:600;cursor:pointer;border:none;display:flex;align-items:center;gap:4px;transition:all .2s;white-space:nowrap;flex-shrink:0}\n.hbtn-pdf{background:#c9a84c;color:#000}\n.hbtn-pdf:hover{background:#d4b55e}\n.hbtn-word{background:rgba(47,107,190,.8);color:#fff;border:1px solid rgba(47,107,190,.5)}\n.hbtn-word:hover{background:rgba(47,107,190,1)}\n.hbtn-html{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2)}\n.hbtn-html:hover{background:rgba(255,255,255,.18)}\n.hbtn-new{background:rgba(255,255,255,.06);color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.12);font-size:.67rem}\n.hbtn-new:hover{background:rgba(255,255,255,.12);color:#fff}\n\n\/* \u2500\u2500\u2500 LAYOUT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#appBody{display:flex;height:calc(100vh - 56px);margin-top:56px;overflow:hidden}\n\n\/* \u2500\u2500\u2500 FORM PANEL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#formPanel{width:340px;flex-shrink:0;display:flex;flex-direction:column;background:#fff;border-right:1px solid #e2e6ec;overflow:hidden}\n#sectionNav{background:#f8f9fb;border-bottom:1px solid #e2e6ec;padding:7px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex-shrink:0;max-height:270px}\n.snav-btn{display:flex;align-items:center;gap:7px;padding:6px 9px;border-radius:7px;border:none;background:none;cursor:pointer;font-size:.74rem;font-weight:500;color:#555;text-align:left;transition:all .15s;width:100%}\n.snav-btn:hover{background:#eef1f6;color:#1a1a2e}\n.snav-btn.active{background:#1a1a2e;color:#fff}\n.snav-btn .sicon{font-size:.8rem;width:17px;text-align:center}\n.snav-btn .sdot{width:6px;height:6px;border-radius:50%;background:#ddd;margin-left:auto;flex-shrink:0}\n.snav-btn.filled .sdot{background:#4caf50}\n.snav-btn.active .sdot{background:rgba(255,255,255,.4)}\n#formContent{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:11px}\n.fgroup{display:flex;flex-direction:column;gap:4px}\n.fgroup label{font-size:.68rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.04em}\n.fgroup input,.fgroup select,.fgroup textarea{border:1px solid #dde1e8;border-radius:7px;padding:7px 10px;font-size:.81rem;font-family:inherit;color:#1a1a2e;background:#fafbfc;transition:border-color .2s;width:100%;resize:vertical}\n.fgroup input:focus,.fgroup select:focus,.fgroup textarea:focus{outline:none;border-color:#c9a84c;background:#fff}\n.fgroup textarea{min-height:78px;line-height:1.5}\n.fgroup textarea.tall{min-height:110px}\n.frow{display:grid;grid-template-columns:1fr 1fr;gap:9px}\n.frow3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px}\n.fsec-title{font-size:.7rem;font-weight:700;color:#1a1a2e;text-transform:uppercase;letter-spacing:.07em;padding:6px 0 2px;border-bottom:1px solid #eee;margin-bottom:2px}\n.fcheckrow{display:flex;align-items:center;gap:7px;font-size:.8rem;color:#444}\n.fcheckrow input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:#c9a84c}\n.ai-btn{background:linear-gradient(135deg,#1a1a2e,#2d2d5e);color:#c9a84c;border:1px solid rgba(201,168,76,.3);border-radius:7px;padding:8px 12px;font-size:.75rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s;width:100%;justify-content:center}\n.ai-btn:hover{background:linear-gradient(135deg,#2d2d5e,#1a1a2e);border-color:rgba(201,168,76,.6)}\n.ai-btn:disabled{opacity:.5;cursor:not-allowed}\n\n\/* \u2500\u2500\u2500 UPLOAD AREA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.upload-zone{border:2px dashed #dde1e8;border-radius:9px;padding:14px;text-align:center;cursor:pointer;transition:all .2s;background:#fafbfc;position:relative}\n.upload-zone:hover{border-color:#c9a84c;background:#fffdf5}\n.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}\n.upload-zone .uz-icon{font-size:1.4rem;display:block;margin-bottom:4px}\n.upload-zone .uz-label{font-size:.73rem;color:#888;line-height:1.4}\n.upload-zone .uz-label strong{color:#c9a84c}\n.thumb-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}\n.thumb-item{position:relative;width:60px;height:60px;border-radius:6px;overflow:hidden;border:2px solid #eee;cursor:pointer;transition:border-color .2s}\n.thumb-item:hover{border-color:#c9a84c}\n.thumb-item.selected{border-color:#c9a84c;box-shadow:0 0 0 2px rgba(201,168,76,.4)}\n.thumb-item img{width:100%;height:100%;object-fit:cover}\n.thumb-item .del-thumb{position:absolute;top:1px;right:1px;background:rgba(0,0,0,.6);color:#fff;border:none;border-radius:50%;width:16px;height:16px;font-size:.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}\n.thumb-single{width:80px;height:80px;border-radius:8px;overflow:hidden;border:2px solid #eee;position:relative}\n.thumb-single img{width:100%;height:100%;object-fit:cover}\n.thumb-single .del-thumb{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.6);color:#fff;border:none;border-radius:50%;width:17px;height:17px;font-size:.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center}\n\n\/* intake form *\/\n.intake-zone{border:2px dashed #7b68ee;border-radius:9px;padding:14px;text-align:center;cursor:pointer;transition:all .2s;background:#f8f7ff;position:relative}\n.intake-zone:hover{border-color:#5b4fd4;background:#f0eeff}\n.intake-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}\n.intake-status{font-size:.73rem;color:#7b68ee;margin-top:6px;font-weight:500}\n\n\/* \u2500\u2500\u2500 PREVIEW PANE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#previewPane{flex:1;overflow:hidden;display:flex;flex-direction:column;background:#e8ebf0}\n#previewToolbar{background:#fff;border-bottom:1px solid #e2e6ec;padding:7px 14px;display:flex;align-items:center;gap:8px;flex-shrink:0}\n#pageIndicator{font-size:.75rem;color:#888;flex:1;text-align:center}\n.page-nav-btn{background:#f1f3f6;border:1px solid #e2e6ec;color:#555;padding:4px 10px;border-radius:5px;font-size:.73rem;cursor:pointer;transition:all .15s}\n.page-nav-btn:hover{background:#e2e6ec}\n.page-nav-btn:disabled{opacity:.4;cursor:not-allowed}\n#zoomSel{font-size:.73rem;padding:4px 8px;border:1px solid #e2e6ec;border-radius:5px;background:#fff;cursor:pointer}\n#previewScroll{flex:1;overflow:auto;padding:28px;display:flex;justify-content:center}\n#cimDocument{width:816px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;transform-origin:top center;transition:transform .2s}\n\n\/* \u2500\u2500\u2500 CIM PAGES (base) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.cim-page{width:816px;min-height:1056px;background:#fff;position:relative;overflow:hidden;page-break-after:always;flex-shrink:0}\n\n\/* \u2500\u2500\u2500 TOAST \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#toast{position:fixed;bottom:24px;right:24px;background:#1a1a2e;color:#fff;padding:10px 18px;border-radius:9px;font-size:.82rem;box-shadow:0 4px 20px rgba(0,0,0,.3);z-index:9999;opacity:0;transform:translateY(10px);transition:all .3s;pointer-events:none}\n#toast.show{opacity:1;transform:translateY(0)}\n#toast.error{background:#c0392b}\n#toast.success{background:#27ae60}\n\n\/* \u2500\u2500\u2500 SPINNER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.spin{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}\n.spin.gold{border-color:rgba(201,168,76,.3);border-top-color:#c9a84c}\n@keyframes spin{to{transform:rotate(360deg)}}\n\n\/* \u2500\u2500\u2500 PROGRESS BAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n#progressBar{position:fixed;top:56px;left:0;right:0;height:3px;background:#c9a84c;z-index:200;transform:scaleX(0);transform-origin:left;transition:transform .4s;display:none}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CIM TEMPLATE STYLES \u2014 Classic Luxury (T1)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n\/* Cover \u2014 split 58\/42 *\/\n.t1-cover{display:flex;min-height:1056px}\n.t1-cover-left{width:58%;background:#1a1a2e;padding:64px 48px 48px;display:flex;flex-direction:column;position:relative}\n.t1-cover-right{width:42%;background:#0d0d1a;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column}\n.t1-cover-right .biz-photo{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}\n.t1-cover-right .photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:rgba(255,255,255,.25);font-size:.8rem;gap:8px;padding:20px;text-align:center}\n.t1-cover-right .photo-placeholder .ph-icon{font-size:3rem;opacity:.4}\n.t1-cover-right .photo-select-overlay{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.65);padding:10px;display:flex;gap:6px;flex-wrap:wrap;justify-content:center;z-index:5}\n.t1-cover-right .photo-select-overlay .ps-thumb{width:44px;height:44px;border-radius:5px;border:2px solid rgba(255,255,255,.3);overflow:hidden;cursor:pointer;transition:border-color .2s}\n.t1-cover-right .photo-select-overlay .ps-thumb.active{border-color:#c9a84c}\n.t1-cover-right .photo-select-overlay .ps-thumb img{width:100%;height:100%;object-fit:cover}\n.t1-accent{width:48px;height:3px;background:#c9a84c;margin-bottom:40px}\n.t1-conf-badge{background:rgba(201,168,76,.15);border:1px solid rgba(201,168,76,.35);color:#c9a84c;font-size:.63rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 10px;border-radius:3px;display:inline-block;margin-bottom:32px;align-self:flex-start}\n.t1-cover-title{font-family:'Playfair Display',serif;font-size:2.05rem;font-weight:700;color:#fff;line-height:1.25;margin-bottom:6px}\n.t1-cover-subtitle{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:400;font-style:italic;color:rgba(255,255,255,.55);margin-bottom:36px}\n.t1-cover-meta{display:flex;flex-direction:column;gap:10px;margin-bottom:auto}\n.t1-meta-row{display:flex;align-items:baseline;gap:10px}\n.t1-meta-label{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.35);width:110px;flex-shrink:0}\n.t1-meta-value{font-size:.82rem;color:rgba(255,255,255,.8);font-weight:500}\n.t1-cover-footer{margin-top:auto;padding-top:32px;border-top:1px solid rgba(255,255,255,.12)}\n.t1-broker-row{display:flex;align-items:center;gap:14px}\n.t1-broker-photo{width:46px;height:46px;border-radius:50%;border:2px solid rgba(201,168,76,.5);overflow:hidden;flex-shrink:0;background:#2a2a4e;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.3);font-size:1.1rem}\n.t1-broker-photo img{width:100%;height:100%;object-fit:cover}\n.t1-broker-info .name{font-size:.82rem;font-weight:700;color:#c9a84c}\n.t1-broker-info .role{font-size:.69rem;color:rgba(255,255,255,.45);margin-top:1px}\n.t1-broker-info .contact{font-size:.67rem;color:rgba(255,255,255,.4);margin-top:2px}\n\n\/* Section pages *\/\n.t1-page{padding:54px 64px;display:flex;flex-direction:column;gap:0}\n.t1-page-header{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:14px;border-bottom:2px solid #1a1a2e;margin-bottom:36px}\n.t1-page-header .ph-title{font-family:'Playfair Display',serif;font-size:1.45rem;font-weight:700;color:#1a1a2e}\n.t1-page-header .ph-page{font-size:.7rem;color:#999;font-weight:500}\n.t1-section-title{font-family:'Playfair Display',serif;font-size:1rem;font-weight:700;color:#1a1a2e;margin-bottom:8px;margin-top:24px}\n.t1-section-title:first-child{margin-top:0}\n.t1-body{font-size:.83rem;line-height:1.72;color:#333;margin-bottom:16px}\n.t1-kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e8e8e8;border:1px solid #e8e8e8;border-radius:8px;overflow:hidden;margin-bottom:20px}\n.t1-kv-cell{background:#fff;padding:12px 16px}\n.t1-kv-cell .kv-label{font-size:.63rem;font-weight:700;color:#999;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}\n.t1-kv-cell .kv-val{font-size:.84rem;color:#1a1a2e;font-weight:600}\n.t1-highlight-box{background:#f8f5ee;border-left:3px solid #c9a84c;padding:16px 20px;border-radius:0 8px 8px 0;margin-bottom:20px}\n.t1-highlight-box .hb-label{font-size:.63rem;font-weight:700;color:#c9a84c;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}\n.t1-highlight-box .hb-val{font-size:1.5rem;font-weight:700;color:#1a1a2e;font-family:'Playfair Display',serif}\n.t1-highlight-box .hb-sub{font-size:.74rem;color:#888;margin-top:3px}\n.t1-financials-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}\n.t1-fin-card{background:#f8f9fb;border:1px solid #e8ebf0;border-radius:9px;padding:16px;text-align:center}\n.t1-fin-card .fc-label{font-size:.62rem;color:#888;text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px}\n.t1-fin-card .fc-val{font-size:1.15rem;font-weight:700;color:#1a1a2e;font-family:'Playfair Display',serif}\n.t1-fin-card .fc-sub{font-size:.65rem;color:#aaa;margin-top:3px}\n.t1-chart-wrap{height:190px;margin-bottom:20px;position:relative}\n.t1-footer{position:absolute;bottom:0;left:0;right:0;height:44px;background:#1a1a2e;display:flex;align-items:center;justify-content:space-between;padding:0 40px}\n.t1-footer .tf-company{font-size:.65rem;color:rgba(255,255,255,.4);font-weight:500}\n.t1-footer .tf-conf{font-size:.6rem;color:rgba(255,255,255,.25);letter-spacing:.05em}\n.t1-footer .tf-page{font-size:.65rem;color:#c9a84c;font-weight:600}\n.t1-photo-row{display:flex;gap:10px;margin-bottom:20px}\n.t1-photo-row img{flex:1;height:160px;object-fit:cover;border-radius:8px;border:1px solid #eee}\n.t1-broker-page{display:flex;gap:40px;align-items:flex-start;padding:54px 64px}\n.t1-broker-headshot{width:200px;flex-shrink:0}\n.t1-broker-headshot img{width:200px;height:240px;object-fit:cover;border-radius:10px;border:2px solid #eee}\n.t1-broker-headshot .ph-holder{width:200px;height:240px;border-radius:10px;border:2px dashed #ddd;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#bbb;text-align:center;padding:10px}\n.t1-broker-content{flex:1}\n\n\/* \u2500\u2500\u2500 CONFIDENTIALITY PAGE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.t1-conf-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:1056px;padding:80px 100px;text-align:center;background:#fff}\n.t1-conf-page .cp-logo{width:90px;height:90px;object-fit:contain;margin-bottom:32px}\n.t1-conf-page .cp-logo-ph{width:90px;height:90px;background:#f8f5ee;border-radius:10px;border:2px dashed #e8d5a3;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 32px}\n.t1-conf-page h2{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:700;color:#1a1a2e;margin-bottom:20px}\n.t1-conf-page p{font-size:.82rem;color:#555;line-height:1.75;max-width:560px;margin:0 auto 16px}\n.t1-conf-page .cp-signature{margin-top:40px;display:flex;flex-direction:column;align-items:center;gap:4px}\n.t1-conf-page .cp-sig-line{width:220px;border-top:1px solid #aaa;padding-top:6px;font-size:.74rem;color:#888}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CIM TEMPLATE STYLES \u2014 Modern Bold (T2)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.t2-cover{display:flex;flex-direction:row-reverse;min-height:1056px}\n.t2-cover-photo{width:42%;background:#e8e8e8;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}\n.t2-cover-photo .biz-photo{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}\n.t2-cover-photo .photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:#bbb;font-size:.8rem;gap:8px;text-align:center;padding:20px}\n.t2-cover-photo .ph-icon{font-size:3rem;opacity:.5}\n.t2-cover-body{width:58%;background:#fff;padding:60px 48px 48px;display:flex;flex-direction:column;position:relative;border-left:5px solid #2563eb}\n.t2-conf-badge{background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb;font-size:.63rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:3px;display:inline-block;margin-bottom:32px;align-self:flex-start}\n.t2-cover-title{font-family:'Montserrat',sans-serif;font-size:2.1rem;font-weight:700;color:#111;line-height:1.2;margin-bottom:8px}\n.t2-cover-subtitle{font-size:1rem;font-weight:400;color:#666;margin-bottom:36px}\n.t2-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:auto}\n.t2-meta-card{background:#f8faff;border:1px solid #e2e8ff;border-radius:8px;padding:12px 14px}\n.t2-meta-card .mc-label{font-size:.62rem;font-weight:700;color:#2563eb;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}\n.t2-meta-card .mc-val{font-size:.88rem;font-weight:700;color:#111}\n.t2-cover-footer{padding-top:24px;border-top:1px solid #eee;display:flex;align-items:center;gap:14px}\n.t2-broker-photo{width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#e2e8ff;display:flex;align-items:center;justify-content:center;color:#2563eb;font-size:1.1rem}\n.t2-broker-photo img{width:100%;height:100%;object-fit:cover}\n.t2-broker-info .name{font-size:.82rem;font-weight:700;color:#111}\n.t2-broker-info .role{font-size:.69rem;color:#888}\n.t2-broker-info .contact{font-size:.67rem;color:#888}\n.t2-page{padding:54px 64px;display:flex;flex-direction:column}\n.t2-page-header{padding-bottom:12px;margin-bottom:30px;border-bottom:3px solid #2563eb}\n.t2-page-header .ph-title{font-family:'Montserrat',sans-serif;font-size:1.4rem;font-weight:700;color:#111}\n.t2-footer{position:absolute;bottom:0;left:0;right:0;height:44px;background:#2563eb;display:flex;align-items:center;justify-content:space-between;padding:0 40px}\n.t2-footer .tf-company,.t2-footer .tf-conf,.t2-footer .tf-page{color:rgba(255,255,255,.7);font-size:.65rem}\n.t2-footer .tf-page{color:#fff;font-weight:700}\n.t2-broker-page{display:flex;gap:40px;padding:54px 64px;align-items:flex-start}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CIM TEMPLATE STYLES \u2014 Executive Serif (T3)\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.t3-cover{display:flex;min-height:1056px}\n.t3-cover-left{width:58%;background:#fff;padding:64px 48px 48px;display:flex;flex-direction:column;position:relative}\n.t3-cover-right{width:42%;background:#8b0000;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}\n.t3-cover-right .biz-photo{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:.6}\n.t3-cover-right .photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:rgba(255,255,255,.5);font-size:.8rem;gap:8px;text-align:center;padding:20px}\n.t3-cover-right .ph-icon{font-size:3rem;opacity:.5}\n.t3-conf-badge{background:#fff8f8;border:1px solid #ffd0d0;color:#8b0000;font-size:.63rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:3px;display:inline-block;margin-bottom:28px;align-self:flex-start}\n.t3-accent{width:64px;height:2px;background:#8b0000;margin-bottom:20px}\n.t3-cover-title{font-family:'Cormorant Garamond',serif;font-size:2.4rem;font-weight:700;color:#1a0a0a;line-height:1.2;margin-bottom:8px}\n.t3-cover-subtitle{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:400;font-style:italic;color:#888;margin-bottom:32px}\n.t3-meta-rows{display:flex;flex-direction:column;gap:9px;margin-bottom:auto}\n.t3-meta-row{display:grid;grid-template-columns:120px 1fr;gap:8px;border-bottom:1px solid #f0e8e8;padding-bottom:8px}\n.t3-meta-label{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#8b0000;align-self:center}\n.t3-meta-value{font-size:.83rem;color:#1a0a0a;font-weight:600}\n.t3-cover-footer{padding-top:24px;border-top:1px solid #f0e8e8;display:flex;align-items:center;gap:14px}\n.t3-broker-photo{width:44px;height:44px;border-radius:50%;overflow:hidden;flex-shrink:0;background:#f8f0f0;display:flex;align-items:center;justify-content:center;color:#8b0000;font-size:1.1rem}\n.t3-broker-photo img{width:100%;height:100%;object-fit:cover}\n.t3-broker-info .name{font-size:.82rem;font-weight:700;color:#8b0000}\n.t3-broker-info .role{font-size:.69rem;color:#888}\n.t3-broker-info .contact{font-size:.67rem;color:#888}\n.t3-page{padding:54px 64px}\n.t3-page-header{padding-bottom:14px;margin-bottom:30px;border-bottom:2px solid #8b0000;display:flex;align-items:flex-end;justify-content:space-between}\n.t3-page-header .ph-title{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:700;color:#1a0a0a}\n.t3-page-header .ph-page{font-size:.7rem;color:#999}\n.t3-footer{position:absolute;bottom:0;left:0;right:0;height:44px;background:#8b0000;display:flex;align-items:center;justify-content:space-between;padding:0 40px}\n.t3-footer .tf-company,.t3-footer .tf-conf,.t3-footer .tf-page{color:rgba(255,255,255,.65);font-size:.65rem}\n.t3-footer .tf-page{color:#fff;font-weight:700}\n.t3-broker-page{display:flex;gap:40px;padding:54px 64px;align-items:flex-start}\n.t3-section-title{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:700;color:#8b0000;margin-bottom:8px;margin-top:22px}\n.t3-section-title:first-child{margin-top:0}\n\n\/* \u2500\u2500\u2500 PHOTO SELECT OVERLAY on cover (shared) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.cover-photo-select{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.75));padding:12px 10px 10px;z-index:5;display:flex;gap:6px;flex-wrap:wrap}\n.cover-ps-thumb{width:42px;height:42px;border-radius:5px;border:2px solid rgba(255,255,255,.3);overflow:hidden;cursor:pointer;transition:border-color .2s;flex-shrink:0}\n.cover-ps-thumb.active{border-color:#c9a84c}\n.cover-ps-thumb img{width:100%;height:100%;object-fit:cover}\n.cover-ps-label{font-size:.58rem;color:rgba(255,255,255,.5);position:absolute;bottom:4px;left:50%;transform:translateX(-50%);white-space:nowrap}\n<\/style>\n<\/head>\n<body>\n\n<!-- Progress bar -->\n<div id=\"progressBar\"><\/div>\n\n<!-- App Header -->\n<div id=\"appHeader\">\n  <div class=\"logo\">CIM<span> Generator Pro\u2122<\/span><\/div>\n  <div class=\"header-sep\"><\/div>\n  <div class=\"template-pills\">\n    <button class=\"tpill active\" onclick=\"setTemplate(1)\">Classic Luxury<\/button>\n    <button class=\"tpill\" onclick=\"setTemplate(2)\">Modern Bold<\/button>\n    <button class=\"tpill\" onclick=\"setTemplate(3)\">Executive Serif<\/button>\n  <\/div>\n  <div class=\"header-sep\"><\/div>\n  <select id=\"toneSelect\" onchange=\"renderPreview()\">\n    <option value=\"professional\">Professional<\/option>\n    <option value=\"conversational\">Conversational<\/option>\n    <option value=\"luxury\">Luxury<\/option>\n    <option value=\"technical\">Technical<\/option>\n  <\/select>\n  <div class=\"header-spacer\"><\/div>\n  <button class=\"hbtn hbtn-new\" onclick=\"newCIM()\">+ New<\/button>\n  <button class=\"hbtn hbtn-word\" onclick=\"exportWord()\">\ud83d\udcc4 Word<\/button>\n  <button class=\"hbtn hbtn-pdf\" onclick=\"exportPDF()\">\u2b07 PDF<\/button>\n<\/div>\n\n<!-- App Body -->\n<div id=\"appBody\">\n\n  <!-- Form Panel -->\n  <div id=\"formPanel\">\n    <div id=\"sectionNav\">\n      <button class=\"snav-btn active\" onclick=\"showSection('intake')\" id=\"nav-intake\"><span class=\"sicon\">\ud83d\udccb<\/span>Intake Form<span class=\"sdot\"><\/span><\/button>\n      <button class=\"snav-btn\" onclick=\"showSection('business')\" id=\"nav-business\"><span class=\"sicon\">\ud83c\udfe2<\/span>Business Info<span class=\"sdot\"><\/span><\/button>\n      <button class=\"snav-btn\" onclick=\"showSection('financials')\" id=\"nav-financials\"><span class=\"sicon\">\ud83d\udcb0<\/span>Financials<span class=\"sdot\"><\/span><\/button>\n      <button class=\"snav-btn\" onclick=\"showSection('operations')\" id=\"nav-operations\"><span class=\"sicon\">\u2699\ufe0f<\/span>Operations<span class=\"sdot\"><\/span><\/button>\n      <button class=\"snav-btn\" onclick=\"showSection('deal')\" id=\"nav-deal\"><span class=\"sicon\">\ud83e\udd1d<\/span>Deal Terms<span class=\"sdot\"><\/span><\/button>\n      <button class=\"snav-btn\" onclick=\"showSection('franchise')\" id=\"nav-franchise\"><span class=\"sicon\">\ud83c\udfec<\/span>Franchise<span class=\"sdot\"><\/span><\/button>\n      <button class=\"snav-btn\" onclick=\"showSection('media')\" id=\"nav-media\"><span class=\"sicon\">\ud83d\udcf7<\/span>Media & Uploads<span class=\"sdot\"><\/span><\/button>\n      <button class=\"snav-btn\" onclick=\"showSection('broker')\" id=\"nav-broker\"><span class=\"sicon\">\ud83d\udc64<\/span>Broker Info<span class=\"sdot\"><\/span><\/button>\n    <\/div>\n    <div id=\"formContent\"><!-- populated by showSection() --><\/div>\n  <\/div>\n\n  <!-- Preview Pane -->\n  <div id=\"previewPane\">\n    <div id=\"previewToolbar\">\n      <button class=\"page-nav-btn\" onclick=\"prevPage()\" id=\"btnPrev\">\u25c0 Prev<\/button>\n      <div id=\"pageIndicator\">Page 1 of 1<\/div>\n      <button class=\"page-nav-btn\" onclick=\"nextPage()\" id=\"btnNext\">Next \u25b6<\/button>\n      <div style=\"flex:1\"><\/div>\n      <select id=\"zoomSel\" onchange=\"applyZoom()\">\n        <option value=\"0.7\">70%<\/option>\n        <option value=\"0.85\" selected>85%<\/option>\n        <option value=\"1\">100%<\/option>\n        <option value=\"1.15\">115%<\/option>\n      <\/select>\n    <\/div>\n    <div id=\"previewScroll\">\n      <div id=\"cimDocument\"><\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<div id=\"toast\"><\/div>\n\n<script>\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  STATE\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nconst SAVE_KEY = 'cimPro_v4';\nlet currentTemplate = 1;\nlet currentPage = 0;\nlet totalPages = 0;\n\n\/\/ In-memory image store \u2014 NOT persisted\nconst imgs = {\n  logo: null,        \/\/ data URL\n  headshot: null,    \/\/ data URL\n  business: [],      \/\/ array of data URLs\n  docs: [],          \/\/ array of data URLs\n  coverIdx: 0        \/\/ which business photo is on cover\n};\n\n\/\/ Form data\nconst D = {\n  \/\/ Business\n  businessName:'', tagline:'', industry:'', established:'', location:'',\n  entityType:'', hoursOfOperation:'', website:'', socialInstagram:'', socialFacebook:'',\n  businessOverview:'', productsServices:'', customerTypes:'', topCustomers:'', seasonality:'',\n  keyEmployees:'', systems:'', licenses:'',\n  ownerName:'', ownerActive:true, ownerHoursPerWeek:'',\n  \/\/ Financials\n  askingPrice:'', revenue1:'', revenue2:'', revenue3:'',\n  sde1:'', sde2:'', sde3:'', addbacks:'',\n  cashFlow:'', ebitda:'', inventory:'', ffe:'', realEstate:'',\n  finNote:'',\n  \/\/ Operations\n  leaseType:'', leaseExpiry:'', monthlyRent:'', squareFootage:'',\n  \/\/ Deal\n  reasonForSale:'', downPayment:'', financeTerms:'', financingSeller:false,\n  trainingWeeks:'', nonCompete:'',\n  \/\/ Franchise\n  isFranchise:false, franchiseName:'', franchiseFee:'', royaltyRate:'', franchiseTerm:'', franchiseTransferable:'',\n  \/\/ Broker\n  brokerName:'', brokerTitle:'', brokerPhone:'', brokerEmail:'', brokerBio:'',\n  companyName:'360 Biz Brokers', companyPhone:'', companyEmail:'', companyWebsite:''\n};\n\nfunction getApiBase(){\n  return localStorage.getItem('cimApiBase') || '';\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  PERSISTENCE\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction saveData(){\n  try{ localStorage.setItem(SAVE_KEY, JSON.stringify(D)); } catch(e){}\n}\nfunction loadData(){\n  try{\n    const raw = localStorage.getItem(SAVE_KEY);\n    if(raw){ const parsed=JSON.parse(raw); Object.assign(D,parsed); }\n  } catch(e){}\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  UTILITY\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction fmt(val){\n  if(!val && val!==0) return '';\n  const n=parseFloat(String(val).replace(\/[^0-9.]\/g,''));\n  if(isNaN(n)) return String(val);\n  if(n>=1000000) return '$'+(n\/1000000).toFixed(2).replace(\/\\.?0+$\/,'')+'M';\n  if(n>=1000) return '$'+(n\/1000).toFixed(0)+'K';\n  return '$'+n.toLocaleString();\n}\nfunction showToast(msg, type=''){\n  const t=document.getElementById('toast');\n  t.textContent=msg; t.className='show'+(type?' '+type:'');\n  clearTimeout(showToast._t);\n  showToast._t=setTimeout(()=>t.className='',3200);\n}\nfunction setProgress(pct){\n  const b=document.getElementById('progressBar');\n  if(pct<=0){b.style.display='none';b.style.transform='scaleX(0)';return;}\n  b.style.display='block';\n  requestAnimationFrame(()=>b.style.transform=`scaleX(${pct\/100})`);\n}\nfunction newCIM(){\n  if(!confirm('Clear all data and start a new CIM?')) return;\n  Object.keys(D).forEach(k=>{\n    D[k] = typeof D[k]==='boolean' ? false : '';\n  });\n  D.ownerActive=true; D.companyName='360 Biz Brokers';\n  imgs.logo=null; imgs.headshot=null; imgs.business=[]; imgs.docs=[]; imgs.coverIdx=0;\n  saveData(); showSection(document.querySelector('.snav-btn.active')?.id.replace('nav-','') || 'business');\n  renderPreview(); showToast('New CIM started','success');\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  TEMPLATE SELECTION\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction setTemplate(n){\n  currentTemplate=n;\n  document.querySelectorAll('.tpill').forEach((p,i)=>p.classList.toggle('active',i===n-1));\n  renderPreview();\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  SECTION NAV\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction showSection(sec){\n  document.querySelectorAll('.snav-btn').forEach(b=>{\n    b.classList.toggle('active', b.id===`nav-${sec}`);\n  });\n  const fc=document.getElementById('formContent');\n  fc.innerHTML = buildSectionForm(sec);\n  bindSectionInputs(sec);\n  updateNavDots();\n}\nfunction updateNavDots(){\n  const checks = {\n    intake: true,\n    business: !!(D.businessName),\n    financials: !!(D.askingPrice||D.revenue1),\n    operations: !!(D.leaseType||D.squareFootage),\n    deal: !!(D.reasonForSale||D.downPayment),\n    franchise: D.isFranchise,\n    media: !!(imgs.logo||imgs.headshot||imgs.business.length),\n    broker: !!(D.brokerName)\n  };\n  Object.entries(checks).forEach(([k,v])=>{\n    const btn=document.getElementById(`nav-${k}`);\n    if(btn) btn.classList.toggle('filled',!!v);\n  });\n}\n\nfunction bindSectionInputs(sec){\n  document.querySelectorAll('#formContent [data-field]').forEach(el=>{\n    const f=el.dataset.field;\n    if(el.type==='checkbox') el.checked=!!D[f];\n    else el.value=D[f]||'';\n    el.addEventListener('input',()=>{\n      D[f]=(el.type==='checkbox')?el.checked:el.value;\n      saveData(); renderPreview(); updateNavDots();\n    });\n    el.addEventListener('change',()=>{\n      D[f]=(el.type==='checkbox')?el.checked:el.value;\n      saveData(); renderPreview(); updateNavDots();\n    });\n  });\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  FORM SECTION BUILDERS\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction buildSectionForm(sec){\n  if(sec==='intake') return buildIntakeForm();\n  if(sec==='business') return buildBusinessForm();\n  if(sec==='financials') return buildFinancialsForm();\n  if(sec==='operations') return buildOperationsForm();\n  if(sec==='deal') return buildDealForm();\n  if(sec==='franchise') return buildFranchiseForm();\n  if(sec==='media') return buildMediaForm();\n  if(sec==='broker') return buildBrokerForm();\n  return '';\n}\n\nfunction buildIntakeForm(){\n  return `\n<div class=\"fsec-title\">\ud83d\udccb Broker Listing Intake Form<\/div>\n<p style=\"font-size:.74rem;color:#666;line-height:1.6;margin-bottom:4px\">Upload a completed DOCX intake form to auto-fill all fields. Blank fields will be omitted from the CIM.<\/p>\n<div class=\"intake-zone\" id=\"intakeZone\">\n  <input type=\"file\" accept=\".docx,.doc\" onchange=\"handleIntakeUpload(this)\">\n  <div style=\"font-size:1.6rem;margin-bottom:6px\">\ud83d\udcc4<\/div>\n  <div style=\"font-size:.78rem;color:#7b68ee;font-weight:600\">Drop DOCX intake form here<\/div>\n  <div style=\"font-size:.7rem;color:#aaa;margin-top:3px\">or click to browse \u00b7 .docx \/ .doc<\/div>\n<\/div>\n<div id=\"intakeStatus\" class=\"intake-status\"><\/div>\n<div class=\"fsec-title\" style=\"margin-top:16px\">API Settings<\/div>\n<div class=\"fgroup\">\n  <label>API Base URL (optional override)<\/label>\n  <input type=\"text\" placeholder=\"Leave blank for auto-detect\" id=\"apiBaseInput\" value=\"${localStorage.getItem('cimApiBase')||''}\">\n<\/div>\n<button class=\"ai-btn\" style=\"margin-top:8px\" onclick=\"saveApiBase()\">\ud83d\udcbe Save API Base<\/button>\n`;\n}\n\nfunction saveApiBase(){\n  const val=document.getElementById('apiBaseInput').value.trim();\n  if(val) localStorage.setItem('cimApiBase',val);\n  else localStorage.removeItem('cimApiBase');\n  showToast('API base saved','success');\n}\n\nfunction buildBusinessForm(){\n  return `\n<div class=\"fsec-title\">Business Identity<\/div>\n<div class=\"fgroup\"><label>Business Name *<\/label><input type=\"text\" data-field=\"businessName\" placeholder=\"e.g. Woofgang Maitland Pet Spa\"><\/div>\n<div class=\"fgroup\"><label>Tagline \/ Slogan<\/label><input type=\"text\" data-field=\"tagline\" placeholder=\"e.g. Where Every Tail Wags\"><\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Industry<\/label><input type=\"text\" data-field=\"industry\" placeholder=\"Pet Services\"><\/div>\n  <div class=\"fgroup\"><label>Est. Year<\/label><input type=\"text\" data-field=\"established\" placeholder=\"2018\"><\/div>\n<\/div>\n<div class=\"fgroup\"><label>Location (City, State)<\/label><input type=\"text\" data-field=\"location\" placeholder=\"Austin, TX\"><\/div>\n<div class=\"fgroup\"><label>Entity Type<\/label>\n  <select data-field=\"entityType\">\n    <option value=\"\">Select\u2026<\/option>\n    <option value=\"LLC\">LLC<\/option>\n    <option value=\"S-Corp\">S-Corp<\/option>\n    <option value=\"C-Corp\">C-Corp<\/option>\n    <option value=\"Sole Prop\">Sole Proprietorship<\/option>\n    <option value=\"Partnership\">Partnership<\/option>\n    <option value=\"Other\">Other<\/option>\n  <\/select>\n<\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Hours of Operation<\/label><input type=\"text\" data-field=\"hoursOfOperation\" placeholder=\"Mon\u2013Sat 9am\u20136pm\"><\/div>\n  <div class=\"fgroup\"><label>Website<\/label><input type=\"text\" data-field=\"website\" placeholder=\"https:\/\/...\"><\/div>\n<\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Instagram<\/label><input type=\"text\" data-field=\"socialInstagram\" placeholder=\"@handle\"><\/div>\n  <div class=\"fgroup\"><label>Facebook<\/label><input type=\"text\" data-field=\"socialFacebook\" placeholder=\"@page\"><\/div>\n<\/div>\n<div class=\"fsec-title\">Business Overview<\/div>\n<div class=\"fgroup\"><label>Overview \/ Description<\/label><textarea class=\"tall\" data-field=\"businessOverview\" placeholder=\"Describe the business, its history, and unique value proposition\u2026\"><\/textarea><\/div>\n<button class=\"ai-btn\" onclick=\"aiEnhance('businessOverview','Enhance this business overview for a CIM: ')\">\u2728 AI Enhance Overview<\/button>\n<div class=\"fgroup\" style=\"margin-top:10px\"><label>Products \/ Services<\/label><textarea data-field=\"productsServices\" placeholder=\"List key products or services offered\u2026\"><\/textarea><\/div>\n<div class=\"fgroup\"><label>Customer Types<\/label><input type=\"text\" data-field=\"customerTypes\" placeholder=\"e.g. B2C pet owners, local businesses\"><\/div>\n<div class=\"fgroup\"><label>Top Customers \/ Accounts<\/label><input type=\"text\" data-field=\"topCustomers\" placeholder=\"e.g. top 3 accounts or customer categories\"><\/div>\n<div class=\"fgroup\"><label>Seasonality<\/label><input type=\"text\" data-field=\"seasonality\" placeholder=\"e.g. peaks in summer, steady year-round\"><\/div>\n<div class=\"fgroup\"><label>Key Employees (role\/tenure)<\/label><textarea data-field=\"keyEmployees\" placeholder=\"e.g. Manager \u2013 5 yrs, Lead Groomer \u2013 3 yrs\u2026\"><\/textarea><\/div>\n<div class=\"fgroup\"><label>Systems & Technology<\/label><textarea data-field=\"systems\" placeholder=\"POS, scheduling software, CRM\u2026\"><\/textarea><\/div>\n<div class=\"fgroup\"><label>Licenses & Certifications<\/label><textarea data-field=\"licenses\" placeholder=\"Business license, health permits, certifications\u2026\"><\/textarea><\/div>\n<div class=\"fsec-title\">Owner Info<\/div>\n<div class=\"fgroup\"><label>Owner Name<\/label><input type=\"text\" data-field=\"ownerName\" placeholder=\"Full name\"><\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Owner Active in Biz?<\/label>\n    <select data-field=\"ownerActive\">\n      <option value=\"true\">Yes \u2013 active<\/option>\n      <option value=\"false\">No \u2013 semi\/absentee<\/option>\n    <\/select>\n  <\/div>\n  <div class=\"fgroup\"><label>Hours\/Week<\/label><input type=\"text\" data-field=\"ownerHoursPerWeek\" placeholder=\"e.g. 40\"><\/div>\n<\/div>\n`;\n}\n\nfunction buildFinancialsForm(){\n  return `\n<div class=\"fsec-title\">Asking Price & Revenue<\/div>\n<div class=\"fgroup\"><label>Asking Price<\/label><input type=\"text\" data-field=\"askingPrice\" placeholder=\"$850,000\"><\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Revenue \u2013 Year 1<\/label><input type=\"text\" data-field=\"revenue1\" placeholder=\"$420,000\"><\/div>\n  <div class=\"fgroup\"><label>Revenue \u2013 Year 2<\/label><input type=\"text\" data-field=\"revenue2\" placeholder=\"$510,000\"><\/div>\n<\/div>\n<div class=\"fgroup\"><label>Revenue \u2013 Year 3 (TTM)<\/label><input type=\"text\" data-field=\"revenue3\" placeholder=\"$590,000\"><\/div>\n<div class=\"fsec-title\">SDE \/ Cash Flow<\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>SDE \u2013 Year 1<\/label><input type=\"text\" data-field=\"sde1\" placeholder=\"$120,000\"><\/div>\n  <div class=\"fgroup\"><label>SDE \u2013 Year 2<\/label><input type=\"text\" data-field=\"sde2\" placeholder=\"$148,000\"><\/div>\n<\/div>\n<div class=\"fgroup\"><label>SDE \u2013 Year 3 (TTM)<\/label><input type=\"text\" data-field=\"sde3\" placeholder=\"$172,000\"><\/div>\n<div class=\"fgroup\"><label>Addbacks Detail<\/label><textarea data-field=\"addbacks\" placeholder=\"Owner salary, one-time expenses, depreciation\u2026\"><\/textarea><\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>EBITDA (optional)<\/label><input type=\"text\" data-field=\"ebitda\" placeholder=\"$165,000\"><\/div>\n  <div class=\"fgroup\"><label>Inventory Value<\/label><input type=\"text\" data-field=\"inventory\" placeholder=\"$0\"><\/div>\n<\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>FF&E Value<\/label><input type=\"text\" data-field=\"ffe\" placeholder=\"$85,000\"><\/div>\n  <div class=\"fgroup\"><label>Real Estate<\/label><input type=\"text\" data-field=\"realEstate\" placeholder=\"Leased \/ $X\"><\/div>\n<\/div>\n<div class=\"fgroup\"><label>Financial Notes<\/label><textarea data-field=\"finNote\" placeholder=\"Additional financial context, footnotes, or disclosures\u2026\"><\/textarea><\/div>\n<button class=\"ai-btn\" onclick=\"aiEnhance('finNote','Write a brief financial narrative for a CIM based on: ')\">\u2728 AI Financial Narrative<\/button>\n`;\n}\n\nfunction buildOperationsForm(){\n  return `\n<div class=\"fsec-title\">Lease & Location<\/div>\n<div class=\"fgroup\"><label>Lease Type<\/label>\n  <select data-field=\"leaseType\">\n    <option value=\"\">Select\u2026<\/option>\n    <option value=\"NNN\">Triple Net (NNN)<\/option>\n    <option value=\"Gross\">Gross Lease<\/option>\n    <option value=\"Modified Gross\">Modified Gross<\/option>\n    <option value=\"Owner-Occupied\">Owner-Occupied<\/option>\n    <option value=\"Month-to-Month\">Month-to-Month<\/option>\n  <\/select>\n<\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Lease Expiry<\/label><input type=\"text\" data-field=\"leaseExpiry\" placeholder=\"Dec 2028\"><\/div>\n  <div class=\"fgroup\"><label>Monthly Rent<\/label><input type=\"text\" data-field=\"monthlyRent\" placeholder=\"$4,200\"><\/div>\n<\/div>\n<div class=\"fgroup\"><label>Square Footage<\/label><input type=\"text\" data-field=\"squareFootage\" placeholder=\"2,400 sq ft\"><\/div>\n`;\n}\n\nfunction buildDealForm(){\n  return `\n<div class=\"fsec-title\">Deal Terms<\/div>\n<div class=\"fgroup\"><label>Reason for Sale<\/label><textarea data-field=\"reasonForSale\" placeholder=\"Owner pursuing retirement, relocation\u2026\"><\/textarea><\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Down Payment<\/label><input type=\"text\" data-field=\"downPayment\" placeholder=\"$250,000\"><\/div>\n  <div class=\"fgroup\"><label>Finance Terms<\/label><input type=\"text\" data-field=\"financeTerms\" placeholder=\"SBA 7(a) eligible\"><\/div>\n<\/div>\n<div class=\"fgroup\">\n  <label class=\"fcheckrow\" style=\"text-transform:none;font-size:.82rem\">\n    <input type=\"checkbox\" data-field=\"financingSeller\"> Seller Financing Available\n  <\/label>\n<\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Training Period (weeks)<\/label><input type=\"text\" data-field=\"trainingWeeks\" placeholder=\"4\"><\/div>\n  <div class=\"fgroup\"><label>Non-Compete (years)<\/label><input type=\"text\" data-field=\"nonCompete\" placeholder=\"3\"><\/div>\n<\/div>\n`;\n}\n\nfunction buildFranchiseForm(){\n  return `\n<div class=\"fsec-title\">Franchise Details<\/div>\n<div class=\"fgroup\">\n  <label class=\"fcheckrow\" style=\"text-transform:none;font-size:.82rem\">\n    <input type=\"checkbox\" data-field=\"isFranchise\" id=\"isFranchiseCheck\"> This is a Franchise\n  <\/label>\n<\/div>\n<div id=\"franchiseFields\">\n  <div class=\"fgroup\"><label>Franchise Brand<\/label><input type=\"text\" data-field=\"franchiseName\" placeholder=\"e.g. Supercuts, Subway, etc.\"><\/div>\n  <div class=\"frow\">\n    <div class=\"fgroup\"><label>Franchise Fee<\/label><input type=\"text\" data-field=\"franchiseFee\" placeholder=\"$40,000\"><\/div>\n    <div class=\"fgroup\"><label>Royalty Rate<\/label><input type=\"text\" data-field=\"royaltyRate\" placeholder=\"6%\"><\/div>\n  <\/div>\n  <div class=\"frow\">\n    <div class=\"fgroup\"><label>Franchise Term<\/label><input type=\"text\" data-field=\"franchiseTerm\" placeholder=\"10 years\"><\/div>\n    <div class=\"fgroup\"><label>Transferable?<\/label>\n      <select data-field=\"franchiseTransferable\">\n        <option value=\"\">Select\u2026<\/option>\n        <option value=\"Yes\">Yes<\/option>\n        <option value=\"No\">No<\/option>\n        <option value=\"With Approval\">With Franchisor Approval<\/option>\n      <\/select>\n    <\/div>\n  <\/div>\n<\/div>\n`;\n}\n\nfunction buildMediaForm(){\n  const bizThumbs = imgs.business.map((url,i)=>`\n    <div class=\"thumb-item ${i===imgs.coverIdx?'selected':''}\" onclick=\"setCoverPhoto(${i})\" title=\"Set as cover photo\">\n      <img decoding=\"async\" src=\"${url}\" alt=\"Business photo ${i+1}\">\n      <button class=\"del-thumb\" onclick=\"event.stopPropagation();removeImg('business',${i})\">\u00d7<\/button>\n    <\/div>`).join('');\n\n  const docThumbs = imgs.docs.map((url,i)=>`\n    <div class=\"thumb-item\">\n      <img decoding=\"async\" src=\"${url}\" alt=\"Doc ${i+1}\">\n      <button class=\"del-thumb\" onclick=\"removeImg('docs',${i})\">\u00d7<\/button>\n    <\/div>`).join('');\n\n  const logoHtml = imgs.logo\n    ? `<div class=\"thumb-single\"><img decoding=\"async\" src=\"${imgs.logo}\"><button class=\"del-thumb\" onclick=\"removeImg('logo')\">\u00d7<\/button><\/div>`\n    : '';\n  const headHtml = imgs.headshot\n    ? `<div class=\"thumb-single\"><img decoding=\"async\" src=\"${imgs.headshot}\"><button class=\"del-thumb\" onclick=\"removeImg('headshot')\">\u00d7<\/button><\/div>`\n    : '';\n\n  return `\n<div class=\"fsec-title\">Company Logo<\/div>\n<div class=\"upload-zone\">\n  <input type=\"file\" accept=\"image\/*\" onchange=\"handleImgUpload('logo',this)\">\n  <span class=\"uz-icon\">\ud83c\udff7\ufe0f<\/span>\n  <div class=\"uz-label\">Drop logo here \u00b7 <strong>PNG\/SVG preferred<\/strong><\/div>\n<\/div>\n${logoHtml}\n\n<div class=\"fsec-title\" style=\"margin-top:14px\">Business Photos <small style=\"font-weight:400;font-size:.67rem;color:#999\">(tap photo to set as cover)<\/small><\/div>\n<div class=\"upload-zone\">\n  <input type=\"file\" accept=\"image\/*\" multiple onchange=\"handleImgUpload('business',this)\">\n  <span class=\"uz-icon\">\ud83d\udcf8<\/span>\n  <div class=\"uz-label\">Add business photos \u00b7 <strong>JPG\/PNG\/WebP<\/strong><\/div>\n<\/div>\n${imgs.business.length ? `<div class=\"thumb-grid\">${bizThumbs}<\/div>` : ''}\n${imgs.business.length ? `<div style=\"font-size:.7rem;color:#c9a84c;margin-top:4px\">\u2b50 Tap a photo to use it as the cover page photo<\/div>` : ''}\n\n<div class=\"fsec-title\" style=\"margin-top:14px\">Broker Headshot<\/div>\n<div class=\"upload-zone\">\n  <input type=\"file\" accept=\"image\/*\" onchange=\"handleImgUpload('headshot',this)\">\n  <span class=\"uz-icon\">\ud83d\ude42<\/span>\n  <div class=\"uz-label\">Broker headshot \u00b7 <strong>JPG\/PNG<\/strong><\/div>\n<\/div>\n${headHtml}\n\n<div class=\"fsec-title\" style=\"margin-top:14px\">Documents \/ Financials<\/div>\n<div class=\"upload-zone\">\n  <input type=\"file\" accept=\"image\/*,.pdf\" multiple onchange=\"handleImgUpload('docs',this)\">\n  <span class=\"uz-icon\">\ud83d\udcc2<\/span>\n  <div class=\"uz-label\">Financial statements, permits, etc.<\/div>\n<\/div>\n${imgs.docs.length ? `<div class=\"thumb-grid\">${docThumbs}<\/div>` : ''}\n`;\n}\n\nfunction buildBrokerForm(){\n  return `\n<div class=\"fsec-title\">Broker Details<\/div>\n<div class=\"fgroup\"><label>Broker Name<\/label><input type=\"text\" data-field=\"brokerName\" placeholder=\"e.g. James Woofgang Maitland\"><\/div>\n<div class=\"fgroup\"><label>Title<\/label><input type=\"text\" data-field=\"brokerTitle\" placeholder=\"Senior Business Broker\"><\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Phone<\/label><input type=\"text\" data-field=\"brokerPhone\" placeholder=\"(512) 555-0100\"><\/div>\n  <div class=\"fgroup\"><label>Email<\/label><input type=\"text\" data-field=\"brokerEmail\" placeholder=\"james@360biz.com\"><\/div>\n<\/div>\n<div class=\"fgroup\"><label>Broker Bio<\/label><textarea class=\"tall\" data-field=\"brokerBio\" placeholder=\"Brief professional bio for the 'Know the Broker' page\u2026\"><\/textarea><\/div>\n<button class=\"ai-btn\" onclick=\"aiEnhance('brokerBio','Write a professional broker bio for a business brokerage CIM: ')\">\u2728 AI Generate Bio<\/button>\n<div class=\"fsec-title\" style=\"margin-top:14px\">Company Details<\/div>\n<div class=\"fgroup\"><label>Company Name<\/label><input type=\"text\" data-field=\"companyName\" placeholder=\"360 Biz Brokers\"><\/div>\n<div class=\"frow\">\n  <div class=\"fgroup\"><label>Company Phone<\/label><input type=\"text\" data-field=\"companyPhone\" placeholder=\"(512) 555-0200\"><\/div>\n  <div class=\"fgroup\"><label>Company Email<\/label><input type=\"text\" data-field=\"companyEmail\" placeholder=\"info@360biz.com\"><\/div>\n<\/div>\n<div class=\"fgroup\"><label>Company Website<\/label><input type=\"text\" data-field=\"companyWebsite\" placeholder=\"https:\/\/360biz.com\"><\/div>\n`;\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  IMAGE HANDLING\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction handleImgUpload(type, input){\n  const files = Array.from(input.files);\n  if(!files.length) return;\n  let pending = files.length;\n  files.forEach(file=>{\n    if(!file.type.startsWith('image\/') && type!=='docs'){ pending--; return; }\n    const reader = new FileReader();\n    reader.onload = e=>{\n      const url = e.target.result;\n      if(type==='logo') imgs.logo=url;\n      else if(type==='headshot') imgs.headshot=url;\n      else if(type==='business') imgs.business.push(url);\n      else if(type==='docs') imgs.docs.push(url);\n      pending--;\n      if(pending<=0){ showSection('media'); renderPreview(); }\n    };\n    reader.readAsDataURL(file);\n  });\n}\nfunction removeImg(type, idx){\n  if(type==='logo') imgs.logo=null;\n  else if(type==='headshot') imgs.headshot=null;\n  else if(type==='business'){ imgs.business.splice(idx,1); if(imgs.coverIdx>=imgs.business.length) imgs.coverIdx=0; }\n  else if(type==='docs') imgs.docs.splice(idx,1);\n  showSection('media'); renderPreview();\n}\nfunction setCoverPhoto(idx){\n  imgs.coverIdx=idx;\n  showSection('media'); renderPreview();\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  INTAKE FORM (DOCX \u2192 auto-fill)\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nasync function handleIntakeUpload(input){\n  const file = input.files[0];\n  if(!file) return;\n  const status = document.getElementById('intakeStatus');\n  status.textContent = '\u23f3 Loading mammoth.js\u2026';\n  \/\/ Lazy-load mammoth\n  if(!window.mammoth){\n    await new Promise((res,rej)=>{\n      const s=document.createElement('script');\n      s.src='https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/mammoth\/1.6.0\/mammoth.browser.min.js';\n      s.onload=res; s.onerror=rej;\n      document.head.appendChild(s);\n    });\n  }\n  status.textContent = '\u23f3 Parsing document\u2026';\n  try {\n    const arrayBuffer = await file.arrayBuffer();\n    const result = await mammoth.extractRawText({arrayBuffer});\n    const text = result.value;\n    parseIntakeText(text);\n    saveData(); renderPreview(); updateNavDots();\n    status.textContent = `\u2705 Intake form parsed \u2014 ${Object.values(D).filter(v=>v&&v!==false&&v!=='').length} fields populated.`;\n    showToast('Intake form imported!','success');\n  } catch(err){\n    status.textContent = '\u274c Could not parse document. Try saving as DOCX.';\n    showToast('Parse error: '+err.message,'error');\n  }\n}\n\nfunction parseIntakeText(text){\n  \/\/ Universal key:value parser for intake form text\n  const lines = text.split(\/\\n\/).map(l=>l.trim()).filter(Boolean);\n  const map = {\n    'business name': 'businessName','business legal name':'businessName',\n    'tagline':'tagline','slogan':'tagline',\n    'industry':'industry','type of business':'industry',\n    'year established':'established','year founded':'established',\n    'location':'location','city':'location',\n    'entity type':'entityType','business structure':'entityType',\n    'hours of operation':'hoursOfOperation','business hours':'hoursOfOperation',\n    'website':'website','web site':'website',\n    'instagram':'socialInstagram','facebook':'socialFacebook',\n    'business description':'businessOverview','overview':'businessOverview','description':'businessOverview',\n    'products':'productsServices','services':'productsServices','products and services':'productsServices',\n    'customer type':'customerTypes','customers':'customerTypes','target customers':'customerTypes',\n    'top customers':'topCustomers','major accounts':'topCustomers',\n    'seasonality':'seasonality',\n    'key employees':'keyEmployees','employees':'keyEmployees',\n    'technology':'systems','systems':'systems','software':'systems',\n    'licenses':'licenses','permits':'licenses','certifications':'licenses',\n    'owner name':'ownerName','seller name':'ownerName',\n    'owner hours':'ownerHoursPerWeek','hours per week':'ownerHoursPerWeek',\n    'asking price':'askingPrice','list price':'askingPrice',\n    'annual revenue':'revenue3','revenue':'revenue3','gross revenue':'revenue3','sales':'revenue3',\n    'sde':'sde3','seller discretionary earnings':'sde3','cash flow':'sde3',\n    'ebitda':'ebitda',\n    'inventory':'inventory',\n    'ff&e':'ffe','furniture':'ffe','fixtures':'ffe','equipment':'ffe',\n    'real estate':'realEstate',\n    'lease type':'leaseType',\n    'lease expiry':'leaseExpiry','lease expires':'leaseExpiry','lease term':'leaseExpiry',\n    'monthly rent':'monthlyRent','rent':'monthlyRent',\n    'square footage':'squareFootage','sq ft':'squareFootage','size':'squareFootage',\n    'reason for sale':'reasonForSale','why selling':'reasonForSale',\n    'down payment':'downPayment',\n    'finance terms':'financeTerms','financing':'financeTerms',\n    'training':'trainingWeeks','transition period':'trainingWeeks',\n    'non-compete':'nonCompete','non compete':'nonCompete',\n    'franchise name':'franchiseName','franchise brand':'franchiseName',\n    'franchise fee':'franchiseFee','royalty':'royaltyRate','royalty rate':'royaltyRate',\n    'broker name':'brokerName','agent name':'brokerName',\n    'broker title':'brokerTitle','broker phone':'brokerPhone','broker email':'brokerEmail',\n  };\n  lines.forEach(line=>{\n    const colonIdx = line.indexOf(':');\n    if(colonIdx<0) return;\n    const rawKey = line.substring(0,colonIdx).toLowerCase().trim().replace(\/[*_\\-]+\/g,'').trim();\n    const val = line.substring(colonIdx+1).trim();\n    if(!val) return;\n    \/\/ Try direct match\n    if(map[rawKey] && val){ D[map[rawKey]] = val; return; }\n    \/\/ Try partial match\n    for(const [k,field] of Object.entries(map)){\n      if(rawKey.includes(k) || k.includes(rawKey)){\n        D[field]=val; return;\n      }\n    }\n  });\n  \/\/ Handle year columns (revenue1, revenue2 from context)\n  const revPattern = \/(?:revenue|sales)[^\\n]*?(\\$[\\d,]+(?:\\.\\d+)?[KkMm]?)\/gi;\n  let revMatches=[]; let m;\n  while((m=revPattern.exec(text))!==null) revMatches.push(m[1]);\n  if(revMatches[0] && !D.revenue1) D.revenue1=revMatches[0];\n  if(revMatches[1] && !D.revenue2) D.revenue2=revMatches[1];\n  if(revMatches[2] && !D.revenue3) D.revenue3=revMatches[2];\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  AI ENHANCE\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nasync function aiEnhance(field, prompt){\n  const btn = event.target;\n  const origLabel = btn.innerHTML;\n  btn.disabled=true; btn.innerHTML='<span class=\"spin gold\"><\/span> Enhancing\u2026';\n  try {\n    const base = getApiBase();\n    let r;\n    try {\n      r = await fetch(`${base}\/api\/cim\/enhance`,{\n        method:'POST', headers:{'Content-Type':'application\/json'},\n        body: JSON.stringify({\n          section: field,\n          existing: D[field]||'',\n          company: D.businessName||'',\n          industry: D.industry||'',\n          tone: document.getElementById('toneSelect').value\n        })\n      });\n    } catch(netErr) {\n      throw new Error('Cannot reach the AI server. Make sure you are using the live app (not the standalone HTML file) and the API server is running.');\n    }\n    if(!r.ok) throw new Error('Server error '+ r.status +': '+ await r.text());\n    const data = await r.json();\n    const enhanced = data.content || data.enhanced || data.result || '';\n    if(!enhanced) throw new Error('AI returned an empty response. Try again.');\n    D[field] = enhanced;\n    saveData(); renderPreview();\n    const activeNav = document.querySelector('.snav-btn.active');\n    if(activeNav) showSection(activeNav.id.replace('nav-',''));\n    showToast('AI enhancement applied!','success');\n  } catch(e){\n    showToast('AI error: '+e.message,'error');\n  } finally {\n    btn.disabled=false; btn.innerHTML=origLabel;\n  }\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  PAGINATION\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction prevPage(){ if(currentPage>0){ currentPage--; scrollToPage(); } }\nfunction nextPage(){ if(currentPage<totalPages-1){ currentPage++; scrollToPage(); } }\nfunction scrollToPage(){\n  const pages = document.querySelectorAll('.cim-page');\n  if(pages[currentPage]) pages[currentPage].scrollIntoView({behavior:'smooth',block:'start'});\n  updatePageIndicator();\n}\nfunction updatePageIndicator(){\n  const pages = document.querySelectorAll('.cim-page');\n  totalPages = pages.length;\n  document.getElementById('pageIndicator').textContent=`Page ${currentPage+1} of ${totalPages}`;\n  document.getElementById('btnPrev').disabled=currentPage===0;\n  document.getElementById('btnNext').disabled=currentPage>=totalPages-1;\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  ZOOM\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction applyZoom(){\n  const z = parseFloat(document.getElementById('zoomSel').value);\n  document.getElementById('cimDocument').style.transform=`scale(${z})`;\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  RENDER PREVIEW\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction renderPreview(){\n  const doc = document.getElementById('cimDocument');\n  const t = currentTemplate;\n  const biz = D.businessName || 'Business Name';\n  const company = D.companyName || '360 Biz Brokers';\n  const pages = [];\n\n  if(t===1) pages.push(...buildT1Pages(biz, company));\n  else if(t===2) pages.push(...buildT2Pages(biz, company));\n  else pages.push(...buildT3Pages(biz, company));\n\n  doc.innerHTML = pages.join('');\n  totalPages = doc.querySelectorAll('.cim-page').length;\n  if(currentPage>=totalPages) currentPage=0;\n  updatePageIndicator();\n  applyZoom();\n  \/\/ Init charts\n  setTimeout(initCharts, 50);\n}\n\n\/\/ \u2500\u2500\u2500 HELPERS used in all templates \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction kvRow(label, val, wide=false){\n  if(!val && val!==0) return '';\n  return `<div class=\"t1-kv-cell${wide?' style=\"grid-column:span 2\"':''}\"><div class=\"kv-label\">${label}<\/div><div class=\"kv-val\">${val}<\/div><\/div>`;\n}\nfunction maybeRow(label, val){ return val ? `<tr><td style=\"font-size:.7rem;color:#888;padding:5px 8px;border-bottom:1px solid #f5f5f5;width:38%\">${label}<\/td><td style=\"font-size:.8rem;padding:5px 8px;border-bottom:1px solid #f5f5f5;font-weight:500\">${val}<\/td><\/tr>` : ''; }\nfunction coverPhotoHtml(className='biz-photo'){\n  const url = imgs.business[imgs.coverIdx];\n  return url ? `<img decoding=\"async\" class=\"${className}\" src=\"${url}\" alt=\"Business\">` : '';\n}\nfunction coverSelectOverlay(){\n  if(imgs.business.length===0) return '';\n  const thumbs = imgs.business.map((url,i)=>`<div class=\"cover-ps-thumb ${i===imgs.coverIdx?'active':''}\" onclick=\"setCoverPhoto(${i})\"><img decoding=\"async\" src=\"${url}\"><\/div>`).join('');\n  return `<div class=\"cover-photo-select\">${thumbs}<\/div>`;\n}\nfunction photoPlaceholder(iconSize='3rem'){\n  return `<div class=\"photo-placeholder\"><span class=\"ph-icon\" style=\"font-size:${iconSize}\">\ud83d\udcf8<\/span><span>Upload business photo<br>in Media & Uploads<\/span><\/div>`;\n}\nfunction finCards(){\n  const items = [\n    {label:'Asking Price', val:fmt(D.askingPrice), sub:'Listed price'},\n    {label:'TTM Revenue', val:fmt(D.revenue3||D.revenue2||D.revenue1), sub:'Most recent year'},\n    {label:'SDE \/ Cash Flow', val:fmt(D.sde3||D.sde2||D.sde1), sub:'Seller discretionary earnings'},\n  ];\n  return items.filter(i=>i.val).map(i=>`<div class=\"t1-fin-card\"><div class=\"fc-label\">${i.label}<\/div><div class=\"fc-val\">${i.val}<\/div><div class=\"fc-sub\">${i.sub}<\/div><\/div>`).join('');\n}\nfunction revenueChartHtml(chartId){\n  const years=[], revs=[], sdes=[];\n  if(D.revenue1){years.push('Year 1');revs.push(parseNum(D.revenue1));sdes.push(parseNum(D.sde1));}\n  if(D.revenue2){years.push('Year 2');revs.push(parseNum(D.revenue2));sdes.push(parseNum(D.sde2));}\n  if(D.revenue3){years.push('TTM');revs.push(parseNum(D.revenue3));sdes.push(parseNum(D.sde3));}\n  if(!years.length) return '';\n  return `<div class=\"t1-chart-wrap\"><canvas id=\"${chartId}\" data-years='${JSON.stringify(years)}' data-revs='${JSON.stringify(revs)}' data-sdes='${JSON.stringify(sdes)}'><\/canvas><\/div>`;\n}\nfunction parseNum(v){ if(!v) return 0; return parseFloat(String(v).replace(\/[^0-9.]\/g,''))||0; }\n\n\/\/ \u2500\u2500\u2500 T1 PAGES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildT1Pages(biz, company){\n  const accent='#c9a84c', dark='#1a1a2e';\n  const footer=(pg)=>`<div class=\"t1-footer\"><span class=\"tf-company\">${company}<\/span><span class=\"tf-conf\">STRICTLY CONFIDENTIAL<\/span><span class=\"tf-page\">${pg}<\/span><\/div>`;\n\n  \/\/ Broker row HTML\n  const brokerRow = `<div class=\"t1-broker-row\">\n    <div class=\"t1-broker-photo\">${imgs.headshot?`<img decoding=\"async\" src=\"${imgs.headshot}\">`:'\ud83d\udc64'}<\/div>\n    <div class=\"t1-broker-info\">\n      <div class=\"name\">${D.brokerName||'Your Broker Name'}<\/div>\n      <div class=\"role\">${D.brokerTitle||'Business Broker'} \u00b7 ${company}<\/div>\n      <div class=\"contact\">${[D.brokerPhone,D.brokerEmail].filter(Boolean).join(' \u00b7 ')}<\/div>\n    <\/div>\n  <\/div>`;\n\n  \/\/ Page 1: Cover\n  const p1 = `<div class=\"cim-page\">\n  <div class=\"t1-cover\">\n    <div class=\"t1-cover-left\">\n      <div class=\"t1-accent\"><\/div>\n      <div class=\"t1-conf-badge\">Confidential Information Memorandum<\/div>\n      <div class=\"t1-cover-title\">${biz}<\/div>\n      ${D.tagline?`<div class=\"t1-cover-subtitle\">${D.tagline}<\/div>`:''}\n      <div class=\"t1-cover-meta\">\n        ${D.industry?`<div class=\"t1-meta-row\"><span class=\"t1-meta-label\">Industry<\/span><span class=\"t1-meta-value\">${D.industry}<\/span><\/div>`:''}\n        ${D.location?`<div class=\"t1-meta-row\"><span class=\"t1-meta-label\">Location<\/span><span class=\"t1-meta-value\">${D.location}<\/span><\/div>`:''}\n        ${D.established?`<div class=\"t1-meta-row\"><span class=\"t1-meta-label\">Est.<\/span><span class=\"t1-meta-value\">${D.established}<\/span><\/div>`:''}\n        ${D.askingPrice?`<div class=\"t1-meta-row\"><span class=\"t1-meta-label\">Asking Price<\/span><span class=\"t1-meta-value\" style=\"color:#c9a84c;font-size:1rem;font-weight:700\">${fmt(D.askingPrice)}<\/span><\/div>`:''}\n        ${D.revenue3||D.revenue2||D.revenue1?`<div class=\"t1-meta-row\"><span class=\"t1-meta-label\">Revenue (TTM)<\/span><span class=\"t1-meta-value\">${fmt(D.revenue3||D.revenue2||D.revenue1)}<\/span><\/div>`:''}\n        ${D.sde3||D.sde2||D.sde1?`<div class=\"t1-meta-row\"><span class=\"t1-meta-label\">SDE<\/span><span class=\"t1-meta-value\">${fmt(D.sde3||D.sde2||D.sde1)}<\/span><\/div>`:''}\n      <\/div>\n      <div class=\"t1-cover-footer\">${brokerRow}<\/div>\n    <\/div>\n    <div class=\"t1-cover-right\">\n      ${imgs.business.length ? `<img decoding=\"async\" class=\"biz-photo\" src=\"${imgs.business[imgs.coverIdx]}\" alt=\"Business\">` : photoPlaceholder('3.5rem')}\n      ${coverSelectOverlay()}\n    <\/div>\n  <\/div>\n<\/div>`;\n\n  \/\/ Page 2: Confidentiality\n  const p2 = `<div class=\"cim-page\">\n  <div class=\"t1-conf-page\">\n    ${imgs.logo?`<img decoding=\"async\" class=\"cp-logo\" src=\"${imgs.logo}\" alt=\"Logo\">`:`<div class=\"cp-logo-ph\">\ud83c\udff7\ufe0f<\/div>`}\n    <h2>Confidentiality &amp; Non-Disclosure<\/h2>\n    <p>This Confidential Information Memorandum (\"CIM\") has been prepared by <strong>${company}<\/strong> on behalf of the selling party and is being provided to qualified prospective buyers for informational purposes only.<\/p>\n    <p>The information contained herein is <strong>strictly confidential<\/strong>. By accepting this document, the recipient agrees not to disclose any of its contents to any third party without the prior written consent of the seller or ${company}.<\/p>\n    <p>This CIM does not constitute an offer to sell or a solicitation of an offer to buy any securities or assets. All financial projections and forward-looking statements are based on information provided by the seller and have not been independently verified.<\/p>\n    <p>Prospective buyers are encouraged to conduct their own due diligence and to consult with their legal, financial, and tax advisors before making any investment decision.<\/p>\n    <div class=\"cp-signature\">\n      <div class=\"cp-sig-line\">Prepared by ${D.brokerName||'Broker'} \u00b7 ${company}<\/div>\n      <div style=\"font-size:.7rem;color:#bbb;margin-top:4px\">Date: ___________________<\/div>\n    <\/div>\n  <\/div>\n  ${footer('2')}\n<\/div>`;\n\n  \/\/ Page 3: Business Overview\n  const overviewContent = D.businessOverview||D.productsServices ? `\n    ${D.businessOverview?`<div class=\"t1-body\">${D.businessOverview}<\/div>`:''}\n    ${D.productsServices?`<div class=\"t1-section-title\">Products &amp; Services<\/div><div class=\"t1-body\">${D.productsServices}<\/div>`:''}\n  ` : `<div class=\"t1-body\" style=\"color:#ccc;font-style:italic\">Business overview will appear here once filled in.<\/div>`;\n\n  const bizKVs = [\n    kvRow('Industry', D.industry),\n    kvRow('Location', D.location),\n    kvRow('Est.', D.established),\n    kvRow('Entity Type', D.entityType),\n    kvRow('Hours', D.hoursOfOperation),\n    kvRow('Website', D.website),\n    kvRow('Customer Types', D.customerTypes),\n    kvRow('Seasonality', D.seasonality),\n  ].filter(Boolean).join('');\n\n  const p3 = `<div class=\"cim-page t1-page\" style=\"padding-bottom:60px\">\n  <div class=\"t1-page-header\"><div class=\"ph-title\">Business Overview<\/div><div class=\"ph-page\">Page 3<\/div><\/div>\n  ${overviewContent}\n  ${bizKVs ? `<div class=\"t1-kv-grid\">${bizKVs}<\/div>` : ''}\n  ${D.ownerName||D.keyEmployees ? `\n    <div class=\"t1-section-title\">Leadership &amp; Team<\/div>\n    ${D.ownerName?`<div class=\"t1-body\"><strong>Owner:<\/strong> ${D.ownerName}${D.ownerHoursPerWeek?' \u2014 '+D.ownerHoursPerWeek+' hrs\/week':''}<\/div>`:''}\n    ${D.keyEmployees?`<div class=\"t1-body\"><strong>Key Employees:<\/strong> ${D.keyEmployees}<\/div>`:''}\n  ` : ''}\n  ${imgs.business.length>1 ? `<div class=\"t1-photo-row\">${imgs.business.slice(1,3).map(url=>`<img decoding=\"async\" src=\"${url}\" alt=\"Business\">`).join('')}<\/div>` : ''}\n  ${footer('3')}\n<\/div>`;\n\n  \/\/ Page 4: Financial Summary\n  const finC = finCards();\n  const chartHtml = revenueChartHtml('chart1');\n  const p4 = `<div class=\"cim-page t1-page\" style=\"padding-bottom:60px\">\n  <div class=\"t1-page-header\"><div class=\"ph-title\">Financial Summary<\/div><div class=\"ph-page\">Page 4<\/div><\/div>\n  ${finC?`<div class=\"t1-financials-row\">${finC}<\/div>`:''}\n  ${chartHtml}\n  <table style=\"width:100%;border-collapse:collapse;margin-bottom:16px\">\n    ${D.askingPrice?maybeRow('Asking Price',fmt(D.askingPrice)):''}\n    ${D.revenue1?maybeRow('Revenue \u2014 Year 1',fmt(D.revenue1)):''}\n    ${D.revenue2?maybeRow('Revenue \u2014 Year 2',fmt(D.revenue2)):''}\n    ${D.revenue3?maybeRow('Revenue \u2014 TTM',fmt(D.revenue3)):''}\n    ${D.sde1?maybeRow('SDE \u2014 Year 1',fmt(D.sde1)):''}\n    ${D.sde2?maybeRow('SDE \u2014 Year 2',fmt(D.sde2)):''}\n    ${D.sde3?maybeRow('SDE \u2014 TTM',fmt(D.sde3)):''}\n    ${D.ebitda?maybeRow('EBITDA',fmt(D.ebitda)):''}\n    ${D.inventory?maybeRow('Inventory',fmt(D.inventory)):''}\n    ${D.ffe?maybeRow('FF&E',fmt(D.ffe)):''}\n    ${D.realEstate?maybeRow('Real Estate',D.realEstate):''}\n  <\/table>\n  ${D.addbacks?`<div class=\"t1-highlight-box\"><div class=\"hb-label\">Addbacks<\/div><div class=\"hb-val\" style=\"font-size:1rem\">${D.addbacks}<\/div><\/div>`:''}\n  ${D.finNote?`<div class=\"t1-body\" style=\"font-size:.78rem;color:#666\">${D.finNote}<\/div>`:''}\n  ${footer('4')}\n<\/div>`;\n\n  \/\/ Page 5: Operations & Deal Terms\n  const p5 = `<div class=\"cim-page t1-page\" style=\"padding-bottom:60px\">\n  <div class=\"t1-page-header\"><div class=\"ph-title\">Operations &amp; Deal Terms<\/div><div class=\"ph-page\">Page 5<\/div><\/div>\n  ${D.leaseType||D.leaseExpiry||D.monthlyRent||D.squareFootage ? `\n    <div class=\"t1-section-title\">Lease &amp; Location<\/div>\n    <div class=\"t1-kv-grid\">\n      ${kvRow('Lease Type',D.leaseType)}\n      ${kvRow('Lease Expiry',D.leaseExpiry)}\n      ${kvRow('Monthly Rent',D.monthlyRent?fmt(D.monthlyRent):'')}\n      ${kvRow('Square Footage',D.squareFootage)}\n    <\/div>\n  ` : ''}\n  ${D.systems?`<div class=\"t1-section-title\">Systems &amp; Technology<\/div><div class=\"t1-body\">${D.systems}<\/div>`:''}\n  ${D.licenses?`<div class=\"t1-section-title\">Licenses &amp; Permits<\/div><div class=\"t1-body\">${D.licenses}<\/div>`:''}\n  ${D.reasonForSale ? `\n    <div class=\"t1-section-title\">Reason for Sale<\/div>\n    <div class=\"t1-body\">${D.reasonForSale}<\/div>\n  ` : ''}\n  ${D.downPayment||D.financeTerms||D.trainingWeeks||D.nonCompete ? `\n    <div class=\"t1-section-title\">Transaction Overview<\/div>\n    <div class=\"t1-kv-grid\">\n      ${kvRow('Down Payment',D.downPayment?fmt(D.downPayment):'')}\n      ${kvRow('Financing',D.financeTerms||(D.financingSeller?'Seller financing available':''))}\n      ${kvRow('Training Period',D.trainingWeeks?D.trainingWeeks+' weeks':'')}\n      ${kvRow('Non-Compete',D.nonCompete?D.nonCompete+' years':'')}\n    <\/div>\n  ` : ''}\n  ${D.isFranchise && D.franchiseName ? `\n    <div class=\"t1-section-title\">Franchise Details<\/div>\n    <div class=\"t1-kv-grid\">\n      ${kvRow('Franchise Brand',D.franchiseName)}\n      ${kvRow('Franchise Fee',D.franchiseFee?fmt(D.franchiseFee):'')}\n      ${kvRow('Royalty Rate',D.royaltyRate)}\n      ${kvRow('Term',D.franchiseTerm)}\n      ${kvRow('Transferable',D.franchiseTransferable)}\n    <\/div>\n  ` : ''}\n  ${footer('5')}\n<\/div>`;\n\n  \/\/ Page 6: Know the Broker\n  const p6 = `<div class=\"cim-page\">\n  <div class=\"t1-broker-page\">\n    <div class=\"t1-broker-headshot\">\n      ${imgs.headshot?`<img decoding=\"async\" src=\"${imgs.headshot}\" alt=\"Broker\">`:`<div class=\"ph-holder\">Upload broker headshot in Media &amp; Uploads<\/div>`}\n      <div style=\"margin-top:12px;text-align:center\">\n        <div style=\"font-size:.85rem;font-weight:700;color:#1a1a2e\">${D.brokerName||'Broker Name'}<\/div>\n        <div style=\"font-size:.72rem;color:#888\">${D.brokerTitle||'Business Broker'}<\/div>\n        ${D.brokerPhone?`<div style=\"font-size:.72rem;color:#888;margin-top:4px\">${D.brokerPhone}<\/div>`:''}\n        ${D.brokerEmail?`<div style=\"font-size:.72rem;color:#c9a84c;margin-top:2px\">${D.brokerEmail}<\/div>`:''}\n      <\/div>\n    <\/div>\n    <div class=\"t1-broker-content\">\n      <div class=\"t1-page-header\" style=\"margin-bottom:24px\"><div class=\"ph-title\">Know Your Broker<\/div><\/div>\n      ${D.brokerBio?`<div class=\"t1-body\" style=\"font-size:.85rem\">${D.brokerBio}<\/div>`:'<div class=\"t1-body\" style=\"color:#ccc;font-style:italic\">Broker bio will appear here once filled in.<\/div>'}\n      <div style=\"margin-top:32px;padding-top:20px;border-top:1px solid #eee\">\n        ${imgs.logo?`<img decoding=\"async\" src=\"${imgs.logo}\" style=\"height:40px;object-fit:contain;margin-bottom:12px;display:block\" alt=\"Logo\">`:''}\n        <div style=\"font-size:.82rem;font-weight:700;color:#1a1a2e\">${company}<\/div>\n        ${D.companyPhone?`<div style=\"font-size:.75rem;color:#666\">${D.companyPhone}<\/div>`:''}\n        ${D.companyEmail?`<div style=\"font-size:.75rem;color:#c9a84c\">${D.companyEmail}<\/div>`:''}\n        ${D.companyWebsite?`<div style=\"font-size:.75rem;color:#999\">${D.companyWebsite}<\/div>`:''}\n      <\/div>\n    <\/div>\n  <\/div>\n  ${footer('6')}\n<\/div>`;\n\n  return [p1, p2, p3, p4, p5, p6];\n}\n\n\/\/ \u2500\u2500\u2500 T2 PAGES (Modern Bold) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildT2Pages(biz, company){\n  const footer=(pg)=>`<div class=\"t2-footer\"><span class=\"tf-company\">${company}<\/span><span class=\"tf-conf\">STRICTLY CONFIDENTIAL<\/span><span class=\"tf-page\">${pg}<\/span><\/div>`;\n\n  const brokerFoot = `<div class=\"t2-cover-footer\">\n    <div class=\"t2-broker-photo\">${imgs.headshot?`<img decoding=\"async\" src=\"${imgs.headshot}\">`:'\ud83d\udc64'}<\/div>\n    <div class=\"t2-broker-info\">\n      <div class=\"name\">${D.brokerName||'Broker Name'}<\/div>\n      <div class=\"role\">${D.brokerTitle||'Business Broker'} \u00b7 ${company}<\/div>\n      <div class=\"contact\">${[D.brokerPhone,D.brokerEmail].filter(Boolean).join(' \u00b7 ')}<\/div>\n    <\/div>\n  <\/div>`;\n\n  const p1 = `<div class=\"cim-page\">\n  <div class=\"t2-cover\">\n    <div class=\"t2-cover-photo\">\n      ${imgs.business.length ? `<img decoding=\"async\" class=\"biz-photo\" src=\"${imgs.business[imgs.coverIdx]}\" alt=\"Business\">` : photoPlaceholder()}\n      ${coverSelectOverlay()}\n    <\/div>\n    <div class=\"t2-cover-body\">\n      <div class=\"t2-conf-badge\">Confidential Information Memorandum<\/div>\n      <div class=\"t2-cover-title\">${biz}<\/div>\n      ${D.tagline?`<div class=\"t2-cover-subtitle\">${D.tagline}<\/div>`:''}\n      <div class=\"t2-meta-grid\" style=\"margin-bottom:32px\">\n        ${D.industry?`<div class=\"t2-meta-card\"><div class=\"mc-label\">Industry<\/div><div class=\"mc-val\">${D.industry}<\/div><\/div>`:''}\n        ${D.location?`<div class=\"t2-meta-card\"><div class=\"mc-label\">Location<\/div><div class=\"mc-val\">${D.location}<\/div><\/div>`:''}\n        ${D.askingPrice?`<div class=\"t2-meta-card\"><div class=\"mc-label\">Asking Price<\/div><div class=\"mc-val\" style=\"color:#2563eb\">${fmt(D.askingPrice)}<\/div><\/div>`:''}\n        ${D.revenue3||D.revenue2||D.revenue1?`<div class=\"t2-meta-card\"><div class=\"mc-label\">Revenue (TTM)<\/div><div class=\"mc-val\">${fmt(D.revenue3||D.revenue2||D.revenue1)}<\/div><\/div>`:''}\n        ${D.sde3||D.sde2||D.sde1?`<div class=\"t2-meta-card\"><div class=\"mc-label\">SDE<\/div><div class=\"mc-val\">${fmt(D.sde3||D.sde2||D.sde1)}<\/div><\/div>`:''}\n        ${D.established?`<div class=\"t2-meta-card\"><div class=\"mc-label\">Established<\/div><div class=\"mc-val\">${D.established}<\/div><\/div>`:''}\n      <\/div>\n      ${brokerFoot}\n    <\/div>\n  <\/div>\n<\/div>`;\n\n  const p2 = `<div class=\"cim-page t2-page\" style=\"padding-bottom:60px\">\n  <div class=\"t2-page-header\"><div class=\"ph-title\">Confidentiality Notice<\/div><\/div>\n  <div class=\"t1-body\">This Confidential Information Memorandum has been prepared by <strong>${company}<\/strong> on behalf of the seller. By receiving this document, the recipient agrees to maintain strict confidentiality and not to reproduce or distribute its contents without written consent.<\/div>\n  <div class=\"t1-body\">All information herein has been provided by the seller and has not been independently verified. Prospective buyers should perform their own due diligence.<\/div>\n  ${footer('2')}\n<\/div>`;\n\n  const p3 = `<div class=\"cim-page t2-page\" style=\"padding-bottom:60px\">\n  <div class=\"t2-page-header\"><div class=\"ph-title\">Business Overview<\/div><\/div>\n  ${D.businessOverview?`<div class=\"t1-body\">${D.businessOverview}<\/div>`:''}\n  ${D.productsServices?`<div style=\"font-family:'Montserrat',sans-serif;font-size:.95rem;font-weight:700;color:#111;margin:18px 0 8px\">Products &amp; Services<\/div><div class=\"t1-body\">${D.productsServices}<\/div>`:''}\n  <div class=\"t1-kv-grid\" style=\"margin-top:16px\">\n    ${kvRow('Industry',D.industry)}${kvRow('Location',D.location)}${kvRow('Entity Type',D.entityType)}${kvRow('Hours',D.hoursOfOperation)}${kvRow('Customer Types',D.customerTypes)}${kvRow('Seasonality',D.seasonality)}\n  <\/div>\n  ${footer('3')}\n<\/div>`;\n\n  const p4 = `<div class=\"cim-page t2-page\" style=\"padding-bottom:60px\">\n  <div class=\"t2-page-header\"><div class=\"ph-title\">Financial Summary<\/div><\/div>\n  <div class=\"t1-financials-row\">${finCards()}<\/div>\n  ${revenueChartHtml('chart2')}\n  <table style=\"width:100%;border-collapse:collapse\">\n    ${D.revenue1?maybeRow('Revenue \u2014 Year 1',fmt(D.revenue1)):''}\n    ${D.revenue2?maybeRow('Revenue \u2014 Year 2',fmt(D.revenue2)):''}\n    ${D.revenue3?maybeRow('Revenue \u2014 TTM',fmt(D.revenue3)):''}\n    ${D.sde1?maybeRow('SDE \u2014 Year 1',fmt(D.sde1)):''}\n    ${D.sde2?maybeRow('SDE \u2014 Year 2',fmt(D.sde2)):''}\n    ${D.sde3?maybeRow('SDE \u2014 TTM',fmt(D.sde3)):''}\n    ${D.inventory?maybeRow('Inventory',fmt(D.inventory)):''}\n    ${D.ffe?maybeRow('FF&E',fmt(D.ffe)):''}\n  <\/table>\n  ${footer('4')}\n<\/div>`;\n\n  const p5 = `<div class=\"cim-page t2-page\" style=\"padding-bottom:60px\">\n  <div class=\"t2-page-header\"><div class=\"ph-title\">Operations &amp; Deal Terms<\/div><\/div>\n  ${D.leaseType||D.monthlyRent?`<div class=\"t1-kv-grid\">${kvRow('Lease Type',D.leaseType)}${kvRow('Lease Expiry',D.leaseExpiry)}${kvRow('Monthly Rent',D.monthlyRent?fmt(D.monthlyRent):'')  }${kvRow('Square Footage',D.squareFootage)}<\/div>`:''}\n  ${D.reasonForSale?`<div style=\"font-family:'Montserrat',sans-serif;font-size:.92rem;font-weight:700;margin:16px 0 8px\">Reason for Sale<\/div><div class=\"t1-body\">${D.reasonForSale}<\/div>`:''}\n  <div class=\"t1-kv-grid\" style=\"margin-top:16px\">\n    ${kvRow('Down Payment',D.downPayment?fmt(D.downPayment):'')}\n    ${kvRow('Financing',D.financeTerms)}\n    ${kvRow('Training',D.trainingWeeks?D.trainingWeeks+' weeks':'')}\n    ${kvRow('Non-Compete',D.nonCompete?D.nonCompete+' years':'')}\n  <\/div>\n  ${footer('5')}\n<\/div>`;\n\n  const p6 = `<div class=\"cim-page\">\n  <div class=\"t2-broker-page\">\n    <div class=\"t1-broker-headshot\">\n      ${imgs.headshot?`<img decoding=\"async\" src=\"${imgs.headshot}\" alt=\"Broker\" style=\"border-radius:10px;width:200px;height:240px;object-fit:cover\">`:`<div class=\"ph-holder\" style=\"width:200px;height:240px;border-radius:10px;border:2px dashed #ddd;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#bbb;text-align:center;padding:10px\">Upload broker headshot<\/div>`}\n      <div style=\"margin-top:12px;text-align:center\">\n        <div style=\"font-size:.85rem;font-weight:700;color:#111\">${D.brokerName||'Broker Name'}<\/div>\n        <div style=\"font-size:.72rem;color:#2563eb\">${D.brokerTitle||'Business Broker'}<\/div>\n        ${D.brokerPhone?`<div style=\"font-size:.72rem;color:#888;margin-top:4px\">${D.brokerPhone}<\/div>`:''}\n        ${D.brokerEmail?`<div style=\"font-size:.72rem;color:#2563eb;margin-top:2px\">${D.brokerEmail}<\/div>`:''}\n      <\/div>\n    <\/div>\n    <div class=\"t1-broker-content\">\n      <div class=\"t2-page-header\" style=\"margin-bottom:24px\"><div class=\"ph-title\">Know Your Broker<\/div><\/div>\n      ${D.brokerBio?`<div class=\"t1-body\">${D.brokerBio}<\/div>`:'<div class=\"t1-body\" style=\"color:#ccc;font-style:italic\">Broker bio here.<\/div>'}\n      <div style=\"margin-top:32px;padding-top:20px;border-top:1px solid #eee\">\n        ${imgs.logo?`<img decoding=\"async\" src=\"${imgs.logo}\" style=\"height:40px;object-fit:contain;margin-bottom:12px;display:block\" alt=\"Logo\">`:''}\n        <div style=\"font-size:.82rem;font-weight:700;color:#111\">${company}<\/div>\n        ${D.companyPhone?`<div style=\"font-size:.75rem;color:#666\">${D.companyPhone}<\/div>`:''}\n        ${D.companyEmail?`<div style=\"font-size:.75rem;color:#2563eb\">${D.companyEmail}<\/div>`:''}\n      <\/div>\n    <\/div>\n  <\/div>\n  ${footer('6')}\n<\/div>`;\n\n  return [p1, p2, p3, p4, p5, p6];\n}\n\n\/\/ \u2500\u2500\u2500 T3 PAGES (Executive Serif) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildT3Pages(biz, company){\n  const footer=(pg)=>`<div class=\"t3-footer\"><span class=\"tf-company\">${company}<\/span><span class=\"tf-conf\">STRICTLY CONFIDENTIAL<\/span><span class=\"tf-page\">${pg}<\/span><\/div>`;\n\n  const brokerFoot=`<div class=\"t3-cover-footer\">\n    <div class=\"t3-broker-photo\">${imgs.headshot?`<img decoding=\"async\" src=\"${imgs.headshot}\">`:'\ud83d\udc64'}<\/div>\n    <div class=\"t3-broker-info\">\n      <div class=\"name\">${D.brokerName||'Broker Name'}<\/div>\n      <div class=\"role\">${D.brokerTitle||'Business Broker'} \u00b7 ${company}<\/div>\n      <div class=\"contact\">${[D.brokerPhone,D.brokerEmail].filter(Boolean).join(' \u00b7 ')}<\/div>\n    <\/div>\n  <\/div>`;\n\n  const p1=`<div class=\"cim-page\">\n  <div class=\"t3-cover\">\n    <div class=\"t3-cover-left\">\n      <div class=\"t3-conf-badge\">Confidential Information Memorandum<\/div>\n      <div class=\"t3-accent\"><\/div>\n      <div class=\"t3-cover-title\">${biz}<\/div>\n      ${D.tagline?`<div class=\"t3-cover-subtitle\">${D.tagline}<\/div>`:''}\n      <div class=\"t3-meta-rows\">\n        ${D.industry?`<div class=\"t3-meta-row\"><span class=\"t3-meta-label\">Industry<\/span><span class=\"t3-meta-value\">${D.industry}<\/span><\/div>`:''}\n        ${D.location?`<div class=\"t3-meta-row\"><span class=\"t3-meta-label\">Location<\/span><span class=\"t3-meta-value\">${D.location}<\/span><\/div>`:''}\n        ${D.established?`<div class=\"t3-meta-row\"><span class=\"t3-meta-label\">Established<\/span><span class=\"t3-meta-value\">${D.established}<\/span><\/div>`:''}\n        ${D.askingPrice?`<div class=\"t3-meta-row\"><span class=\"t3-meta-label\">Asking Price<\/span><span class=\"t3-meta-value\" style=\"color:#8b0000\">${fmt(D.askingPrice)}<\/span><\/div>`:''}\n        ${D.revenue3||D.revenue2||D.revenue1?`<div class=\"t3-meta-row\"><span class=\"t3-meta-label\">Revenue (TTM)<\/span><span class=\"t3-meta-value\">${fmt(D.revenue3||D.revenue2||D.revenue1)}<\/span><\/div>`:''}\n        ${D.sde3||D.sde2||D.sde1?`<div class=\"t3-meta-row\"><span class=\"t3-meta-label\">SDE<\/span><span class=\"t3-meta-value\">${fmt(D.sde3||D.sde2||D.sde1)}<\/span><\/div>`:''}\n      <\/div>\n      ${brokerFoot}\n    <\/div>\n    <div class=\"t3-cover-right\">\n      ${imgs.business.length?`<img decoding=\"async\" class=\"biz-photo\" src=\"${imgs.business[imgs.coverIdx]}\" alt=\"Business\">`:photoPlaceholder()}\n      ${coverSelectOverlay()}\n    <\/div>\n  <\/div>\n<\/div>`;\n\n  const p2=`<div class=\"cim-page t3-page\" style=\"padding-bottom:60px\">\n  <div class=\"t3-page-header\"><div class=\"ph-title\">Confidentiality Notice<\/div><div class=\"ph-page\">2<\/div><\/div>\n  <div class=\"t1-body\">This CIM was prepared by <strong>${company}<\/strong> on behalf of the selling party. All information is strictly confidential and may not be reproduced without written consent.<\/div>\n  ${footer('2')}\n<\/div>`;\n\n  const p3=`<div class=\"cim-page t3-page\" style=\"padding-bottom:60px\">\n  <div class=\"t3-page-header\"><div class=\"ph-title\">Business Overview<\/div><div class=\"ph-page\">3<\/div><\/div>\n  ${D.businessOverview?`<div class=\"t1-body\">${D.businessOverview}<\/div>`:''}\n  ${D.productsServices?`<div class=\"t3-section-title\">Products &amp; Services<\/div><div class=\"t1-body\">${D.productsServices}<\/div>`:''}\n  <div class=\"t1-kv-grid\" style=\"margin-top:16px\">\n    ${kvRow('Industry',D.industry)}${kvRow('Location',D.location)}${kvRow('Entity',D.entityType)}${kvRow('Hours',D.hoursOfOperation)}${kvRow('Customers',D.customerTypes)}${kvRow('Seasonality',D.seasonality)}\n  <\/div>\n  ${footer('3')}\n<\/div>`;\n\n  const p4=`<div class=\"cim-page t3-page\" style=\"padding-bottom:60px\">\n  <div class=\"t3-page-header\"><div class=\"ph-title\">Financial Summary<\/div><div class=\"ph-page\">4<\/div><\/div>\n  <div class=\"t1-financials-row\">${finCards()}<\/div>\n  ${revenueChartHtml('chart3')}\n  <table style=\"width:100%;border-collapse:collapse\">\n    ${D.revenue1?maybeRow('Revenue \u2014 Year 1',fmt(D.revenue1)):''}\n    ${D.revenue2?maybeRow('Revenue \u2014 Year 2',fmt(D.revenue2)):''}\n    ${D.revenue3?maybeRow('Revenue \u2014 TTM',fmt(D.revenue3)):''}\n    ${D.sde1?maybeRow('SDE \u2014 Year 1',fmt(D.sde1)):''}\n    ${D.sde2?maybeRow('SDE \u2014 Year 2',fmt(D.sde2)):''}\n    ${D.sde3?maybeRow('SDE \u2014 TTM',fmt(D.sde3)):''}\n    ${D.inventory?maybeRow('Inventory',fmt(D.inventory)):''}\n    ${D.ffe?maybeRow('FF&E',fmt(D.ffe)):''}\n  <\/table>\n  ${footer('4')}\n<\/div>`;\n\n  const p5=`<div class=\"cim-page t3-page\" style=\"padding-bottom:60px\">\n  <div class=\"t3-page-header\"><div class=\"ph-title\">Operations &amp; Deal Terms<\/div><div class=\"ph-page\">5<\/div><\/div>\n  ${D.leaseType||D.monthlyRent?`<div class=\"t3-section-title\">Lease Details<\/div><div class=\"t1-kv-grid\">${kvRow('Lease Type',D.leaseType)}${kvRow('Expiry',D.leaseExpiry)}${kvRow('Monthly Rent',D.monthlyRent?fmt(D.monthlyRent):'')  }${kvRow('Sq Ft',D.squareFootage)}<\/div>`:''}\n  ${D.reasonForSale?`<div class=\"t3-section-title\">Reason for Sale<\/div><div class=\"t1-body\">${D.reasonForSale}<\/div>`:''}\n  <div class=\"t3-section-title\">Transaction Overview<\/div>\n  <div class=\"t1-kv-grid\">\n    ${kvRow('Down Payment',D.downPayment?fmt(D.downPayment):'')}\n    ${kvRow('Financing',D.financeTerms)}\n    ${kvRow('Training',D.trainingWeeks?D.trainingWeeks+' weeks':'')}\n    ${kvRow('Non-Compete',D.nonCompete?D.nonCompete+' years':'')}\n  <\/div>\n  ${footer('5')}\n<\/div>`;\n\n  const p6=`<div class=\"cim-page\">\n  <div class=\"t3-broker-page\">\n    <div class=\"t1-broker-headshot\">\n      ${imgs.headshot?`<img decoding=\"async\" src=\"${imgs.headshot}\" alt=\"Broker\">`:`<div class=\"ph-holder\" style=\"width:200px;height:240px;border-radius:10px;border:2px dashed #ddd;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#bbb;text-align:center;padding:10px\">Upload broker headshot<\/div>`}\n      <div style=\"margin-top:12px;text-align:center\">\n        <div style=\"font-size:.85rem;font-weight:700;color:#1a0a0a\">${D.brokerName||'Broker Name'}<\/div>\n        <div style=\"font-size:.72rem;color:#8b0000\">${D.brokerTitle||'Business Broker'}<\/div>\n        ${D.brokerPhone?`<div style=\"font-size:.72rem;color:#888;margin-top:4px\">${D.brokerPhone}<\/div>`:''}\n        ${D.brokerEmail?`<div style=\"font-size:.72rem;color:#8b0000;margin-top:2px\">${D.brokerEmail}<\/div>`:''}\n      <\/div>\n    <\/div>\n    <div class=\"t1-broker-content\">\n      <div class=\"t3-page-header\" style=\"margin-bottom:24px\"><div class=\"ph-title\">Know Your Broker<\/div><div class=\"ph-page\">6<\/div><\/div>\n      ${D.brokerBio?`<div class=\"t1-body\">${D.brokerBio}<\/div>`:'<div class=\"t1-body\" style=\"color:#ccc;font-style:italic\">Broker bio here.<\/div>'}\n      <div style=\"margin-top:32px;padding-top:20px;border-top:1px solid #f0e8e8\">\n        ${imgs.logo?`<img decoding=\"async\" src=\"${imgs.logo}\" style=\"height:40px;object-fit:contain;margin-bottom:12px;display:block\" alt=\"Logo\">`:''}\n        <div style=\"font-size:.82rem;font-weight:700;color:#1a0a0a\">${company}<\/div>\n        ${D.companyPhone?`<div style=\"font-size:.75rem;color:#666\">${D.companyPhone}<\/div>`:''}\n        ${D.companyEmail?`<div style=\"font-size:.75rem;color:#8b0000\">${D.companyEmail}<\/div>`:''}\n      <\/div>\n    <\/div>\n  <\/div>\n  ${footer('6')}\n<\/div>`;\n\n  return [p1, p2, p3, p4, p5, p6];\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  CHARTS\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction initCharts(){\n  document.querySelectorAll('canvas[data-years]').forEach(canvas=>{\n    const years=JSON.parse(canvas.dataset.years||'[]');\n    const revs=JSON.parse(canvas.dataset.revs||'[]');\n    const sdes=JSON.parse(canvas.dataset.sdes||'[]');\n    if(!years.length) return;\n    if(canvas._chartInst) canvas._chartInst.destroy();\n    canvas._chartInst = new Chart(canvas,{\n      type:'bar',\n      data:{\n        labels:years,\n        datasets:[\n          {label:'Revenue',data:revs,backgroundColor:'rgba(201,168,76,.7)',borderColor:'#c9a84c',borderWidth:2,borderRadius:5},\n          {label:'SDE',data:sdes,backgroundColor:'rgba(26,26,46,.7)',borderColor:'#1a1a2e',borderWidth:2,borderRadius:5}\n        ]\n      },\n      options:{\n        responsive:true,maintainAspectRatio:false,\n        plugins:{legend:{position:'top',labels:{font:{size:11},padding:12}},tooltip:{callbacks:{label:ctx=>' $'+ctx.parsed.y.toLocaleString()}}},\n        scales:{y:{ticks:{callback:v=>v>=1e6?'$'+(v\/1e6).toFixed(1)+'M':v>=1000?'$'+(v\/1000).toFixed(0)+'K':'$'+v,font:{size:10}},grid:{color:'rgba(0,0,0,.05)'}},x:{grid:{display:false},ticks:{font:{size:11}}}}\n      }\n    });\n  });\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  PDF EXPORT\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction exportPDF(){\n  showToast('Opening print dialog \u2014 choose \"Save as PDF\"\u2026');\n  const style=document.createElement('style');\n  style.id='print-override';\n  style.textContent=`@media print{\n    *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}\n    #appHeader,#formPanel,#previewToolbar,.cover-photo-select,.cover-ps-thumb{display:none!important}\n    #appBody{height:auto!important;margin:0!important;overflow:visible!important}\n    #previewPane{overflow:visible!important;height:auto!important}\n    #previewScroll{overflow:visible!important;padding:0!important;height:auto!important}\n    #cimDocument{transform:none!important;width:816px!important;gap:0!important}\n    .cim-page{page-break-after:always;break-after:page;margin:0!important;overflow:visible!important}\n    body{overflow:auto!important;background:#fff!important}\n    img{max-width:100%!important;display:block!important}\n    .biz-photo{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}\n  }`;\n  document.head.appendChild(style);\n  setTimeout(()=>{\n    window.print();\n    setTimeout(()=>{ const s=document.getElementById('print-override'); if(s)s.remove(); },3000);\n  },300);\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  WORD (.doc) EXPORT\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction exportWord(){\n  showToast('Generating Word document\u2026');\n\n  \/\/ Clone DOM so we can clean it up without affecting the live preview\n  const docClone = document.getElementById('cimDocument').cloneNode(true);\n\n  \/\/ Remove UI-only overlays that shouldn't appear in the export\n  docClone.querySelectorAll('.cover-photo-select,.cover-ps-thumb,.cover-ps-label').forEach(el=>el.remove());\n\n  \/\/ Make cover photo images inline (they use position:absolute in CSS which Word ignores)\n  docClone.querySelectorAll('.biz-photo').forEach(img=>{\n    img.style.cssText='width:100%;height:400px;object-fit:cover;display:block;';\n  });\n\n  \/\/ Ensure all other embedded images are visible\n  docClone.querySelectorAll('img').forEach(img=>{\n    if(!img.style.display) img.style.display='block';\n    if(!img.style.maxWidth) img.style.maxWidth='100%';\n  });\n\n  let pagesHtml='';\n  docClone.querySelectorAll('.cim-page').forEach(p=>{\n    pagesHtml += p.outerHTML + '\\n<br style=\"page-break-after:always\">\\n';\n  });\n\n  const wordDoc=`<html xmlns:o='urn:schemas-microsoft-com:office:office'\n    xmlns:w='urn:schemas-microsoft-com:office:word'\n    xmlns='http:\/\/www.w3.org\/TR\/REC-html40'>\n<head>\n<meta charset='utf-8'>\n<title>CIM \\u2014 ${D.businessName||'Business'}<\/title>\n<!--[if gte mso 9]><xml>\n  <w:WordDocument><w:View>Print<\/w:View><w:Zoom>90<\/w:Zoom><\/w:WordDocument>\n<\/xml><![endif]-->\n<style>\n  body{font-family:Calibri,sans-serif;font-size:11pt;margin:0;padding:0}\n  @page{size:8.5in 11in;margin:0.5in}\n  .cim-page{page-break-after:always;max-width:7.5in;overflow:hidden}\n  .t1-cover,.t2-cover,.t3-cover{display:table;width:100%;table-layout:fixed}\n  .t1-cover-left,.t2-cover-body,.t3-cover-left{display:table-cell;width:58%;background:#1a1a2e;color:#fff;padding:40px 32px;vertical-align:top}\n  .t1-cover-right,.t2-cover-photo,.t3-cover-right{display:table-cell;width:42%;vertical-align:top;overflow:hidden}\n  .t1-cover-title,.t2-cover-title,.t3-cover-title{font-size:20pt;font-weight:bold;color:#fff;font-family:Georgia,serif}\n  .t1-cover-subtitle,.t2-cover-subtitle,.t3-cover-subtitle{font-size:12pt;color:rgba(255,255,255,.6);font-style:italic}\n  .t1-conf-badge,.t2-conf-badge,.t3-conf-badge{font-size:7pt;font-weight:bold;letter-spacing:1pt;border:1px solid #c9a84c;color:#c9a84c;padding:3pt 8pt;display:inline-block;margin-bottom:20pt}\n  .t1-meta-label,.t3-meta-label{font-size:7pt;color:rgba(255,255,255,.4);text-transform:uppercase;font-weight:bold;margin-right:10pt}\n  .t1-meta-value,.t3-meta-value{font-size:9pt;color:rgba(255,255,255,.85);font-weight:600}\n  .t1-footer,.t2-footer,.t3-footer{background:#1a1a2e;color:#fff;padding:6pt 20pt;font-size:7pt;display:table;width:100%;margin-top:20pt}\n  .tf-company,.tf-conf{color:rgba(255,255,255,.5);font-size:7pt}\n  .tf-page{color:#c9a84c;font-size:7pt;font-weight:bold}\n  .t1-page,.t2-page,.t3-page{padding:40pt 48pt;padding-bottom:60pt}\n  .t1-page-header,.t2-page-header,.t3-page-header{border-bottom:2px solid #1a1a2e;padding-bottom:8pt;margin-bottom:20pt}\n  .ph-title{font-size:14pt;font-weight:bold;font-family:Georgia,serif}\n  .t1-kv-grid{display:table;width:100%;border-collapse:collapse;margin-bottom:14pt}\n  .t1-kv-cell{display:table-cell;width:50%;padding:8pt 12pt;border:1px solid #e8e8e8}\n  .kv-label{font-size:6.5pt;font-weight:bold;color:#999;text-transform:uppercase;letter-spacing:1pt}\n  .kv-val{font-size:9pt;font-weight:600;color:#1a1a2e}\n  .t1-fin-card{display:table-cell;width:33%;padding:12pt;border:1px solid #e8ebf0;text-align:center;background:#f8f9fb}\n  .t1-financials-row{display:table;width:100%;margin-bottom:14pt;table-layout:fixed}\n  .t1-body{font-size:10pt;line-height:1.6;color:#333;margin-bottom:12pt}\n  .t1-section-title,.t3-section-title{font-size:11pt;font-weight:bold;font-family:Georgia,serif;margin:16pt 0 6pt}\n  .t1-broker-page,.t2-broker-page,.t3-broker-page{display:table;width:100%;padding:40pt 48pt}\n  .t1-broker-headshot{display:table-cell;width:200pt;vertical-align:top;padding-right:24pt}\n  .t1-broker-content{display:table-cell;vertical-align:top}\n  .t1-highlight-box{background:#f8f5ee;border-left:3pt solid #c9a84c;padding:12pt 16pt;margin-bottom:14pt}\n  table{border-collapse:collapse;width:100%}\n  td{font-size:9pt;padding:5pt 8pt;border-bottom:1pt solid #f0f0f0}\n  img{display:block;max-width:100%}\n<\/style>\n<\/head>\n<body>${pagesHtml}<\/body>\n<\/html>`;\n\n  try {\n    const blob=new Blob([wordDoc],{type:'application\/msword;charset=utf-8'});\n    const url=URL.createObjectURL(blob);\n    const a=document.createElement('a');\n    a.href=url;\n    a.style.display='none';\n    a.download=`CIM_${(D.businessName||'Business').replace(\/[^a-z0-9]\/gi,'_')}.doc`;\n    document.body.appendChild(a);\n    a.click();\n    setTimeout(()=>{ document.body.removeChild(a); URL.revokeObjectURL(url); },3000);\n    showToast('Word document downloaded!','success');\n  } catch(e) {\n    showToast('Download error: '+e.message,'error');\n  }\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/  INIT\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\ndocument.addEventListener('DOMContentLoaded',()=>{\n  loadData();\n  showSection('business');\n  renderPreview();\n  applyZoom();\n  \/\/ Intersection observer for page indicator\n  const scroll=document.getElementById('previewScroll');\n  scroll.addEventListener('scroll',()=>{\n    const pages=document.querySelectorAll('.cim-page');\n    pages.forEach((p,i)=>{\n      const rect=p.getBoundingClientRect();\n      if(rect.top<=200 && rect.bottom>200) currentPage=i;\n    });\n    updatePageIndicator();\n  });\n});\n<\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>CIM Generator Pro\u2122 \u2014 360 Biz Brokers CIM Generator Pro\u2122 Classic Luxury Modern Bold Executive Serif ProfessionalConversationalLuxuryTechnical + New \ud83d\udcc4 Word \u2b07 PDF \ud83d\udccbIntake Form&#8230;<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1309","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CIM Generator V2 - 360 Biz Brokers<\/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:\/\/360bizbrokers.com\/pt\/cim-generator-v2\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CIM Generator V2\" \/>\n<meta property=\"og:description\" content=\"CIM Generator Pro\u2122 \u2014 360 Biz Brokers CIM Generator Pro\u2122 Classic Luxury Modern Bold Executive Serif ProfessionalConversationalLuxuryTechnical + New \ud83d\udcc4 Word \u2b07 PDF \ud83d\udccbIntake Form...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/360bizbrokers.com\/pt\/cim-generator-v2\/\" \/>\n<meta property=\"og:site_name\" content=\"360 Biz Brokers\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-14T16:29:12+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"17 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/360bizbrokers.com\/cim-generator-v2\/\",\"url\":\"https:\/\/360bizbrokers.com\/cim-generator-v2\/\",\"name\":\"CIM Generator V2 - 360 Biz Brokers\",\"isPartOf\":{\"@id\":\"https:\/\/360bizbrokers.com\/#website\"},\"datePublished\":\"2026-06-14T16:26:27+00:00\",\"dateModified\":\"2026-06-14T16:29:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/360bizbrokers.com\/cim-generator-v2\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/360bizbrokers.com\/cim-generator-v2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/360bizbrokers.com\/cim-generator-v2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/360bizbrokers.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CIM Generator V2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/360bizbrokers.com\/#website\",\"url\":\"https:\/\/360bizbrokers.com\/\",\"name\":\"Florida 360 Business Brokers\",\"description\":\"Buy &amp; Sell Businesses Advisory\",\"publisher\":{\"@id\":\"https:\/\/360bizbrokers.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/360bizbrokers.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/360bizbrokers.com\/#organization\",\"name\":\"Florida 360 Business Brokers\",\"url\":\"https:\/\/360bizbrokers.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/360bizbrokers.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/360bizbrokers.com\/wp-content\/uploads\/2025\/12\/LOGO-FLORIDA-360-BUSINESS-BROKERS.jpg\",\"contentUrl\":\"https:\/\/360bizbrokers.com\/wp-content\/uploads\/2025\/12\/LOGO-FLORIDA-360-BUSINESS-BROKERS.jpg\",\"width\":1080,\"height\":1080,\"caption\":\"Florida 360 Business Brokers\"},\"image\":{\"@id\":\"https:\/\/360bizbrokers.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CIM Generator V2 - 360 Biz Brokers","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:\/\/360bizbrokers.com\/pt\/cim-generator-v2\/","og_locale":"pt_BR","og_type":"article","og_title":"CIM Generator V2","og_description":"CIM Generator Pro\u2122 \u2014 360 Biz Brokers CIM Generator Pro\u2122 Classic Luxury Modern Bold Executive Serif ProfessionalConversationalLuxuryTechnical + New \ud83d\udcc4 Word \u2b07 PDF \ud83d\udccbIntake Form...","og_url":"https:\/\/360bizbrokers.com\/pt\/cim-generator-v2\/","og_site_name":"360 Biz Brokers","article_modified_time":"2026-06-14T16:29:12+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. tempo de leitura":"17 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/360bizbrokers.com\/cim-generator-v2\/","url":"https:\/\/360bizbrokers.com\/cim-generator-v2\/","name":"CIM Generator V2 - 360 Biz Brokers","isPartOf":{"@id":"https:\/\/360bizbrokers.com\/#website"},"datePublished":"2026-06-14T16:26:27+00:00","dateModified":"2026-06-14T16:29:12+00:00","breadcrumb":{"@id":"https:\/\/360bizbrokers.com\/cim-generator-v2\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/360bizbrokers.com\/cim-generator-v2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/360bizbrokers.com\/cim-generator-v2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/360bizbrokers.com\/"},{"@type":"ListItem","position":2,"name":"CIM Generator V2"}]},{"@type":"WebSite","@id":"https:\/\/360bizbrokers.com\/#website","url":"https:\/\/360bizbrokers.com\/","name":"Florida 360 Business Brokers","description":"Buy &amp; Sell Businesses Advisory","publisher":{"@id":"https:\/\/360bizbrokers.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/360bizbrokers.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/360bizbrokers.com\/#organization","name":"Florida 360 Business Brokers","url":"https:\/\/360bizbrokers.com\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/360bizbrokers.com\/#\/schema\/logo\/image\/","url":"https:\/\/360bizbrokers.com\/wp-content\/uploads\/2025\/12\/LOGO-FLORIDA-360-BUSINESS-BROKERS.jpg","contentUrl":"https:\/\/360bizbrokers.com\/wp-content\/uploads\/2025\/12\/LOGO-FLORIDA-360-BUSINESS-BROKERS.jpg","width":1080,"height":1080,"caption":"Florida 360 Business Brokers"},"image":{"@id":"https:\/\/360bizbrokers.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/360bizbrokers.com\/pt\/wp-json\/wp\/v2\/pages\/1309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/360bizbrokers.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/360bizbrokers.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/360bizbrokers.com\/pt\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/360bizbrokers.com\/pt\/wp-json\/wp\/v2\/comments?post=1309"}],"version-history":[{"count":0,"href":"https:\/\/360bizbrokers.com\/pt\/wp-json\/wp\/v2\/pages\/1309\/revisions"}],"wp:attachment":[{"href":"https:\/\/360bizbrokers.com\/pt\/wp-json\/wp\/v2\/media?parent=1309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}