{"id":12,"date":"2026-05-19T05:37:40","date_gmt":"2026-05-19T05:37:40","guid":{"rendered":"https:\/\/organogramtree.salmondevelopersbd.com\/?page_id=12"},"modified":"2026-05-24T12:00:04","modified_gmt":"2026-05-24T12:00:04","slug":"organogram","status":"publish","type":"page","link":"https:\/\/organogramtree.salmondevelopersbd.com\/","title":{"rendered":"Organogram"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12\" class=\"elementor elementor-12\">\n\t\t\t\t<div class=\"elementor-element elementor-element-90bb25c e-flex e-con-boxed e-con e-parent\" data-id=\"90bb25c\" 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-badc75b elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"badc75b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"bn\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Salmon Developers \u2014 Organogram<\/title>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Roboto:wght@300;400;500;600;700&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\r\n:root {\r\n  --red: #C0392B;\r\n  --red-dark: #96281B;\r\n  --red-soft: #FEF0EF;\r\n  --red-border: rgba(192,57,43,0.25);\r\n  --green: #1E8449;\r\n  --green-soft: #EAF6EE;\r\n  --amber: #B8830A;\r\n  --border: #E5E7EB;\r\n  --bg: #F9FAFB;\r\n  --bg2: #F3F4F6;\r\n  --white: #FFFFFF;\r\n  --text: #111827;\r\n  --text2: #6B7280;\r\n  --text3: #9CA3AF;\r\n  --active-border: #C0392B;\r\n  --active-bg: #FEF0EF;\r\n  --dim-opacity: 0.35;\r\n  --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 8px rgba(0,0,0,0.04);\r\n  --shadow-md: 0 4px 12px rgba(0,0,0,0.1), 0 1px 4px rgba(0,0,0,0.06);\r\n}\r\nbody { font-family: 'Roboto', sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; }\r\n\r\n\/* \u2500\u2500 LOGIN \u2500\u2500 *\/\r\n#login-screen {\r\n  position: fixed; inset: 0; z-index: 9999;\r\n  background: linear-gradient(135deg, #1a0a09 0%, #2d1210 40%, #1a0a09 100%);\r\n  display: flex; align-items: center; justify-content: center; padding: 20px;\r\n}\r\n#login-screen::before {\r\n  content: ''; position: absolute; inset: 0;\r\n  background: radial-gradient(ellipse 70% 50% at 50% 40%, rgba(192,57,43,0.2) 0%, transparent 70%);\r\n  pointer-events: none;\r\n}\r\n.login-box {\r\n  background: rgba(255,255,255,0.05); backdrop-filter: blur(20px);\r\n  border: 1px solid rgba(255,255,255,0.1); border-radius: 20px;\r\n  padding: 40px 36px 32px; width: 100%; max-width: 390px;\r\n  box-shadow: 0 32px 64px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.08);\r\n  position: relative;\r\n}\r\n.login-logo { text-align: center; margin-bottom: 24px; }\r\n.login-logo img { height: 54px; object-fit: contain; border-radius: 8px; }\r\n.login-title { font-size: 18px; font-weight: 700; color: #fff; text-align: center; margin-bottom: 4px; }\r\n.login-sub { font-size: 11px; color: rgba(255,255,255,0.4); text-align: center; margin-bottom: 28px; letter-spacing: 0.1em; text-transform: uppercase; }\r\n.lf { margin-bottom: 14px; }\r\n.lf label { display: block; font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 6px; }\r\n.lf input { width: 100%; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; padding: 11px 14px; color: #fff; font-size: 14px; font-family: 'Roboto', sans-serif; outline: none; transition: border-color 0.2s; }\r\n.lf input:focus { border-color: rgba(192,57,43,0.6); }\r\n.lf input::placeholder { color: rgba(255,255,255,0.22); }\r\n.login-btn { width: 100%; padding: 12px; background: var(--red); border: none; border-radius: 8px; color: #fff; font-size: 14px; font-weight: 600; font-family: 'Roboto', sans-serif; cursor: pointer; margin-top: 8px; transition: background 0.2s; letter-spacing: 0.02em; }\r\n.login-btn:hover { background: var(--red-dark); }\r\n.login-err { color: #FF6B6B; font-size: 12px; text-align: center; margin-top: 10px; min-height: 16px; }\r\n.login-div { display: flex; align-items: center; gap: 10px; margin: 18px 0 14px; }\r\n.login-div::before, .login-div::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,0.08); }\r\n.login-div span { font-size: 10px; color: rgba(255,255,255,0.25); letter-spacing: 0.1em; text-transform: uppercase; }\r\n.quick-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }\r\n.qbtn { padding: 8px 10px; border: 1px solid rgba(255,255,255,0.1); border-radius: 7px; background: rgba(255,255,255,0.04); color: rgba(255,255,255,0.5); font-size: 11px; font-family: 'Roboto', sans-serif; cursor: pointer; transition: all 0.15s; text-align: center; }\r\n.qbtn:hover { background: rgba(192,57,43,0.18); border-color: rgba(192,57,43,0.35); color: #fff; }\r\n\r\n\/* \u2500\u2500 APP \u2500\u2500 *\/\r\n#app { display: none; flex-direction: column; height: 100vh; overflow: hidden; }\r\n#app.on { display: flex; }\r\n\r\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\r\n.hdr {\r\n  background: var(--white); border-bottom: 1px solid var(--border);\r\n  padding: 0 24px; height: 58px; display: flex; align-items: center;\r\n  justify-content: space-between; flex-shrink: 0;\r\n  box-shadow: 0 1px 4px rgba(0,0,0,0.06);\r\n  position: sticky; top: 0; z-index: 100;\r\n}\r\n.hdr-left { display: flex; align-items: center; gap: 12px; }\r\n.hdr-logo {\r\n  height: 36px; width: 36px; object-fit: cover; border-radius: 50%;\r\n  border: 2.5px solid var(--red); flex-shrink: 0;\r\n}\r\n.hdr-divider { width: 1px; height: 24px; background: var(--border); }\r\n.hdr-title { font-size: 15px; font-weight: 700; color: var(--text); }\r\n.hdr-sub { font-size: 9px; color: var(--text3); letter-spacing: 0.1em; text-transform: uppercase; display: block; }\r\n.hdr-right { display: flex; align-items: center; gap: 10px; }\r\n.live-badge { display: flex; align-items: center; gap: 5px; background: var(--green-soft); border: 1px solid rgba(30,132,73,0.2); border-radius: 50px; padding: 4px 11px; font-size: 11px; font-weight: 600; color: var(--green); }\r\n.live-dot { width: 6px; height: 6px; background: var(--green); border-radius: 50%; animation: blink 1.8s infinite; }\r\n@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.3} }\r\n.user-chip { display: flex; align-items: center; gap: 7px; background: var(--bg); border: 1px solid var(--border); border-radius: 50px; padding: 4px 12px 4px 6px; font-size: 12px; font-weight: 500; color: var(--text2); }\r\n.user-av { width: 24px; height: 24px; border-radius: 50%; background: var(--red); color: #fff; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }\r\n.logout-btn { padding: 6px 13px; border: 1px solid var(--border); border-radius: 6px; background: none; cursor: pointer; font-size: 11px; font-weight: 500; color: var(--text2); font-family: 'Roboto', sans-serif; transition: all 0.15s; }\r\n.logout-btn:hover { border-color: var(--red); color: var(--red); background: var(--red-soft); }\r\n\r\n\/* \u2500\u2500 FILTER BAR \u2500\u2500 *\/\r\n.filter-bar {\r\n  background: var(--white); border-bottom: 1px solid var(--border);\r\n  padding: 10px 24px; display: flex; align-items: center; gap: 10px;\r\n  flex-shrink: 0; flex-wrap: wrap;\r\n}\r\n.dd-wrap { position: relative; }\r\n.dd-select {\r\n  appearance: none; background: var(--white);\r\n  border: 1px solid var(--border); border-radius: 8px;\r\n  padding: 7px 28px 7px 12px; font-size: 13px; font-weight: 500;\r\n  color: var(--text); font-family: 'Roboto', sans-serif;\r\n  cursor: pointer; outline: none; min-width: 130px;\r\n  transition: border-color 0.15s;\r\n}\r\n.dd-select:focus, .dd-select:hover { border-color: var(--red); }\r\n.dd-arrow { position: absolute; right: 9px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--text3); font-size: 10px; }\r\n.date-wrap { display: flex; align-items: center; gap: 6px; border: 1px solid var(--red); border-radius: 8px; padding: 6px 12px; background: var(--white); }\r\n.date-wrap label { font-size: 12px; font-weight: 500; color: var(--red); white-space: nowrap; }\r\n.date-wrap input[type=\"date\"] { border: none; outline: none; font-size: 12px; font-family: 'Roboto', sans-serif; color: var(--text); background: transparent; cursor: pointer; }\r\n.count-badge { background: var(--bg2); border: 1px solid var(--border); border-radius: 50px; padding: 6px 14px; font-size: 13px; font-weight: 600; color: var(--text); white-space: nowrap; }\r\n.count-badge span { color: var(--red); }\r\n.filter-btns { display: flex; gap: 6px; margin-left: 4px; }\r\n.fbtn { padding: 6px 14px; border-radius: 50px; border: 1px solid var(--border); background: var(--white); font-size: 12px; font-weight: 500; color: var(--text2); font-family: 'Roboto', sans-serif; cursor: pointer; transition: all 0.15s; }\r\n.fbtn:hover { border-color: var(--red); color: var(--red); }\r\n.fbtn.active { background: var(--red); border-color: var(--red); color: #fff; }\r\n\r\n\/* \u2500\u2500 STATS \u2500\u2500 *\/\r\n.stats-bar {\r\n  background: var(--white); border-bottom: 1px solid var(--border);\r\n  display: flex; flex-shrink: 0; overflow-x: auto;\r\n}\r\n.stat { padding: 10px 24px; text-align: center; border-right: 1px solid var(--border); flex-shrink: 0; }\r\n.stat:last-child { border-right: none; }\r\n.stat-val { font-size: 20px; font-weight: 700; display: block; line-height: 1; }\r\n.stat-lbl { font-size: 9px; font-weight: 500; color: var(--text3); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 3px; display: block; }\r\n.sv-red { color: var(--red); } .sv-green { color: var(--green); } .sv-amber { color: var(--amber); } .sv-blue { color: #2563EB; }\r\n\r\n\/* \u2500\u2500 4-COL LAYOUT \u2500\u2500 *\/\r\n.cols { display: flex; flex: 1; overflow: hidden; }\r\n.col { display: flex; flex-direction: column; border-right: 1px solid var(--border); background: var(--white); width: 25%; min-width: 210px; flex-shrink: 0; }\r\n.col:last-child { border-right: none; }\r\n\r\n.col-head {\r\n  padding: 10px 16px 8px; border-bottom: 2px solid var(--red);\r\n  background: var(--white); flex-shrink: 0;\r\n}\r\n.col-head-row1 { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; }\r\n.col-head-app { font-size: 11px; font-weight: 600; color: var(--green); background: var(--green-soft); border: 1px solid rgba(30,132,73,0.2); border-radius: 50px; padding: 2px 9px; margin-left: auto; }\r\n.col-head-title { font-size: 12px; font-weight: 700; color: var(--red); letter-spacing: 0.06em; text-transform: uppercase; }\r\n.col-hover-stats { display: none; align-items: center; gap: 8px; padding-top: 3px; font-size: 11px; flex-wrap: wrap; min-height: 20px; }\r\n.col-hover-stats.vis { display: flex; }\r\n.chs-name { color: var(--text); font-weight: 700; font-size: 12px; max-width: 130px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\r\n.chs-app { background: var(--green-soft); color: var(--green); border: 1px solid rgba(30,132,73,0.2); border-radius: 50px; padding: 1px 8px; font-weight: 600; font-size: 10px; }\r\n\r\n\r\n\/* back button row *\/\r\n.col-back { padding: 8px 12px; border-bottom: 1px solid var(--border); background: var(--bg); display: none; flex-shrink: 0; }\r\n.back-btn { background: none; border: none; cursor: pointer; font-size: 12px; font-weight: 500; color: var(--red); font-family: 'Roboto', sans-serif; display: flex; align-items: center; gap: 5px; padding: 3px 6px; border-radius: 6px; transition: background 0.15s; }\r\n.back-btn:hover { background: var(--red-soft); }\r\n\r\n.col-scroll { flex: 1; overflow-y: auto; padding: 8px; display: flex; flex-direction: column; gap: 4px; }\r\n.col-scroll::-webkit-scrollbar { width: 3px; }\r\n.col-scroll::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }\r\n\r\n\/* \u2500\u2500 CARD \u2500\u2500 *\/\r\n.card {\r\n  border-radius: 10px; border: 1.5px solid var(--border);\r\n  background: var(--bg); padding: 12px 14px;\r\n  cursor: pointer; transition: all 0.15s; position: relative;\r\n}\r\n.card:hover { background: var(--white); border-color: var(--red); box-shadow: var(--shadow-md); }\r\n.card.active { background: var(--red-soft); border-color: var(--red); box-shadow: var(--shadow-md); }\r\n.card.dim { opacity: var(--dim-opacity); }\r\n.card::before { content: ''; position: absolute; left: 0; top: 6px; bottom: 6px; width: 3px; background: var(--red); border-radius: 0 3px 3px 0; opacity: 0; transition: opacity 0.15s; }\r\n.card:hover::before, .card.active::before { opacity: 1; }\r\n\r\n.card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }\r\n.card-info { flex: 1; min-width: 0; }\r\n.card-role { font-size: 9px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text3); display: block; margin-bottom: 3px; }\r\n.card-name { font-size: 15px; font-weight: 700; color: var(--text); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\r\n.card-pills { display: flex; flex-direction: column; gap: 3px; flex-shrink: 0; align-items: flex-end; }\r\n.pill { font-size: 10px; font-weight: 600; padding: 3px 9px; border-radius: 50px; white-space: nowrap; }\r\n.pill-a { background: var(--green-soft); color: var(--green); border: 1px solid rgba(30,132,73,0.2); }\r\n.pill-e { background: var(--red-soft); color: var(--red); border: 1px solid rgba(192,57,43,0.18); }\r\n.pill-z { background: var(--bg2); color: var(--text3); border: 1px solid var(--border); }\r\n\r\n\/* applicant rows *\/\r\n.app-rows { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }\r\n.app-row {\r\n  display: flex; align-items: center; gap: 8px;\r\n  background: var(--white); border: 1px solid var(--border);\r\n  border-radius: 7px; padding: 7px 10px;\r\n  cursor: pointer; transition: all 0.13s;\r\n}\r\n.app-row:hover { border-color: var(--red); box-shadow: var(--shadow); }\r\n.app-num { width: 20px; height: 20px; border-radius: 50%; background: var(--red); color: #fff; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\r\n.app-name { font-size: 12px; font-weight: 500; color: var(--text); flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\r\n.app-arrow { font-size: 12px; color: var(--text3); }\r\n\r\n\/* union card \u2014 no hover expand, just name + pill *\/\r\n.union-card { border-radius: 10px; border: 1.5px solid var(--border); background: var(--bg); padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }\r\n.union-name { font-size: 14px; font-weight: 600; color: var(--text); }\r\n.union-role { font-size: 9px; font-weight: 600; color: var(--text3); text-transform: uppercase; letter-spacing: 0.08em; display: block; margin-bottom: 2px; }\r\n.union-rows { margin-top: 6px; display: flex; flex-direction: column; gap: 3px; }\r\n\r\n\/* empty state *\/\r\n.col-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 1; color: var(--text3); font-size: 13px; gap: 10px; padding: 30px; text-align: center; min-height: 100px; }\r\n.col-empty-icon { font-size: 28px; opacity: 0.3; }\r\n\r\n\/* \u2500\u2500 MODAL \u2500\u2500 *\/\r\n#modal { display: none; position: fixed; inset: 0; z-index: 8000; background: rgba(0,0,0,0.55); backdrop-filter: blur(5px); align-items: center; justify-content: center; padding: 20px; }\r\n#modal.open { display: flex; }\r\n.modal-box { background: var(--white); border-radius: 18px; width: 100%; max-width: 470px; max-height: 90vh; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 20px 60px rgba(0,0,0,0.2); animation: mIn 0.2s ease; }\r\n@keyframes mIn { from{opacity:0;transform:translateY(10px) scale(0.98)} to{opacity:1;transform:none} }\r\n.modal-head { background: linear-gradient(135deg, var(--red-dark), var(--red)); padding: 20px 20px 16px; flex-shrink: 0; }\r\n.modal-head-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 14px; }\r\n.mclose { width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,0.2); border: none; color: #fff; cursor: pointer; font-size: 13px; display: flex; align-items: center; justify-content: center; }\r\n.mclose:hover { background: rgba(255,255,255,0.35); }\r\n.m-profile { display: flex; align-items: center; gap: 14px; }\r\n.m-photo { width: 62px; height: 62px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.35); background: rgba(255,255,255,0.15); display: flex; align-items: center; justify-content: center; font-size: 24px; flex-shrink: 0; overflow: hidden; }\r\n.m-photo img { width:100%; height:100%; object-fit:cover; border-radius:50%; }\r\n.m-name { font-size: 17px; font-weight: 700; color: #fff; line-height: 1.2; }\r\n.m-loc { font-size: 11px; color: rgba(255,255,255,0.6); margin-top: 3px; }\r\n.m-pos { display: inline-block; background: rgba(255,255,255,0.18); border: 1px solid rgba(255,255,255,0.3); border-radius: 50px; padding: 3px 11px; font-size: 10px; font-weight: 600; color: #fff; margin-top: 6px; }\r\n.m-tabs { display: flex; gap: 5px; margin-top: 12px; flex-wrap: wrap; }\r\n.m-tab { padding: 4px 13px; border-radius: 50px; border: 1.5px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.7); font-size: 11px; font-weight: 600; font-family: 'Roboto', sans-serif; cursor: pointer; transition: all 0.15s; }\r\n.m-tab.active, .m-tab:hover { background: rgba(255,255,255,0.25); border-color: rgba(255,255,255,0.5); color: #fff; }\r\n.m-actions { display: flex; gap: 6px; margin-top: 12px; flex-wrap: wrap; }\r\n.abn { display: inline-flex; align-items: center; gap: 5px; padding: 7px 13px; border-radius: 50px; font-size: 11px; font-weight: 600; color: #fff; text-decoration: none; border: none; cursor: pointer; font-family: 'Roboto', sans-serif; transition: opacity 0.15s; }\r\n.abn:hover { opacity: 0.85; }\r\n.abn svg { width: 12px; height: 12px; flex-shrink: 0; }\r\n.abn-call { background: rgba(255,255,255,0.22); border: 1.5px solid rgba(255,255,255,0.38) !important; }\r\n.abn-wa { background: #25D366; }\r\n.abn-fb { background: #1877F2; }\r\n.abn-li { background: #0A66C2; }\r\n.abn-cv { background: rgba(255,255,255,0.16); border: 1.5px solid rgba(255,255,255,0.28) !important; }\r\n.modal-body { overflow-y: auto; flex: 1; padding: 18px 20px; }\r\n.modal-body::-webkit-scrollbar { width: 3px; }\r\n.modal-body::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }\r\n.sec-lbl { font-size: 9px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text3); display: flex; align-items: center; gap: 8px; margin: 14px 0 8px; }\r\n.sec-lbl:first-child { margin-top: 0; }\r\n.sec-lbl::before, .sec-lbl::after { content:''; flex:1; height:1px; background:var(--border); }\r\n.fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }\r\n.fbox { background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 9px 11px; }\r\n.fbox.full { grid-column: 1\/-1; }\r\n.flbl { font-size: 8px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text3); display: block; margin-bottom: 2px; }\r\n.fval { font-size: 12px; font-weight: 500; color: var(--text); line-height: 1.4; word-break: break-word; display: block; }\r\n.fval a { color: var(--red); text-decoration: none; }\r\n.dl-btn { width:100%; margin-top:14px; padding:11px; background:var(--text); border:none; border-radius:8px; color:#fff; font-size:13px; font-weight:600; font-family:'Roboto',sans-serif; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:6px; transition:background 0.15s; }\r\n.dl-btn:hover { background: var(--red); }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<!-- LOGIN -->\r\n<div id=\"login-screen\">\r\n  <div class=\"login-box\">\r\n    <div class=\"login-logo\">\r\n      <img decoding=\"async\" src=\"https:\/\/drive.google.com\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-\" alt=\"Salmon Developers\" onerror=\"this.style.display='none'\">\r\n    <\/div>\r\n    <div class=\"login-title\">Organogram System<\/div>\r\n    <div class=\"login-sub\">Salmon Developers Ltd.<\/div>\r\n    <div class=\"lf\"><label>Username<\/label><input type=\"text\" id=\"l-user\" placeholder=\"Enter username\" autocomplete=\"username\"><\/div>\r\n    <div class=\"lf\"><label>Password<\/label><input type=\"password\" id=\"l-pass\" placeholder=\"Enter password\" autocomplete=\"current-password\"><\/div>\r\n    <button class=\"login-btn\" onclick=\"doLogin()\">\u09aa\u09cd\u09b0\u09ac\u09c7\u09b6 \u0995\u09b0\u09c1\u09a8<\/button>\r\n    <div class=\"login-err\" id=\"login-err\"><\/div>\r\n    <div class=\"login-div\"><span>Quick Access<\/span><\/div>\r\n    <div class=\"quick-grid\" id=\"quick-grid\"><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- APP -->\r\n<div id=\"app\">\r\n  <!-- Header -->\r\n  <header class=\"hdr\">\r\n    <div class=\"hdr-left\">\r\n      <img decoding=\"async\" class=\"hdr-logo\" src=\"https:\/\/drive.google.com\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-\" alt=\"Salmon\" onerror=\"this.style.display='none'\">\r\n      <div class=\"hdr-divider\"><\/div>\r\n      <div>\r\n        <div class=\"hdr-title\">Salmon Developers<\/div>\r\n        <span class=\"hdr-sub\">Organogram Tree<\/span>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"hdr-right\">\r\n      <div class=\"live-badge\"><div class=\"live-dot\"><\/div>Live<\/div>\r\n      <div class=\"user-chip\"><div class=\"user-av\" id=\"hdr-av\">A<\/div><span id=\"hdr-uname\">Admin<\/span><\/div>\r\n      <button class=\"logout-btn\" onclick=\"doLogout()\">Logout<\/button>\r\n    <\/div>\r\n  <\/header>\r\n\r\n  <!-- Filter Bar -->\r\n  <div class=\"filter-bar\">\r\n    <div class=\"dd-wrap\">\r\n      <select class=\"dd-select\" id=\"f-div\" onchange=\"applyFilter()\">\r\n        <option value=\"\">\u2014 \u09ac\u09bf\u09ad\u09be\u0997 \u2014<\/option>\r\n      <\/select>\r\n      <span class=\"dd-arrow\">\u25be<\/span>\r\n    <\/div>\r\n    <div class=\"dd-wrap\">\r\n      <select class=\"dd-select\" id=\"f-dist\" onchange=\"applyFilter()\">\r\n        <option value=\"\">\u2014 \u099c\u09c7\u09b2\u09be \u2014<\/option>\r\n      <\/select>\r\n      <span class=\"dd-arrow\">\u25be<\/span>\r\n    <\/div>\r\n    <div class=\"dd-wrap\">\r\n      <select class=\"dd-select\" id=\"f-upa\" onchange=\"applyFilter()\">\r\n        <option value=\"\">\u2014 \u0989\u09aa\u099c\u09c7\u09b2\u09be \u2014<\/option>\r\n      <\/select>\r\n      <span class=\"dd-arrow\">\u25be<\/span>\r\n    <\/div>\r\n    <div class=\"dd-wrap\">\r\n      <select class=\"dd-select\" id=\"f-union\" onchange=\"applyFilter()\">\r\n        <option value=\"\">\u2014 \u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8 \u2014<\/option>\r\n      <\/select>\r\n      <span class=\"dd-arrow\">\u25be<\/span>\r\n    <\/div>\r\n    <div class=\"date-wrap\">\r\n      <label>\u09a4\u09be\u09b0\u09bf\u0996<\/label>\r\n      <input type=\"date\" id=\"f-date\" onchange=\"applyFilter()\">\r\n      <span style=\"cursor:pointer;color:var(--text3);font-size:11px\" onclick=\"clearDate()\">\u2715<\/span>\r\n    <\/div>\r\n    <div class=\"count-badge\">\u09ae\u09cb\u099f <span id=\"f-count\">\u2014<\/span> \u099f\u09bf \u0986\u09ac\u09c7\u09a6\u09a8<\/div>\r\n    <div class=\"filter-btns\">\r\n      <button class=\"fbtn active\" data-f=\"all\"   onclick=\"setFilter(this)\">\u09b8\u09ac<\/button>\r\n      <button class=\"fbtn\"        data-f=\"full\"  onclick=\"setFilter(this)\">\u09aa\u09c2\u09b0\u09cd\u09a3<\/button>\r\n      <button class=\"fbtn\"        data-f=\"empty\" onclick=\"setFilter(this)\">\u0996\u09be\u09b2\u09bf<\/button>\r\n      <button class=\"fbtn\"        data-f=\"today\" onclick=\"setFilter(this)\">\u0986\u099c<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Stats -->\r\n  <div class=\"stats-bar\">\r\n    <div class=\"stat\"><span class=\"stat-val sv-red\"   id=\"st-total\">\u2014<\/span><span class=\"stat-lbl\">\u09ae\u09cb\u099f \u0986\u09ac\u09c7\u09a6\u09a8<\/span><\/div>\r\n    <div class=\"stat\"><span class=\"stat-val sv-green\" id=\"st-filled\">\u2014<\/span><span class=\"stat-lbl\">\u09aa\u09a6 \u09aa\u09c2\u09b0\u09cd\u09a3<\/span><\/div>\r\n    <div class=\"stat\"><span class=\"stat-val sv-red\"   id=\"st-empty\">\u2014<\/span><span class=\"stat-lbl\">\u09aa\u09a6 \u0996\u09be\u09b2\u09bf<\/span><\/div>\r\n    <div class=\"stat\"><span class=\"stat-val sv-amber\" id=\"st-pos\">\u2014<\/span><span class=\"stat-lbl\">\u09ae\u09cb\u099f \u09aa\u09a6<\/span><\/div>\r\n    <div class=\"stat\"><span class=\"stat-val sv-blue\"  id=\"st-today\">\u2014<\/span><span class=\"stat-lbl\">\u0986\u099c\u0995\u09c7\u09b0 \u0986\u09ac\u09c7\u09a6\u09a8<\/span><\/div>\r\n  <\/div>\r\n\r\n  <!-- 4 Columns -->\r\n  <div class=\"cols\">\r\n    <!-- \u09ac\u09bf\u09ad\u09be\u0997 -->\r\n    <div class=\"col\">\r\n      <div class=\"col-head\"><div class=\"col-head-row1\"><span class=\"col-head-title\">\u09ac\u09bf\u09ad\u09be\u0997<\/span><span class=\"col-head-ct\" id=\"ct-div\">\u2014<\/span><\/div><div class=\"col-hover-stats\" id=\"hs-div\"><\/div><\/div>\r\n      <div class=\"col-scroll\" id=\"ls-div\"><div class=\"col-empty\"><div class=\"col-empty-icon\">\u23f3<\/div>\u09b2\u09cb\u09a1 \u09b9\u099a\u09cd\u099b\u09c7\u2026<\/div><\/div>\r\n    <\/div>\r\n    <!-- \u099c\u09c7\u09b2\u09be -->\r\n    <div class=\"col\">\r\n      <div class=\"col-head\">\r\n        <div class=\"col-head-row1\"><span class=\"col-head-title\">\u099c\u09c7\u09b2\u09be<\/span><span class=\"col-head-ct\" id=\"ct-dist\">\u2014<\/span><span class=\"col-head-app\" id=\"ct-dist-app\" style=\"display:none\">\u2014<\/span><\/div>\r\n        <div class=\"col-hover-stats\" id=\"hs-dist\"><\/div>\r\n        <div id=\"back-dist\" style=\"display:none;margin-top:5px\"><button class=\"back-btn\" onclick=\"resetFrom('dist')\">\u2190 \u09ac\u09bf\u09ad\u09be\u0997\u09c7 \u09ab\u09bf\u09b0\u09c1\u09a8<\/button><\/div>\r\n      <\/div>\r\n      <div class=\"col-scroll\" id=\"ls-dist\"><div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u09ac\u09bf\u09ad\u09be\u0997\u09c7 \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div><\/div>\r\n    <\/div>\r\n    <!-- \u0989\u09aa\u099c\u09c7\u09b2\u09be -->\r\n    <div class=\"col\">\r\n      <div class=\"col-head\">\r\n        <div class=\"col-head-row1\"><span class=\"col-head-title\">\u0989\u09aa\u099c\u09c7\u09b2\u09be<\/span><span class=\"col-head-ct\" id=\"ct-upa\">\u2014<\/span><span class=\"col-head-app\" id=\"ct-upa-app\" style=\"display:none\">\u2014<\/span><\/div>\r\n        <div class=\"col-hover-stats\" id=\"hs-upa\"><\/div>\r\n        <div id=\"back-upa\" style=\"display:none;margin-top:5px\"><button class=\"back-btn\" onclick=\"resetFrom('upa')\">\u2190 \u099c\u09c7\u09b2\u09be\u09af\u09bc \u09ab\u09bf\u09b0\u09c1\u09a8<\/button><\/div>\r\n      <\/div>\r\n      <div class=\"col-scroll\" id=\"ls-upa\"><div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div><\/div>\r\n    <\/div>\r\n    <!-- \u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8 -->\r\n    <div class=\"col\">\r\n      <div class=\"col-head\">\r\n        <div class=\"col-head-row1\"><span class=\"col-head-title\">\u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8<\/span><span class=\"col-head-ct\" id=\"ct-union\">\u2014<\/span><span class=\"col-head-app\" id=\"ct-union-app\" style=\"display:none\">\u2014<\/span><\/div>\r\n        <div class=\"col-hover-stats\" id=\"hs-union\"><\/div>\r\n        <div id=\"back-union\" style=\"display:none;margin-top:5px\"><button class=\"back-btn\" onclick=\"resetFrom('union')\">\u2190 \u0989\u09aa\u099c\u09c7\u09b2\u09be\u09af\u09bc \u09ab\u09bf\u09b0\u09c1\u09a8<\/button><\/div>\r\n      <\/div>\r\n      <div class=\"col-scroll\" id=\"ls-union\"><div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u0989\u09aa\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- MODAL -->\r\n<div id=\"modal\" onclick=\"if(event.target===this)closeModal()\">\r\n  <div class=\"modal-box\">\r\n    <div class=\"modal-head\">\r\n      <div class=\"modal-head-top\">\r\n        <div style=\"width:28px\"><\/div>\r\n        <div style=\"flex:1;text-align:center\">\r\n          <div class=\"m-name\" id=\"m-name\">\u2014<\/div>\r\n          <div class=\"m-loc\"  id=\"m-loc\">\u2014<\/div>\r\n        <\/div>\r\n        <button class=\"mclose\" onclick=\"closeModal()\">\u2715<\/button>\r\n      <\/div>\r\n      <div class=\"m-profile\">\r\n        <div class=\"m-photo\" id=\"m-photo\">\ud83d\udc64<\/div>\r\n        <div>\r\n          <div class=\"m-pos\" id=\"m-pos\">\u2014<\/div>\r\n          <div class=\"m-tabs\" id=\"m-tabs\"><\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"m-actions\" id=\"m-actions\"><\/div>\r\n    <\/div>\r\n    <div class=\"modal-body\" id=\"m-body\"><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n'use strict';\r\n\r\n\/* \u2500\u2500 CREDENTIALS \u2500\u2500 *\/\r\nconst CREDS = {\r\n  'admin':      { pass:'salmon2026', label:'Admin',          filter:null },\r\n  'dhaka':      { pass:'dhaka@2026', label:'\u09a2\u09be\u0995\u09be \u09ac\u09bf\u09ad\u09be\u0997',     filter:'\u09a2\u09be\u0995\u09be' },\r\n  'chattogram': { pass:'ctg@2026',   label:'\u099a\u099f\u09cd\u099f\u0997\u09cd\u09b0\u09be\u09ae \u09ac\u09bf\u09ad\u09be\u0997', filter:'\u099a\u099f\u09cd\u099f\u0997\u09cd\u09b0\u09be\u09ae' },\r\n  'rajshahi':   { pass:'raj@2026',   label:'\u09b0\u09be\u099c\u09b6\u09be\u09b9\u09c0 \u09ac\u09bf\u09ad\u09be\u0997',  filter:'\u09b0\u09be\u099c\u09b6\u09be\u09b9\u09c0' },\r\n  'khulna':     { pass:'khl@2026',   label:'\u0996\u09c1\u09b2\u09a8\u09be \u09ac\u09bf\u09ad\u09be\u0997',    filter:'\u0996\u09c1\u09b2\u09a8\u09be' },\r\n  'barishal':   { pass:'bsl@2026',   label:'\u09ac\u09b0\u09bf\u09b6\u09be\u09b2 \u09ac\u09bf\u09ad\u09be\u0997',   filter:'\u09ac\u09b0\u09bf\u09b6\u09be\u09b2' },\r\n  'sylhet':     { pass:'syl@2026',   label:'\u09b8\u09bf\u09b2\u09c7\u099f \u09ac\u09bf\u09ad\u09be\u0997',    filter:'\u09b8\u09bf\u09b2\u09c7\u099f' },\r\n  'rangpur':    { pass:'rng@2026',   label:'\u09b0\u0982\u09aa\u09c1\u09b0 \u09ac\u09bf\u09ad\u09be\u0997',    filter:'\u09b0\u0982\u09aa\u09c1\u09b0' },\r\n  'mymensingh': { pass:'mym@2026',   label:'\u09ae\u09af\u09bc\u09ae\u09a8\u09b8\u09bf\u0982\u09b9 \u09ac\u09bf\u09ad\u09be\u0997', filter:'\u09ae\u09af\u09bc\u09ae\u09a8\u09b8\u09bf\u0982\u09b9' },\r\n};\r\nconst DIV_ORDER = ['\u09a2\u09be\u0995\u09be','\u099a\u099f\u09cd\u099f\u0997\u09cd\u09b0\u09be\u09ae','\u09b0\u09be\u099c\u09b6\u09be\u09b9\u09c0','\u0996\u09c1\u09b2\u09a8\u09be','\u09ac\u09b0\u09bf\u09b6\u09be\u09b2','\u09b8\u09bf\u09b2\u09c7\u099f','\u09b0\u0982\u09aa\u09c1\u09b0','\u09ae\u09af\u09bc\u09ae\u09a8\u09b8\u09bf\u0982\u09b9'];\r\nconst LOC_URL  = 'https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vRFhUxc3pxKsBkvNtbB0zfusE3pCronhx8Iu15JXhfNAgObsmNjcedqucsqA_ZQ88LWlebi59X6sZ1w\/pub?output=csv';\r\nconst APP_URL  = 'https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vRff3uKVo1saiDhUYkVl6F-5tqnbbTX1Ti7cMsu2wG6xYNnhoDco6Mg0VMNCBFEiDZ1ZvSOQXSAhc8C\/pub?output=csv';\r\nconst PROXY    = 'https:\/\/corsproxy.io\/?';\r\n\r\nasync function fetchCSV(url) {\r\n  \/\/ Try direct first, then proxy fallbacks\r\n  const attempts = [\r\n    () => fetch(url, {cache:'no-store'}),\r\n    () => fetch(PROXY + encodeURIComponent(url)),\r\n    () => fetch('https:\/\/api.allorigins.win\/raw?url=' + encodeURIComponent(url)),\r\n  ];\r\n  for (const attempt of attempts) {\r\n    try {\r\n      const r = await attempt();\r\n      if (r.ok) return r.text();\r\n    } catch(e) { \/* try next *\/ }\r\n  }\r\n  throw new Error('\u09b8\u09ac fetch attempt \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7');\r\n}\r\n\r\nlet locTree={}, allApps=[], appMap={};\r\nlet currentUser=null, activeFilter='all';\r\nlet selDiv=null, selDist=null, selUpa=null;\r\nlet modalApps=[], modalIdx=0;\r\n\r\n\/* \u2500\u2500 QUICK BTNS \u2500\u2500 *\/\r\n['admin','dhaka','chattogram','rajshahi','khulna','barishal','sylhet','rangpur','mymensingh'].forEach(u=>{\r\n  const b=document.createElement('button');\r\n  b.className='qbtn'; b.textContent=CREDS[u].label;\r\n  b.onclick=()=>{ document.getElementById('l-user').value=u; document.getElementById('l-pass').value=CREDS[u].pass; };\r\n  document.getElementById('quick-grid').appendChild(b);\r\n});\r\n\r\n\/* \u2500\u2500 LOGIN \u2500\u2500 *\/\r\nwindow.doLogin=function(){\r\n  const u=document.getElementById('l-user').value.trim().toLowerCase();\r\n  const p=document.getElementById('l-pass').value;\r\n  const c=CREDS[u];\r\n  if(!c||c.pass!==p){ document.getElementById('login-err').textContent='\u274c \u09ad\u09c1\u09b2 username \u09ac\u09be password'; return; }\r\n  currentUser={...c,username:u};\r\n  document.getElementById('login-screen').style.display='none';\r\n  document.getElementById('app').classList.add('on');\r\n  document.getElementById('hdr-uname').textContent=c.label;\r\n  document.getElementById('hdr-av').textContent=c.label.charAt(0).toUpperCase();\r\n  loadData();\r\n};\r\ndocument.addEventListener('keydown',e=>{ if(e.key==='Enter')doLogin(); });\r\n\r\nwindow.doLogout=function(){\r\n  currentUser=null; selDiv=selDist=selUpa=null;\r\n  locTree={}; allApps=[]; appMap={};\r\n  ['ls-div','ls-dist','ls-upa','ls-union'].forEach(id=>{ document.getElementById(id).innerHTML=''; });\r\n  ['ct-div','ct-dist','ct-upa','ct-union'].forEach(id=>{ document.getElementById(id).textContent='\u2014'; });\r\n  ['ct-dist-app','ct-upa-app','ct-union-app'].forEach(id=>{ const e=document.getElementById(id); if(e)e.style.display='none'; });\r\n  ['hs-div','hs-dist','hs-upa','hs-union'].forEach(id=>{ const e=document.getElementById(id); if(e){e.innerHTML='';e.classList.remove('vis');} });\r\n  ['back-dist','back-upa','back-union'].forEach(id=>{ const e=document.getElementById(id); if(e)e.style.display='none'; });\r\n  ['st-total','st-filled','st-empty','st-pos','st-today','f-count'].forEach(id=>{ document.getElementById(id).textContent='\u2014'; });\r\n  document.getElementById('f-div').innerHTML='<option value=\"\">\u2014 \u09ac\u09bf\u09ad\u09be\u0997 \u2014<\/option>';\r\n  document.getElementById('f-dist').innerHTML='<option value=\"\">\u2014 \u099c\u09c7\u09b2\u09be \u2014<\/option>';\r\n  document.getElementById('f-upa').innerHTML='<option value=\"\">\u2014 \u0989\u09aa\u099c\u09c7\u09b2\u09be \u2014<\/option>';\r\n  document.getElementById('f-union').innerHTML='<option value=\"\">\u2014 \u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8 \u2014<\/option>';\r\n  document.getElementById('f-date').value='';\r\n  activeFilter='all';\r\n  document.querySelectorAll('.fbtn').forEach(b=>b.classList.remove('active'));\r\n  document.querySelector('.fbtn[data-f=\"all\"]').classList.add('active');\r\n  document.getElementById('app').classList.remove('on');\r\n  document.getElementById('login-screen').style.display='flex';\r\n  document.getElementById('l-user').value='';\r\n  document.getElementById('l-pass').value='';\r\n  document.getElementById('login-err').textContent='';\r\n};\r\n\r\n\/* \u2500\u2500 CSV \u2500\u2500 *\/\r\nfunction parseCSV(text){\r\n  const lines=text.trim().split('\\n'); const out=[];\r\n  for(let i=1;i<lines.length;i++){\r\n    const cols=[]; let cur='',q=false;\r\n    for(const c of lines[i]){ if(c==='\"')q=!q; else if(c===','&&!q){cols.push(cur.trim());cur='';}else cur+=c; }\r\n    cols.push(cur.trim());\r\n    if(cols.some(c=>c)) out.push(cols.map(c=>c.replace(\/^\"|\"$\/g,'').trim().normalize('NFC')));\r\n  }\r\n  return out;\r\n}\r\n\r\n\/* \u2500\u2500 LOAD \u2500\u2500 *\/\r\nasync function loadData(){\r\n  document.getElementById('ls-div').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\u23f3<\/div>\u09b2\u09cb\u09a1 \u09b9\u099a\u09cd\u099b\u09c7\u2026<\/div>';\r\n  try{\r\n    const [locText,appText]=await Promise.all([fetchCSV(LOC_URL),fetchCSV(APP_URL)]);\r\n    parseCSV(locText).forEach(c=>{\r\n      const [d,di,u,un]=c;\r\n      if(!d)return;\r\n      if(!locTree[d])locTree[d]={};\r\n      if(di&&!locTree[d][di])locTree[d][di]={};\r\n      if(di&&u&&!locTree[d][di][u])locTree[d][di][u]=[];\r\n      if(di&&u&&un&&!locTree[d][di][u].includes(un))locTree[d][di][u].push(un);\r\n    });\r\n    allApps=[]; appMap={};\r\n    parseCSV(appText).forEach(c=>{\r\n      if(!c[1])return;\r\n      const parts=c[1].split('>').map(s=>s.trim());\r\n      const key=parts.join('|');\r\n      const app={ts:c[0],loc:c[1],pos:c[2],name:c[3],father:c[4],phone:c[5],email:c[6],cv:c[7],addr:c[8],exp:c[9],ref_name:c[10],emg_rel:c[11],emg_phone:c[12],emg_name:c[13],trusted_phone:c[14],social:c[15],photo:c[16],parts,key};\r\n      allApps.push(app);\r\n      if(!appMap[key])appMap[key]=[];\r\n      appMap[key].push(app);\r\n    });\r\n    Object.values(appMap).forEach(arr=>arr.sort((a,b)=>(safeDate(a.ts)||0)-(safeDate(b.ts)||0)));\r\n    initFilters(); updateStats(); renderDivs();\r\n  }catch(e){\r\n    console.error(e);\r\n    document.getElementById('ls-div').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\u274c<\/div>\u09a1\u09c7\u099f\u09be \u09b2\u09cb\u09a1 \u09b9\u09af\u09bc\u09a8\u09bf: '+e.message+'<br><br><button onclick=\"loadData()\" style=\"padding:8px 16px;background:#C0392B;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px\">\u0986\u09ac\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8<\/button><\/div>';\r\n  }\r\n}\r\n\r\n\/* \u2500\u2500 FILTER DROPDOWNS \u2500\u2500 *\/\r\nfunction initFilters(){\r\n  const divs=DIV_ORDER.filter(d=>locTree[d]&&canSee(d));\r\n  const fd=document.getElementById('f-div');\r\n  divs.forEach(d=>{ const o=document.createElement('option');o.value=d;o.textContent=d;fd.appendChild(o); });\r\n}\r\nfunction canSee(d){ return !currentUser.filter||d===currentUser.filter; }\r\n\r\nfunction populateDistDD(d){\r\n  const fd=document.getElementById('f-dist'); fd.innerHTML='<option value=\"\">\u2014 \u099c\u09c7\u09b2\u09be \u2014<\/option>';\r\n  if(!d)return;\r\n  Object.keys(locTree[d]||{}).sort((a,b)=>a.localeCompare(b,'bn')).forEach(di=>{ const o=document.createElement('option');o.value=di;o.textContent=di;fd.appendChild(o); });\r\n}\r\nfunction populateUpaDD(d,di){\r\n  const fd=document.getElementById('f-upa'); fd.innerHTML='<option value=\"\">\u2014 \u0989\u09aa\u099c\u09c7\u09b2\u09be \u2014<\/option>';\r\n  if(!d||!di)return;\r\n  Object.keys(locTree[d]?.[di]||{}).sort((a,b)=>a.localeCompare(b,'bn')).forEach(u=>{ const o=document.createElement('option');o.value=u;o.textContent=u;fd.appendChild(o); });\r\n}\r\nfunction populateUnionDD(d,di,u){\r\n  const fd=document.getElementById('f-union'); fd.innerHTML='<option value=\"\">\u2014 \u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8 \u2014<\/option>';\r\n  if(!d||!di||!u)return;\r\n  (locTree[d]?.[di]?.[u]||[]).slice().sort((a,b)=>a.localeCompare(b,'bn')).forEach(un=>{ const o=document.createElement('option');o.value=un;o.textContent=un;fd.appendChild(o); });\r\n}\r\n\r\nwindow.applyFilter=function(){\r\n  const d=document.getElementById('f-div').value;\r\n  const di=document.getElementById('f-dist').value;\r\n  const u=document.getElementById('f-upa').value;\r\n  populateDistDD(d); populateUpaDD(d,di); populateUnionDD(d,di,u);\r\n  updateStats();\r\n  renderDivs();\r\n  if(selDiv) clickDiv(selDiv,true);\r\n  if(d && d!==selDiv){ selDiv=d; clickDiv(d,true); }\r\n  if(di && di!==selDist){ selDist=di; clickDist(d,di,true); }\r\n  if(u && u!==selUpa){ selUpa=u; clickUpa(d,di,u,true); }\r\n};\r\nwindow.clearDate=function(){ document.getElementById('f-date').value=''; applyFilter(); };\r\nwindow.setFilter=function(btn){\r\n  document.querySelectorAll('.fbtn').forEach(b=>b.classList.remove('active'));\r\n  btn.classList.add('active'); activeFilter=btn.dataset.f;\r\n  updateStats(); renderDivs();\r\n  if(selDiv) clickDiv(selDiv,true);\r\n  if(selDist) clickDist(selDiv,selDist,true);\r\n  if(selUpa) clickUpa(selDiv,selDist,selUpa,true);\r\n};\r\n\r\n\/* \u2500\u2500 HELPERS \u2500\u2500 *\/\r\nfunction key(...a){ return a.join('|'); }\r\nfunction getApps(k,pos){ return(appMap[k]||[]).filter(a=>a.pos===pos&&passDateFilter(a)&&passStatusFilter(k,pos)); }\r\nfunction passDateFilter(a){\r\n  const d=document.getElementById('f-date').value; if(!d)return true;\r\n  return a.ts&&a.ts.startsWith(new Date(d).toLocaleDateString('en-US',{month:'numeric',day:'numeric',year:'numeric'}).split('\/').reverse().join('-').slice(0,10));\r\n}\r\nfunction passDateFilterByDate(a){\r\n  const d=document.getElementById('f-date').value; if(!d)return true;\r\n  const appDate=safeDateStr(a.ts);\r\n  return appDate===d;\r\n}\r\nfunction passStatusFilter(k,pos){\r\n  if(activeFilter==='all')return true;\r\n  if(activeFilter==='today'){ return false; } \/\/ handled separately\r\n  return true;\r\n}\r\nfunction getAppsRaw(k,pos){\r\n  let apps=(appMap[k]||[]).filter(a=>a.pos===pos);\r\n  const d=document.getElementById('f-date').value;\r\n  const af=activeFilter;\r\n  const today=new Date().toISOString().slice(0,10);\r\n  if(af==='today') apps=apps.filter(a=>safeDateStr(a.ts)===today);\r\n  else if(d) apps=apps.filter(a=>safeDateStr(a.ts)===d);\r\n  return apps;\r\n}\r\nfunction hasApp(k,pos){ return getAppsRaw(k,pos).length>0; }\r\n\r\nfunction divStats(d){\r\n  let apps=0,total=0;\r\n  total++; if(hasApp(key(d),'Deputy Director'))apps++;\r\n  for(const di of Object.keys(locTree[d]||{})){\r\n    total++; if(hasApp(key(d,di),'Sr. Assistant Director'))apps++;\r\n    for(const u of Object.keys(locTree[d][di]||{})){\r\n      total++; if(hasApp(key(d,di,u),'Assistant Director'))apps++;\r\n      for(const un of locTree[d][di][u]||[]){ total++; if(hasApp(key(d,di,u,un),'Manager'))apps++; }\r\n    }\r\n  }\r\n  return{apps,empty:total-apps,total};\r\n}\r\nfunction distStats(d,di){\r\n  let apps=0,total=0;\r\n  total++; if(hasApp(key(d,di),'Sr. Assistant Director'))apps++;\r\n  for(const u of Object.keys(locTree[d]?.[di]||{})){\r\n    total++; if(hasApp(key(d,di,u),'Assistant Director'))apps++;\r\n    for(const un of locTree[d][di][u]||[]){ total++; if(hasApp(key(d,di,u,un),'Manager'))apps++; }\r\n  }\r\n  return{apps,empty:total-apps};\r\n}\r\nfunction upaStats(d,di,u){\r\n  let apps=0,total=0;\r\n  total++; if(hasApp(key(d,di,u),'Assistant Director'))apps++;\r\n  for(const un of locTree[d]?.[di]?.[u]||[]){ total++; if(hasApp(key(d,di,u,un),'Manager'))apps++; }\r\n  return{apps,empty:total-apps};\r\n}\r\n\r\n\/* \u2500\u2500 STATS BAR \u2500\u2500 *\/\r\nfunction updateStats(){\r\n  let filled=0,empty=0,total=0,todayCnt=0;\r\n  const today=new Date().toISOString().slice(0,10);\r\n  for(const d of DIV_ORDER){\r\n    if(!locTree[d]||!canSee(d))continue;\r\n    const s=divStats(d); filled+=s.apps; empty+=s.empty; total+=s.total;\r\n  }\r\n  const vis=allApps.filter(a=>canSee(a.parts[0]));\r\n  const dateV=document.getElementById('f-date').value;\r\n  vis.forEach(a=>{ if(safeDateStr(a.ts)===today)todayCnt++; });\r\n  const filtered=dateV?vis.filter(a=>safeDateStr(a.ts)===dateV):vis;\r\n  const activeFiltered=activeFilter==='today'?vis.filter(a=>safeDateStr(a.ts)===today):filtered;\r\n  document.getElementById('st-total').textContent  = activeFiltered.length;\r\n  document.getElementById('st-filled').textContent = filled;\r\n  document.getElementById('st-empty').textContent  = empty;\r\n  document.getElementById('st-pos').textContent    = total;\r\n  document.getElementById('st-today').textContent  = todayCnt;\r\n  document.getElementById('f-count').textContent   = activeFiltered.length;\r\n}\r\n\r\n\/* \u2500\u2500 APP ROWS \u2500\u2500 *\/\r\nfunction appRows(apps,k,pos){\r\n  if(!apps.length)return'';\r\n  return`<div class=\"app-rows\">${apps.map((a,i)=>`<div class=\"app-row\" onclick=\"event.stopPropagation();openModal('${esc(k)}','${esc(pos)}',${i})\"><div class=\"app-num\">${i+1}<\/div><span class=\"app-name\">${a.name||'\u2014'}<\/span><span class=\"app-arrow\">\u203a<\/span><\/div>`).join('')}<\/div>`;\r\n}\r\n\r\nfunction pillsHTML(apps,empty){\r\n  const s=typeof apps==='object'&&apps.apps!==undefined?apps:{apps:apps.length,empty};\r\n  const af=activeFilter;\r\n  if(af==='full') return s.apps?`<span class=\"pill pill-a\">\u0986\u09ac\u09c7\u09a6\u09a8 ${s.apps}<\/span>`:'';\r\n  if(af==='empty') return s.empty?`<span class=\"pill pill-z\">\u0996\u09be\u09b2\u09bf \u09aa\u09a6 \u0986\u099b\u09c7<\/span>`:'';\r\n  return`<span class=\"pill pill-a\">\u0986\u09ac\u09c7\u09a6\u09a8 ${s.apps}<\/span>`;\r\n}\r\n\r\nfunction shouldShow(s){\r\n  if(activeFilter==='full')return s.apps>0;\r\n  if(activeFilter==='empty')return s.empty>0;\r\n  return true;\r\n}\r\n\r\n\r\n\r\nfunction safeDate(ts) {\r\n  if (!ts) return null;\r\n  \/\/ Handle \"5\/18\/2026 14:09:58\" format from Google Sheets\r\n  try {\r\n    \/\/ Try direct parse\r\n    const d = new Date(ts);\r\n    if (!isNaN(d.getTime())) return d;\r\n    \/\/ Try M\/D\/YYYY H:MM:SS format\r\n    const m = ts.match(\/(\\d+)\\\/(\\d+)\\\/(\\d+)\\s+(\\d+):(\\d+)\/);\r\n    if (m) return new Date(+m[3], +m[1]-1, +m[2], +m[4], +m[5]);\r\n    return null;\r\n  } catch(e) { return null; }\r\n}\r\nfunction safeDateStr(ts) {\r\n  const d = safeDate(ts);\r\n  return d ? d.toISOString().slice(0,10) : '';\r\n}\r\nfunction safeDateLabel(ts) {\r\n  const d = safeDate(ts);\r\n  if (!d) return '';\r\n  try { return d.toLocaleDateString('bn-BD', {year:'numeric',month:'long',day:'numeric'}); }\r\n  catch(e) { return ts; }\r\n}\r\n\r\n\/* \u2500\u2500 HOVER STATS IN COLUMN HEADERS \u2500\u2500 *\/\r\nfunction showHS(id, name, apps) {\r\n  const el = document.getElementById('hs-' + id);\r\n  if (!el) return;\r\n  el.innerHTML = '<span class=\"chs-name\">' + name + '<\/span>' +\r\n    (apps > 0 ? '<span class=\"chs-app\">\u0986\u09ac\u09c7\u09a6\u09a8 ' + apps + '<\/span>' : '<span style=\"font-size:10px;color:var(--text3)\">\u0986\u09ac\u09c7\u09a6\u09a8 \u09a8\u09c7\u0987<\/span>');\r\n  el.classList.add('vis');\r\n}\r\nfunction clearHS(id) {\r\n  const el = document.getElementById('hs-' + id);\r\n  if (!el) return;\r\n  el.innerHTML = ''; el.classList.remove('vis');\r\n}\r\n\r\n\/* \u2500\u2500 RENDER DIVISIONS \u2500\u2500 *\/\r\nfunction renderDivs(){\r\n  const divs=DIV_ORDER.filter(d=>locTree[d]&&canSee(d));\r\n  document.getElementById('ct-div').textContent=divs.length+' \u099f\u09bf';\r\n  document.getElementById('ls-div').innerHTML=divs.map(d=>{\r\n    const s=divStats(d);\r\n    if(!shouldShow(s))return'';\r\n    const dApps=getAppsRaw(key(d),'Deputy Director');\r\n    return`<div class=\"card${selDiv===d?' active':''}\" id=\"cd-${esc(d)}\" onmouseenter=\"clickDiv('${esc(d)}');showHS('div','${esc(d)}',${s.apps})\" onmouseleave=\"clearHS('div')\">\r\n      <div class=\"card-top\">\r\n        <div class=\"card-info\"><span class=\"card-role\">Deputy Director<\/span><span class=\"card-name\">${d}<\/span><\/div>\r\n        <div class=\"card-pills\">${pillsHTML(s)}<\/div>\r\n      <\/div>\r\n      ${appRows(dApps,key(d),'Deputy Director')}\r\n    <\/div>`;\r\n  }).join('')||'<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udd12<\/div>\u0995\u09cb\u09a8\u09cb \u09ac\u09bf\u09ad\u09be\u0997 \u09a8\u09c7\u0987<\/div>';\r\n}\r\n\r\nwindow.clickDiv=function(d,skipReset){\r\n  selDiv=d; if(!skipReset){selDist=null;selUpa=null;}\r\n  document.querySelectorAll('#ls-div .card').forEach(el=>{\r\n    el.classList.toggle('active',el.id==='cd-'+d);\r\n    el.classList.toggle('dim',el.id!=='cd-'+d);\r\n  });\r\n  document.getElementById('back-dist').style.display='block';\r\n  const dists=Object.keys(locTree[d]||{}).sort((a,b)=>a.localeCompare(b,'bn'));\r\n  const distTotalApps = dists.reduce((sum,di)=>{ const s=distStats(d,di); return sum+s.apps; },0);\r\n  document.getElementById('ct-dist').textContent=dists.length+' \u099f\u09bf';\r\n  const ctDistApp=document.getElementById('ct-dist-app');\r\n  if(ctDistApp){ctDistApp.textContent='\u0986\u09ac\u09c7\u09a6\u09a8 '+distTotalApps;ctDistApp.style.display='';}\r\n\r\n  document.getElementById('ls-dist').innerHTML=dists.map(di=>{\r\n    const s=distStats(d,di); if(!shouldShow(s))return'';\r\n    const apps=getAppsRaw(key(d,di),'Sr. Assistant Director');\r\n    return`<div class=\"card${selDist===di?' active':''}\" id=\"dd-${esc(di)}\" onmouseenter=\"clickDist('${esc(d)}','${esc(di)}');showHS('dist','${esc(di)}',${s.apps})\" onmouseleave=\"clearHS('dist')\">\r\n      <div class=\"card-top\">\r\n        <div class=\"card-info\"><span class=\"card-role\">Sr. Asst. Director<\/span><span class=\"card-name\">${di}<\/span><\/div>\r\n        <div class=\"card-pills\">${pillsHTML(s)}<\/div>\r\n      <\/div>\r\n      ${appRows(apps,key(d,di),'Sr. Assistant Director')}\r\n    <\/div>`;\r\n  }).join('')||'<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udced<\/div>\u0995\u09cb\u09a8\u09cb \u099c\u09c7\u09b2\u09be \u09a8\u09c7\u0987<\/div>';\r\n  if(!skipReset){\r\n    document.getElementById('ls-upa').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div>';\r\n    document.getElementById('ls-union').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u0989\u09aa\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div>';\r\n    document.getElementById('ct-upa').textContent='\u2014'; document.getElementById('ct-union').textContent='\u2014';\r\n    document.getElementById('back-upa').style.display='none'; document.getElementById('back-union').style.display='none';\r\n    ['upa','union'].forEach(c=>{const e=document.getElementById('ct-'+c+'-app');if(e)e.style.display='none';});\r\n  }\r\n};\r\n\r\nwindow.clickDist=function(d,di,skipReset){\r\n  selDist=di; if(!skipReset)selUpa=null;\r\n  document.querySelectorAll('#ls-dist .card').forEach(el=>{\r\n    el.classList.toggle('active',el.id==='dd-'+di);\r\n    el.classList.toggle('dim',el.id!=='dd-'+di);\r\n  });\r\n  document.getElementById('back-upa').style.display='block';\r\n  const upas=Object.keys(locTree[d]?.[di]||{}).sort((a,b)=>a.localeCompare(b,'bn'));\r\n  const upaTotalApps = upas.reduce((sum,u)=>{ const s=upaStats(d,di,u); return sum+s.apps; },0);\r\n  document.getElementById('ct-upa').textContent=upas.length+' \u099f\u09bf';\r\n  const ctUpaApp=document.getElementById('ct-upa-app');\r\n  if(ctUpaApp){ctUpaApp.textContent='\u0986\u09ac\u09c7\u09a6\u09a8 '+upaTotalApps;ctUpaApp.style.display='';}\r\n\r\n  document.getElementById('ls-upa').innerHTML=upas.map(u=>{\r\n    const s=upaStats(d,di,u); if(!shouldShow(s))return'';\r\n    const apps=getAppsRaw(key(d,di,u),'Assistant Director');\r\n    return`<div class=\"card${selUpa===u?' active':''}\" id=\"cu-${esc(u)}\" onmouseenter=\"clickUpa('${esc(d)}','${esc(di)}','${esc(u)}');showHS('upa','${esc(u)}',${s.apps})\" onmouseleave=\"clearHS('upa')\">\r\n      <div class=\"card-top\">\r\n        <div class=\"card-info\"><span class=\"card-role\">Asst. Director<\/span><span class=\"card-name\">${u}<\/span><\/div>\r\n        <div class=\"card-pills\">${pillsHTML(s)}<\/div>\r\n      <\/div>\r\n      ${appRows(apps,key(d,di,u),'Assistant Director')}\r\n    <\/div>`;\r\n  }).join('')||'<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udced<\/div>\u0995\u09cb\u09a8\u09cb \u0989\u09aa\u099c\u09c7\u09b2\u09be \u09a8\u09c7\u0987<\/div>';\r\n  if(!skipReset){\r\n    document.getElementById('ls-union').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u0989\u09aa\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div>';\r\n    document.getElementById('ct-union').textContent='\u2014';\r\n    document.getElementById('back-union').style.display='none';\r\n    const eU=document.getElementById('ct-union-app');if(eU)eU.style.display='none';\r\n  }\r\n};\r\n\r\nwindow.clickUpa=function(d,di,u,skipReset){\r\n  selUpa=u;\r\n  document.querySelectorAll('#ls-upa .card').forEach(el=>{\r\n    el.classList.toggle('active',el.id==='cu-'+u);\r\n    el.classList.toggle('dim',el.id!=='cu-'+u);\r\n  });\r\n  document.getElementById('back-union').style.display='block';\r\n  const unions=(locTree[d]?.[di]?.[u]||[]).slice().sort((a,b)=>a.localeCompare(b,'bn'));\r\n  const unionTotalApps = unions.reduce((sum,un)=>{ return sum + getAppsRaw(key(d,di,u,un),'Manager').length; },0);\r\n  document.getElementById('ct-union').textContent=unions.length+' \u099f\u09bf';\r\n  const ctUnionApp=document.getElementById('ct-union-app');\r\n  if(ctUnionApp){ctUnionApp.textContent='\u0986\u09ac\u09c7\u09a6\u09a8 '+unionTotalApps;ctUnionApp.style.display='';}\r\n\r\n  document.getElementById('ls-union').innerHTML=unions.map(un=>{\r\n    const k=key(d,di,u,un);\r\n    const apps=getAppsRaw(k,'Manager');\r\n    const show=activeFilter==='full'?apps.length>0:activeFilter==='empty'?apps.length===0:true;\r\n    if(!show)return'';\r\n    return`<div class=\"union-card\" onmouseenter=\"showHS('union','${esc(un)}',${apps.length})\" onmouseleave=\"clearHS('union')\">\r\n      <div><span class=\"union-role\">Manager<\/span><span class=\"union-name\">${un}<\/span><\/div>\r\n      ${apps.length?`<div><div class=\"card-pills\" style=\"align-items:flex-end\"><span class=\"pill pill-a\">${apps.length} \u099c\u09a8<\/span><\/div>${appRows(apps,k,'Manager')}<\/div>`:`<span class=\"pill pill-z\">\u0986\u09ac\u09c7\u09a6\u09a8 \u09a8\u09c7\u0987<\/span>`}\r\n    <\/div>`;\r\n  }).join('')||'<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udced<\/div>\u0995\u09cb\u09a8\u09cb \u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8 \u09a8\u09c7\u0987<\/div>';\r\n};\r\n\r\n\/* \u2500\u2500 BACK \u2500\u2500 *\/\r\nwindow.resetFrom=function(level){\r\n  function clearHSEl(id){ const e=document.getElementById('hs-'+id); if(e){e.innerHTML='';e.classList.remove('vis');} }\r\n  if(level==='dist'){\r\n    selDiv=null; selDist=null; selUpa=null;\r\n    document.querySelectorAll('#ls-div .card').forEach(el=>{ el.classList.remove('active','dim'); });\r\n    document.getElementById('ls-dist').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u09ac\u09bf\u09ad\u09be\u0997\u09c7 \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div>';\r\n    document.getElementById('ls-upa').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div>';\r\n    document.getElementById('ls-union').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u0989\u09aa\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div>';\r\n    document.getElementById('ct-dist').textContent='\u2014'; document.getElementById('ct-upa').textContent='\u2014'; document.getElementById('ct-union').textContent='\u2014';\r\n    ['dist','upa','union'].forEach(c=>{const e=document.getElementById('ct-'+c+'-app');if(e)e.style.display='none';});\r\n    document.getElementById('back-dist').style.display='none'; document.getElementById('back-upa').style.display='none'; document.getElementById('back-union').style.display='none';\r\n    clearHSEl('dist'); clearHSEl('upa'); clearHSEl('union');\r\n  } else if(level==='upa'){\r\n    selDist=null; selUpa=null;\r\n    document.querySelectorAll('#ls-dist .card').forEach(el=>{ el.classList.remove('active','dim'); });\r\n    document.getElementById('ls-upa').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div>';\r\n    document.getElementById('ls-union').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u0989\u09aa\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div>';\r\n    document.getElementById('ct-upa').textContent='\u2014'; document.getElementById('ct-union').textContent='\u2014';\r\n    document.getElementById('back-upa').style.display='none'; document.getElementById('back-union').style.display='none';\r\n    ['upa','union'].forEach(c=>{const e=document.getElementById('ct-'+c+'-app');if(e)e.style.display='none';});\r\n    clearHSEl('upa'); clearHSEl('union');\r\n  } else if(level==='union'){\r\n    selUpa=null;\r\n    document.querySelectorAll('#ls-upa .card').forEach(el=>{ el.classList.remove('active','dim'); });\r\n    document.getElementById('ls-union').innerHTML='<div class=\"col-empty\"><div class=\"col-empty-icon\">\ud83d\udc48<\/div>\u0989\u09aa\u099c\u09c7\u09b2\u09be\u09af\u09bc \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8<\/div>';\r\n    document.getElementById('ct-union').textContent='\u2014';\r\n    document.getElementById('back-union').style.display='none';\r\n    const eU=document.getElementById('ct-union-app');if(eU)eU.style.display='none';\r\n    clearHSEl('union');\r\n  }\r\n};\r\n\r\n\/* \u2500\u2500 MODAL \u2500\u2500 *\/\r\nfunction driveImg(url){\r\n  if(!url||!url.trim())return'';\r\n  url=url.trim();\r\n  if(url.includes('uc?export=view'))return url;\r\n  const m=url.match(\/\\\/d\\\/([a-zA-Z0-9_-]+)\/);\r\n  if(m)return'https:\/\/drive.google.com\/uc?export=view&id='+m[1];\r\n  const m2=url.match(\/[?&]id=([a-zA-Z0-9_-]+)\/);\r\n  if(m2)return'https:\/\/drive.google.com\/uc?export=view&id='+m2[1];\r\n  return url.startsWith('http')?url:'';\r\n}\r\nfunction waLink(p){ p=(p||'').replace(\/[^0-9]\/g,''); if(p.startsWith('0'))p='880'+p.slice(1); if(!p.startsWith('880'))p='880'+p; return'https:\/\/wa.me\/'+p; }\r\nfunction sType(url){ if(!url||!url.trim())return null; const u=url.toLowerCase(); if(u.includes('facebook.com')||u.includes('fb.com'))return'fb'; if(u.includes('linkedin.com'))return'li'; return url.startsWith('http')?'other':null; }\r\n\r\nwindow.openModal=function(k,pos,idx){\r\n  const apps=(appMap[k]||[]).filter(a=>a.pos===pos);\r\n  if(!apps.length)return;\r\n  modalApps=apps; modalIdx=idx||0;\r\n  renderModal();\r\n  document.getElementById('modal').classList.add('open');\r\n};\r\nwindow.closeModal=function(){ document.getElementById('modal').classList.remove('open'); };\r\nwindow.switchTab=function(i){ modalIdx=i; renderModal(); };\r\n\r\nfunction renderModal(){\r\n  const a=modalApps[modalIdx];\r\n  if(!a)return;\r\n  document.getElementById('m-name').textContent=a.name||'\u2014';\r\n  document.getElementById('m-loc').textContent=a.parts.join(' \u203a ');\r\n  document.getElementById('m-pos').textContent=a.pos||'\u2014';\r\n  const ph=document.getElementById('m-photo');\r\n  const pu=driveImg(a.photo);\r\n  if(pu){ const img=document.createElement('img'); img.onerror=()=>{ph.innerHTML='\ud83d\udc64';}; img.src=pu; ph.innerHTML=''; ph.appendChild(img); }\r\n  else ph.innerHTML='\ud83d\udc64';\r\n  const tabs=document.getElementById('m-tabs');\r\n  tabs.innerHTML=modalApps.length>1?modalApps.map((_,i)=>`<button class=\"m-tab${i===modalIdx?' active':''}\" onclick=\"switchTab(${i})\">${i+1}\u09a8\u0982<\/button>`).join(''):'';\r\n  const st=sType(a.social);\r\n  let sb='';\r\n  if(st==='fb')sb=`<a class=\"abn abn-fb\" href=\"${a.social}\" target=\"_blank\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z\"\/><\/svg>Facebook<\/a>`;\r\n  else if(st==='li')sb=`<a class=\"abn abn-li\" href=\"${a.social}\" target=\"_blank\">LinkedIn<\/a>`;\r\n  else if(st==='other')sb=`<a class=\"abn abn-fb\" href=\"${a.social}\" target=\"_blank\">\ud83d\udd17 Profile<\/a>`;\r\n  document.getElementById('m-actions').innerHTML=\r\n    `<a class=\"abn abn-call\" href=\"tel:${a.phone}\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 9.81 19.79 19.79 0 01.5 1.18 2 2 0 012.5 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.91 7.91a16 16 0 006.72 6.72l1.28-1.28a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z\"\/><\/svg>\u0995\u09b2<\/a>\r\n    <a class=\"abn abn-wa\" href=\"${waLink(a.phone)}\" target=\"_blank\"><svg viewBox=\"0 0 32 32\" fill=\"currentColor\"><path d=\"M16 3C8.82 3 3 8.82 3 16c0 2.39.65 4.63 1.78 6.56L3 29l6.62-1.74A13.03 13.03 0 0016 29c7.18 0 13-5.82 13-13S23.18 3 16 3zm5.9 16.1c-.3-.15-1.77-.87-2.04-.97-.28-.1-.48-.15-.68.15-.2.3-.77.97-.94 1.17-.17.2-.35.22-.65.07-.3-.15-1.26-.46-2.4-1.48-.89-.79-1.49-1.77-1.66-2.07-.17-.3-.02-.46.13-.61.13-.13.3-.35.44-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.02-.52-.08-.15-.68-1.63-.93-2.23-.24-.58-.49-.5-.68-.51h-.58c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48 0 1.46 1.06 2.87 1.21 3.07.15.2 2.08 3.18 5.04 4.46.7.3 1.25.48 1.68.62.7.22 1.34.19 1.84.12.56-.08 1.77-.72 2.02-1.42.25-.7.25-1.3.17-1.42-.07-.12-.27-.2-.57-.35z\"\/><\/svg>WhatsApp<\/a>\r\n    ${sb}${a.cv?`<a class=\"abn abn-cv\" href=\"${a.cv}\" target=\"_blank\">\ud83d\udcc4 CV<\/a>`:''}`;\r\n  const f=(l,v)=>v?`<div class=\"fbox\"><span class=\"flbl\">${l}<\/span><span class=\"fval\">${v}<\/span><\/div>`:'';\r\n  const ff=(l,v)=>v?`<div class=\"fbox full\"><span class=\"flbl\">${l}<\/span><span class=\"fval\">${v}<\/span><\/div>`:'';\r\n  document.getElementById('m-body').innerHTML=`\r\n    <div class=\"sec-lbl\"><span>\u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf\u0997\u09a4 \u09a4\u09a5\u09cd\u09af<\/span><\/div>\r\n    <div class=\"fgrid\">${f('\u09aa\u09c2\u09b0\u09cd\u09a3 \u09a8\u09be\u09ae',a.name)}${f('\u09aa\u09bf\u09a4\u09be\u09b0 \u09a8\u09be\u09ae',a.father)}${f('\u09ab\u09cb\u09a8',a.phone)}${f('\u0987\u09ae\u09c7\u0987\u09b2',a.email)}${ff('\u09a0\u09bf\u0995\u09be\u09a8\u09be',a.addr)}${ff('\u0985\u09ad\u09bf\u099c\u09cd\u099e\u09a4\u09be',a.exp)}<\/div>\r\n    ${a.ref_name?`<div class=\"sec-lbl\"><span>\u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8<\/span><\/div><div class=\"fgrid\">${ff('\u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8 \u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf\u09b0 \u09a8\u09be\u09ae',a.ref_name)}<\/div>`:''}\r\n    ${(a.emg_name||a.emg_phone)?`<div class=\"sec-lbl\"><span>\u099c\u09b0\u09c1\u09b0\u09bf \u09af\u09cb\u0997\u09be\u09af\u09cb\u0997<\/span><\/div><div class=\"fgrid\">${f('\u09a8\u09be\u09ae',a.emg_name)}${f('\u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995',a.emg_rel)}${ff('\u09ab\u09cb\u09a8',a.emg_phone)}<\/div>`:''}\r\n    ${a.trusted_phone?`<div class=\"sec-lbl\"><span>\u09ac\u09bf\u09b6\u09cd\u09ac\u09b8\u09cd\u09a4 \u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf<\/span><\/div><div class=\"fgrid\">${ff('\u09ab\u09cb\u09a8',a.trusted_phone)}<\/div>`:''}\r\n    <div class=\"sec-lbl\"><span>\u09a1\u0995\u09c1\u09ae\u09c7\u09a8\u09cd\u099f<\/span><\/div>\r\n    <div class=\"fgrid\">${f('\u0986\u09ac\u09c7\u09a6\u09a8\u09c7\u09b0 \u09a4\u09be\u09b0\u09bf\u0996',a.ts?safeDateLabel(a.ts):'')}${a.cv?`<div class=\"fbox\"><span class=\"flbl\">CV<\/span><span class=\"fval\"><a href=\"${a.cv}\" target=\"_blank\">\u09a6\u09c7\u0996\u09c1\u09a8 \u2192<\/a><\/span><\/div>`:''}<\/div>\r\n    <button class=\"dl-btn\" onclick=\"dlPDF()\">\u2b07 PDF \u09a1\u09be\u0989\u09a8\u09b2\u09cb\u09a1<\/button>`;\r\n}\r\n\r\n\/* \u2500\u2500 PDF \u2500\u2500 *\/\r\nwindow.dlPDF=function(){\r\n  const a=modalApps[modalIdx]; if(!a)return;\r\n  const pu=driveImg(a.photo); const st=sType(a.social);\r\n  const sl=st==='li'?'LinkedIn':st==='fb'?'Facebook':'Social';\r\n  const r=(l,v)=>v?`<div class=\"fd\"><div class=\"fl\">${l}<\/div><div class=\"fv\">${v}<\/div><\/div>`:'';\r\n  const rf=(l,v)=>v?`<div class=\"fd f\"><div class=\"fl\">${l}<\/div><div class=\"fv\">${v}<\/div><\/div>`:'';\r\n  const html=`<!DOCTYPE html><html><head><meta charset=\"UTF-8\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Roboto:wght@400;500;700&display=swap\" rel=\"stylesheet\">\r\n<style>*{box-sizing:border-box;margin:0;padding:0;}body{font-family:'Roboto',sans-serif;background:#f5f5f7;padding:28px;color:#111;}\r\n.wrap{max-width:600px;margin:auto;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.1);}\r\n.head{background:linear-gradient(135deg,#96281B,#C0392B);padding:22px 24px;display:flex;align-items:center;gap:16px;}\r\n.ph{width:68px;height:68px;border-radius:50%;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;overflow:hidden;}\r\n.ph img{width:100%;height:100%;object-fit:cover;border-radius:50%;}\r\n.hn{font-size:18px;font-weight:700;color:#fff;margin-bottom:2px;}.hp{font-size:11px;color:rgba(255,255,255,.72);}.hl{font-size:10px;color:rgba(255,255,255,.5);margin-top:2px;}\r\n.body{padding:20px 24px;}\r\n.sec{font-size:8px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#aaa;display:flex;align-items:center;gap:7px;margin:14px 0 8px;}\r\n.sec:first-child{margin-top:0;}.sec::before,.sec::after{content:'';flex:1;height:1px;background:#eee;}\r\n.grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;}\r\n.fd{padding:9px 11px;background:#f8f8f8;border-radius:7px;border-left:3px solid #C0392B;}\r\n.fd.f{grid-column:1\/-1;}.fl{font-size:8px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#bbb;margin-bottom:2px;}.fv{font-size:12px;font-weight:500;color:#111;line-height:1.4;word-break:break-word;}\r\n.foot{padding:12px 24px;background:#fafafa;border-top:1px solid #eee;text-align:center;font-size:9px;color:#ccc;}\r\n<\/style><\/head><body><div class=\"wrap\">\r\n<div class=\"head\"><div class=\"ph\">${pu?`<img decoding=\"async\" src=\"${pu}\" alt=\"\">`:'\ud83d\udc64'}<\/div><div><div class=\"hn\">${a.name||'\u2014'}<\/div><div class=\"hp\">${a.pos||'\u2014'}<\/div><div class=\"hl\">${a.parts.join(' \u203a ')}<\/div><\/div><\/div>\r\n<div class=\"body\"><div class=\"sec\"><span>\u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf\u0997\u09a4 \u09a4\u09a5\u09cd\u09af<\/span><\/div>\r\n<div class=\"grid\">${r('\u09aa\u09c2\u09b0\u09cd\u09a3 \u09a8\u09be\u09ae',a.name)}${r('\u09aa\u09bf\u09a4\u09be\u09b0 \u09a8\u09be\u09ae',a.father)}${r('\u09ab\u09cb\u09a8',a.phone)}${r('\u0987\u09ae\u09c7\u0987\u09b2',a.email)}${rf('\u09a0\u09bf\u0995\u09be\u09a8\u09be',a.addr)}${rf('\u0985\u09ad\u09bf\u099c\u09cd\u099e\u09a4\u09be',a.exp)}<\/div>\r\n${a.ref_name?`<div class=\"sec\"><span>\u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8<\/span><\/div><div class=\"grid\">${rf('\u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8',a.ref_name)}<\/div>`:''}\r\n${(a.emg_name||a.emg_phone)?`<div class=\"sec\"><span>\u099c\u09b0\u09c1\u09b0\u09bf \u09af\u09cb\u0997\u09be\u09af\u09cb\u0997<\/span><\/div><div class=\"grid\">${r('\u09a8\u09be\u09ae',a.emg_name)}${r('\u09b8\u09ae\u09cd\u09aa\u09b0\u09cd\u0995',a.emg_rel)}${rf('\u09ab\u09cb\u09a8',a.emg_phone)}<\/div>`:''}\r\n${a.trusted_phone?`<div class=\"sec\"><span>\u09ac\u09bf\u09b6\u09cd\u09ac\u09b8\u09cd\u09a4 \u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf<\/span><\/div><div class=\"grid\">${rf('\u09ab\u09cb\u09a8',a.trusted_phone)}<\/div>`:''}\r\n<div class=\"sec\"><span>\u09a1\u0995\u09c1\u09ae\u09c7\u09a8\u09cd\u099f<\/span><\/div>\r\n<div class=\"grid\">${a.social?r(sl,a.social):''}${a.cv?r('CV',a.cv):''}${r('\u09a4\u09be\u09b0\u09bf\u0996',a.ts?safeDateLabel(a.ts):'')}<\/div><\/div>\r\n<div class=\"foot\">Salmon Developers Ltd. \u2014 Organogram System<\/div><\/div><\/body><\/html>`;\r\n  const blob=new Blob([html],{type:'text\/html'});\r\n  const url=URL.createObjectURL(blob);\r\n  const link=document.createElement('a'); link.href=url; link.download=(a.name||'applicant').replace(\/\\s+\/g,'_')+'_profile.html'; link.click(); URL.revokeObjectURL(url);\r\n};\r\n\r\nfunction esc(s){ return(s||'').replace(\/\\\\\/g,'\\\\\\\\').replace(\/'\/g,\"\\\\'\"); }\r\n\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\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>Salmon Developers \u2014 Organogram Organogram System Salmon Developers Ltd. Username Password \u09aa\u09cd\u09b0\u09ac\u09c7\u09b6 \u0995\u09b0\u09c1\u09a8 Quick Access Salmon Developers Organogram Tree Live AAdmin Logout \u2014 \u09ac\u09bf\u09ad\u09be\u0997 \u2014 \u25be \u2014 \u099c\u09c7\u09b2\u09be \u2014 \u25be \u2014 \u0989\u09aa\u099c\u09c7\u09b2\u09be \u2014 \u25be \u2014 \u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8 \u2014 \u25be \u09a4\u09be\u09b0\u09bf\u0996 \u2715 \u09ae\u09cb\u099f \u2014 \u099f\u09bf \u0986\u09ac\u09c7\u09a6\u09a8 \u09b8\u09ac \u09aa\u09c2\u09b0\u09cd\u09a3 \u0996\u09be\u09b2\u09bf \u0986\u099c \u2014\u09ae\u09cb\u099f \u0986\u09ac\u09c7\u09a6\u09a8 \u2014\u09aa\u09a6 \u09aa\u09c2\u09b0\u09cd\u09a3 \u2014\u09aa\u09a6 \u0996\u09be\u09b2\u09bf \u2014\u09ae\u09cb\u099f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Organogram - Salmon Developers Ltd.<\/title>\n<meta name=\"description\" content=\"Explore the organizational structure of Salmon Developers Ltd and learn about the leadership, departments, and management team driving excellence in real estate development in Bangladesh.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Organogram - Salmon Developers Ltd.\" \/>\n<meta property=\"og:description\" content=\"Explore the organizational structure of Salmon Developers Ltd and learn about the leadership, departments, and management team driving excellence in real estate development in Bangladesh.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/organogramtree.salmondevelopersbd.com\/\" \/>\n<meta property=\"og:site_name\" content=\"Salmon Developers Ltd.\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-24T12:00:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/drive.google.com\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"21 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/\",\"url\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/\",\"name\":\"Organogram - Salmon Developers Ltd.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/drive.google.com\\\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-\",\"datePublished\":\"2026-05-19T05:37:40+00:00\",\"dateModified\":\"2026-05-24T12:00:04+00:00\",\"description\":\"Explore the organizational structure of Salmon Developers Ltd and learn about the leadership, departments, and management team driving excellence in real estate development in Bangladesh.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/#primaryimage\",\"url\":\"https:\\\/\\\/drive.google.com\\\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-\",\"contentUrl\":\"https:\\\/\\\/drive.google.com\\\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Organogram\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/#website\",\"url\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/\",\"name\":\"Salmon Developers Ltd.\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/organogramtree.salmondevelopersbd.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Organogram - Salmon Developers Ltd.","description":"Explore the organizational structure of Salmon Developers Ltd and learn about the leadership, departments, and management team driving excellence in real estate development in Bangladesh.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Organogram - Salmon Developers Ltd.","og_description":"Explore the organizational structure of Salmon Developers Ltd and learn about the leadership, departments, and management team driving excellence in real estate development in Bangladesh.","og_url":"https:\/\/organogramtree.salmondevelopersbd.com\/","og_site_name":"Salmon Developers Ltd.","article_modified_time":"2026-05-24T12:00:04+00:00","og_image":[{"url":"https:\/\/drive.google.com\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"21 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/organogramtree.salmondevelopersbd.com\/","url":"https:\/\/organogramtree.salmondevelopersbd.com\/","name":"Organogram - Salmon Developers Ltd.","isPartOf":{"@id":"https:\/\/organogramtree.salmondevelopersbd.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/organogramtree.salmondevelopersbd.com\/#primaryimage"},"image":{"@id":"https:\/\/organogramtree.salmondevelopersbd.com\/#primaryimage"},"thumbnailUrl":"https:\/\/drive.google.com\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-","datePublished":"2026-05-19T05:37:40+00:00","dateModified":"2026-05-24T12:00:04+00:00","description":"Explore the organizational structure of Salmon Developers Ltd and learn about the leadership, departments, and management team driving excellence in real estate development in Bangladesh.","breadcrumb":{"@id":"https:\/\/organogramtree.salmondevelopersbd.com\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/organogramtree.salmondevelopersbd.com\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/organogramtree.salmondevelopersbd.com\/#primaryimage","url":"https:\/\/drive.google.com\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-","contentUrl":"https:\/\/drive.google.com\/uc?export=view&id=1oPCV9W4KQfrYkS3bHg6ga16p900aNV3-"},{"@type":"BreadcrumbList","@id":"https:\/\/organogramtree.salmondevelopersbd.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/organogramtree.salmondevelopersbd.com\/"},{"@type":"ListItem","position":2,"name":"Organogram"}]},{"@type":"WebSite","@id":"https:\/\/organogramtree.salmondevelopersbd.com\/#website","url":"https:\/\/organogramtree.salmondevelopersbd.com\/","name":"Salmon Developers Ltd.","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/organogramtree.salmondevelopersbd.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/organogramtree.salmondevelopersbd.com\/index.php?rest_route=\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/organogramtree.salmondevelopersbd.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/organogramtree.salmondevelopersbd.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/organogramtree.salmondevelopersbd.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/organogramtree.salmondevelopersbd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12"}],"version-history":[{"count":77,"href":"https:\/\/organogramtree.salmondevelopersbd.com\/index.php?rest_route=\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":105,"href":"https:\/\/organogramtree.salmondevelopersbd.com\/index.php?rest_route=\/wp\/v2\/pages\/12\/revisions\/105"}],"wp:attachment":[{"href":"https:\/\/organogramtree.salmondevelopersbd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}