{"id":991534,"date":"2026-08-24T23:18:48","date_gmt":"2026-08-24T16:18:48","guid":{"rendered":"https:\/\/5id.vn\/seo-website-content-automation\/"},"modified":"2026-10-27T15:46:02","modified_gmt":"2026-10-27T08:46:02","slug":"seo-website-content-automation","status":"publish","type":"page","link":"https:\/\/5id.vn\/vi\/seo-website-content-automation\/","title":{"rendered":"SEO Website Content Automation &#8211; 5ID Technology"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"991534\" class=\"elementor elementor-991534\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cf881e1 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"cf881e1\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c127834\" data-id=\"c127834\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a6f3412 elementor-widget elementor-widget-html\" data-id=\"a6f3412\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =====================================================================\r\n FILE \u0110\u1ed8C L\u1eacP, \u0110\u1ea6Y \u0110\u1ee6: font + CSS + HTML + to\u00e0n b\u1ed9 script (k\u1ebft n\u1ed1i website, popup,\r\n chat, rule, xo\u00e1 h\u00e0ng lo\u1ea1t). KH\u00d4NG c\u1ea7n script c\u0169 n\u1eefa.\r\n C\u00c1CH D\u00d9NG: xo\u00e1 H\u1ebeT code c\u0169 trong HTML widget (link, style, section, script),\r\n r\u1ed3i d\u00e1n nguy\u00ean file n\u00e0y v\u00e0o.\r\n===================================================================== -->\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap\" rel=\"stylesheet\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&amp;display=swap\" rel=\"stylesheet\">\r\n<style>\r\nbody.page-id-991534 .entry-title,body.page-id-991534 .page-title,body.page-id-991534 .post-title,body.page-id-991534 .page-header,body.page-id-991534 .td-page-header,body.page-id-991534 .main-title,body.page-id-991534 h1.page-title,body.page-id-991534 h1.entry-title,body.page-id-991534 .n8n-lang-switcher{display:none!important}\r\n.st5-dashboard{--surface:#fbf9fb;--surface-low:#f5f3f5;--surface-card:#fff;--surface-soft:#efedef;--surface-high:#eae7ea;--ink:#1b1b1d;--text-soft:#44474d;--muted:#75777e;--line:#c5c6cd;--primary:#0d1c32;--blue:#0070ea;--blue-dark:#0059bb;--blue-soft:#d8e2ff;--green:#137333;width:100%;margin:0;padding:32px 0 96px;background:var(--surface-low);color:var(--ink);font-family:Inter,Arial,sans-serif;position:relative;z-index:0}\r\n.st5-dashboard,.st5-dashboard *{box-sizing:border-box}\r\n.st5-dashboard h1,.st5-dashboard h2,.st5-dashboard h3,.st5-dashboard p{letter-spacing:0!important;font-family:Inter,Arial,sans-serif}\r\n.st5-dashboard .material-symbols-outlined{font-family:\"Material Symbols Outlined\"!important;font-weight:normal;font-style:normal;font-size:22px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased;vertical-align:middle}\r\n.st5-card{border:1px solid var(--line);border-radius:12px;background:var(--surface-card);box-shadow:0 4px 6px -1px rgba(0,0,0,.04)}\r\n\/* buttons (\u0111\u00e8 theme) *\/\r\n.st5-dashboard button{font-family:Inter,Arial,sans-serif;text-transform:none;letter-spacing:0;box-shadow:none;cursor:pointer}\r\n.st5-dashboard .st5-button{min-height:40px!important;display:inline-flex!important;align-items:center;justify-content:center;gap:8px;padding:8px 14px!important;border:0!important;border-radius:8px!important;background:var(--blue)!important;color:#fff!important;font-size:14px!important;font-weight:700!important;text-decoration:none}\r\n.st5-dashboard .st5-button:hover{background:var(--blue-dark)!important}\r\n.st5-dashboard .st5-link-btn{padding:0!important;border:0!important;background:transparent!important;color:var(--muted)!important;font-size:14px!important;font-weight:700!important;min-height:0!important;width:auto!important}\r\n.st5-dashboard .st5-link-btn.primary{color:var(--blue)!important}\r\n.st5-dashboard .st5-icon-btn{width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;display:grid!important;place-items:center;border:0!important;border-radius:8px!important;background:transparent!important;color:var(--muted)!important}\r\n.st5-dashboard .st5-icon-btn:hover{background:var(--surface-soft)!important;color:var(--primary)!important}\r\n.st5-dashboard .st5-icon-btn:disabled{opacity:.45;cursor:not-allowed}\r\n.st5-dashboard .st5-send{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;display:grid!important;place-items:center;border:0!important;border-radius:8px!important;background:var(--blue)!important;color:#fff!important}\r\n.st5-dashboard .st5-send:disabled{opacity:.5}\r\n\/* websites *\/\r\n.st5-websites{padding:24px;display:flex;flex-direction:column;gap:24px}\r\n.st5-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px}\r\n.st5-dashboard .st5-card-title{margin:0!important;color:var(--primary);font-size:24px!important;line-height:1.4!important;font-weight:700!important}\r\n.st5-card-subtitle{margin:4px 0 0;color:var(--text-soft);font-size:16px;line-height:1.6}\r\n.st5-table-wrap{width:100%;overflow-x:auto}\r\n.st5-table{width:100%;min-width:520px;border-collapse:collapse;text-align:left;border:0}\r\n.st5-table th{padding:12px 16px;border:0;border-bottom:1px solid var(--surface-high);color:var(--text-soft);font-size:14px;font-weight:700;background:transparent}\r\n.st5-table td{padding:16px;border:0;border-bottom:1px solid var(--surface-high);color:var(--text-soft);font-size:16px;vertical-align:middle;background:transparent}\r\n.st5-site-name{display:flex;align-items:center;gap:8px;color:var(--primary)!important;font-weight:600;text-decoration:none}\r\n.st5-site-name:hover{text-decoration:underline}\r\n.st5-site-name .material-symbols-outlined{color:var(--blue);font-size:20px}\r\n.st5-pill{display:inline-flex;padding:4px 8px;border-radius:6px;background:#e6f4ea;color:var(--green);font-size:12px;font-weight:600;white-space:nowrap}\r\n.st5-status-pending,.st5-status-revoked{background:#f3f4f6;color:#6b7280}\r\n.st5-status-failed{background:#fee2e2;color:#b42318}\r\n.st5-actions{display:flex;justify-content:flex-end;gap:12px}\r\n.st5-empty-cell{padding:18px 12px;color:#6b7280;text-align:center}\r\n\/* chat *\/\r\n.st5-workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}\r\n.st5-chat{height:calc(100vh - 200px);min-height:560px;max-height:860px;display:flex;flex-direction:column;overflow:hidden}\r\n.st5-chat-header{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--line);background:var(--surface-low)}\r\n.st5-chat-identity{display:flex;align-items:center;gap:12px}\r\n.st5-bot-icon{width:40px;height:40px;border-radius:999px;display:grid;place-items:center;background:var(--blue);color:#fff;flex:0 0 auto}\r\n.st5-dashboard .st5-chat-identity h3{margin:0!important;color:var(--primary)!important;font-size:18px!important;line-height:1.2!important;font-weight:800!important}\r\n.st5-chat-identity p{display:flex;align-items:center;gap:6px;margin:2px 0 0;color:var(--text-soft);font-size:12px}\r\n.st5-green-dot{width:8px;height:8px;border-radius:999px;background:var(--green)}\r\n.st5-chat-body{flex:1 1 auto;min-height:0;padding:24px;overflow-y:auto;background:rgba(251,249,251,.5);display:flex;flex-direction:column;gap:24px}\r\n.st5-user-message{display:flex;justify-content:flex-end}\r\n.st5-user-bubble{max-width:80%;padding:16px;border-radius:12px 12px 0 12px;background:var(--blue);color:#fff}\r\n.st5-user-bubble p,.st5-bot-bubble p{margin:0;font-size:16px;line-height:1.6}\r\n.st5-message-attachments{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;margin-top:12px}\r\n.st5-message-attachments img{width:100%;aspect-ratio:4\/3;object-fit:cover;border-radius:8px}\r\n.st5-bot-message{display:flex;gap:12px}\r\n.st5-small-avatar{width:32px;height:32px;margin-top:4px;flex:0 0 auto;display:grid;place-items:center;border-radius:999px;background:var(--blue);color:#fff}\r\n.st5-small-avatar .material-symbols-outlined{font-size:16px}\r\n.st5-bot-bubble{max-width:80%;padding:20px;border:1px solid var(--line);border-radius:12px 12px 12px 0;background:#fff}\r\n.st5-draft-card{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface-low)}\r\n.st5-draft-status{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--blue);font-size:14px;font-weight:800}\r\n.st5-draft-actions{margin-top:12px;font-size:13px;font-weight:700}\r\n.st5-draft-actions a{color:var(--blue)}\r\n.st5-chat-input{flex:0 0 auto;padding:24px;border-top:1px solid var(--line);background:#fff}\r\n.st5-attachment-tray{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}\r\n.st5-attachment-tray[hidden]{display:none}\r\n.st5-attachment-chip{width:132px;display:grid;grid-template-columns:42px minmax(0,1fr) 24px;gap:8px;align-items:center;padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface-low)}\r\n.st5-attachment-chip img{width:42px;height:42px;object-fit:cover;border-radius:6px}\r\n.st5-attachment-chip span{overflow:hidden;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}\r\n.st5-attachment-chip button{width:24px;height:24px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:0}\r\n.st5-attachment-chip .material-symbols-outlined{font-size:17px}\r\n.st5-attach-note{min-height:16px;margin:8px 2px 0;color:var(--text-soft);font-size:12px}\r\n.st5-attach-note.error{color:#b42318}\r\n.st5-input-shell{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:flex-end;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-low)}\r\n.st5-input-shell:focus-within{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}\r\n.st5-dashboard .st5-input-shell textarea{width:100%;min-height:38px;max-height:180px;padding:8px;overflow-y:hidden;border:0!important;outline:0;background:transparent!important;color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:16px;line-height:1.6;resize:none;box-shadow:none!important}\r\n.st5-input-actions{display:flex;align-items:center;gap:8px}\r\n.st5-file-input{display:none!important}\r\n\/* publish panel *\/\r\n.st5-publish{position:sticky;top:90px;padding:24px;display:flex;flex-direction:column;gap:24px}\r\n.st5-publish-title{padding-bottom:16px;border-bottom:1px solid var(--surface-high)}\r\n.st5-dashboard .st5-publish-title h3{display:flex;align-items:center;gap:8px;margin:0!important;color:var(--primary)!important;font-size:22px!important;font-weight:800!important}\r\n.st5-publish-title .material-symbols-outlined{color:var(--blue)}\r\n.st5-publish-title p{margin:4px 0 0;color:var(--text-soft);font-size:12px}\r\n.st5-field-stack{display:flex;flex-direction:column;gap:20px}\r\n.st5-field{display:flex;flex-direction:column;gap:8px}\r\n.st5-field label{display:flex;justify-content:space-between;color:var(--text-soft);font-size:14px;font-weight:800;margin:0}\r\n.st5-field label span{color:var(--blue);font-size:10px}\r\n.st5-field select{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:15px;outline:none}\r\n.st5-segment{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}\r\n.st5-dashboard .st5-segment button{min-height:38px!important;padding:0 8px!important;border:0!important;border-radius:6px!important;background:transparent!important;color:var(--text-soft)!important;font-size:14px!important;font-weight:800!important}\r\n.st5-dashboard .st5-segment button.active{background:#fff!important;color:var(--blue)!important;box-shadow:0 1px 2px rgba(15,23,42,.08)!important}\r\n\/* modal *\/\r\n.st5-modal[hidden]{display:none!important}\r\n.st5-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:20px;font-family:Inter,Arial,sans-serif}\r\n.st5-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.48)}\r\n.st5-modal-dialog{position:relative;width:min(520px,100%);padding:24px;border-radius:12px;background:#fff;box-shadow:0 24px 80px rgba(15,23,42,.24)}\r\n.st5-modal-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:22px}\r\n.st5-modal-head h3{margin:0 0 6px;font-size:20px}\r\n.st5-modal-head p{margin:0;color:#6b7280;font-size:13px}\r\n.st5-modal-field{display:grid;gap:7px;font-size:13px;font-weight:700}\r\n.st5-modal-field input{width:100%;min-height:44px;padding:10px 12px;border:1px solid #d9dee7;border-radius:6px;font:inherit}\r\n.st5-modal-message{min-height:22px;margin-top:12px;color:#6b7280;font-size:13px}\r\n.st5-modal-message.error{color:#b42318}\r\n.st5-modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:16px}\r\nbody.st5-modal-open{overflow:hidden}\r\n\/* shell + sidebar *\/\r\n.st5-shell{width:min(1400px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:248px minmax(0,1fr);gap:24px;align-items:start}\r\n.st5-side{position:sticky;top:90px;display:flex;flex-direction:column;gap:20px;padding:20px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 4px 6px -1px rgba(0,0,0,.04)}\r\n.st5-brand{display:flex;align-items:center;gap:10px;padding:0 8px 16px;border-bottom:1px solid var(--surface-high)}\r\n.st5-brand b{display:block;color:var(--primary);font-size:16px;line-height:1.2}\r\n.st5-brand small{color:var(--muted);font-size:12px}\r\n.st5-nav{display:flex;flex-direction:column;gap:4px}\r\n.st5-nav-label{margin:8px 10px 4px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}\r\n.st5-dashboard .st5-nav-item{width:100%!important;min-height:42px!important;display:flex!important;align-items:center;gap:12px;padding:0 12px!important;border:0!important;border-radius:8px!important;background:transparent!important;color:var(--text-soft)!important;font-size:14px!important;font-weight:600!important;text-align:left}\r\n.st5-dashboard .st5-nav-item:hover{background:var(--surface-low)!important;color:var(--primary)!important}\r\n.st5-dashboard .st5-nav-item.active{background:var(--blue-soft)!important;color:var(--blue-dark)!important;font-weight:800!important}\r\n.st5-nav-badge{margin-left:auto;padding:2px 8px;border-radius:999px;background:var(--surface-high);color:var(--text-soft);font-size:11px;font-weight:700}\r\n.st5-side-foot{padding:14px 8px 0;border-top:1px solid var(--surface-high);font-size:12px;color:var(--muted)}\r\n.st5-content{min-width:0;display:flex;flex-direction:column;gap:24px}\r\n.st5-dashboard .st5-topbar h1{margin:0!important;color:var(--primary);font-size:26px!important;line-height:1.3!important;font-weight:800!important}\r\n.st5-topbar p{margin:2px 0 0;color:var(--text-soft);font-size:14px}\r\n.st5-view{display:flex;flex-direction:column;gap:24px}\r\n.st5-view[hidden]{display:none!important}\r\n.st5-frame-card{overflow:hidden}\r\n.st5-frame-bar{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--surface-high);font-size:13px;color:var(--text-soft)}\r\n.st5-frame-bar a{color:var(--blue);font-weight:700;text-decoration:none}\r\n.st5-frame{width:100%;height:calc(100vh - 260px);min-height:520px;border:0;display:block;background:#fff}\r\n.st5-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}\r\n.st5-info{padding:24px;display:flex;flex-direction:column;gap:10px}\r\n.st5-dashboard .st5-info h3{margin:0!important;color:var(--primary);font-size:18px!important;font-weight:800!important;display:flex;align-items:center;gap:8px}\r\n.st5-info h3 .material-symbols-outlined{color:var(--blue)}\r\n.st5-info p{margin:0;color:var(--text-soft);font-size:14px;line-height:1.6}\r\n.st5-link-out{color:var(--blue);font-weight:700;font-size:14px;text-decoration:none}\r\n@media(max-width:1100px){.st5-workspace-grid{grid-template-columns:1fr}.st5-publish{position:static}.st5-chat{height:640px}}\r\n@media(max-width:860px){.st5-shell{grid-template-columns:1fr;width:min(100% - 24px,720px);gap:16px}.st5-side{position:static;flex-direction:row;align-items:center;padding:8px;overflow-x:auto}.st5-brand,.st5-side-foot,.st5-nav-label,.st5-nav-badge{display:none}.st5-nav{flex-direction:row}.st5-dashboard .st5-nav-item{width:auto!important;white-space:nowrap}.st5-grid-2{grid-template-columns:1fr}.st5-card-head{flex-direction:column;align-items:flex-start}}\r\n\/* rules view *\/\r\n.st5-rules-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}\r\n.st5-rl-list{padding:24px;display:flex;flex-direction:column;gap:20px}\r\n.st5-rl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}\r\n.st5-rl-muted{color:var(--muted);font-size:13px}\r\n.st5-rl-filter{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;color:var(--text-soft)}\r\n.st5-rl-filter select,.st5-rl-editor select,.st5-rl-editor input[type=text],.st5-rl-editor textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-family:Inter,Arial,sans-serif;font-size:14px;outline:none}\r\n.st5-rl-editor select,.st5-rl-editor input[type=text]{min-height:42px}\r\n.st5-rl-editor textarea{resize:vertical;line-height:1.5}\r\n.st5-rl-editor :is(select,input,textarea):focus,.st5-rl-filter select:focus{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}\r\n.st5-rl-editor{position:sticky;top:90px;padding:24px;display:flex;flex-direction:column;gap:16px}\r\n.st5-dashboard .st5-rl-editor h3{margin:0!important;color:var(--primary);font-size:18px!important;font-weight:800!important}\r\n.st5-rl-editor label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:800;color:var(--text-soft)}\r\n.st5-rl-editor label.st5-rl-check{flex-direction:row;align-items:center;gap:8px}\r\n.st5-rl-actions{display:flex;align-items:center;gap:16px}\r\n.st5-rl-msg{min-height:18px;font-size:13px;color:var(--text-soft)}\r\n.st5-rl-msg.error{color:#b42318}\r\n.st5-rl-struct{max-width:420px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.5;white-space:pre-wrap}\r\n.st5-rl-name{color:var(--primary);font-weight:700}\r\n.st5-rl-site{font-weight:700;color:var(--text-soft);text-transform:uppercase;font-size:13px}\r\n.st5-dashboard .st5-link-btn.danger{color:#b42318!important}\r\n@media(max-width:1100px){.st5-rules-grid{grid-template-columns:1fr}.st5-rl-editor{position:static}}\r\n.st5-rl-wiz{border:1px solid var(--line);border-radius:10px;background:var(--surface-low);padding:12px 14px;display:flex;flex-direction:column;gap:14px}\r\n.st5-rl-wiz>summary{cursor:pointer;font-size:14px;font-weight:800;color:var(--blue-dark);display:flex;align-items:center;gap:8px;list-style:none}\r\n.st5-rl-wiz>summary::-webkit-details-marker{display:none}\r\n.st5-rl-wiz:not([open])>*:not(summary){display:none}\r\n.st5-rl-wiz textarea,.st5-rl-wiz input[type=text],.st5-rl-wiz select{background:#fff}\r\n.st5-rl-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}\r\n\/* submenu + bulk *\/\r\n.st5-dashboard .st5-caret{margin-left:auto;font-size:20px;transition:transform .15s}\r\n.st5-nav-badge+.st5-caret{margin-left:6px!important}\r\n.st5-nav-group.open .st5-caret{transform:rotate(180deg)}\r\n.st5-subnav{display:none;flex-direction:column;gap:2px;margin:2px 0 6px 21px;padding-left:12px;border-left:2px solid var(--surface-high)}\r\n.st5-nav-group.open .st5-subnav{display:flex}\r\n.st5-dashboard .st5-nav-sub{width:100%!important;min-height:36px!important;display:flex!important;align-items:center;gap:8px;padding:0 10px!important;border:0!important;border-radius:6px!important;background:transparent!important;color:var(--text-soft)!important;font-size:13px!important;font-weight:600!important;text-align:left}\r\n.st5-dashboard .st5-nav-sub .material-symbols-outlined{font-size:18px}\r\n.st5-dashboard .st5-nav-sub:hover{background:var(--surface-low)!important}\r\n.st5-dashboard .st5-nav-sub.active{background:var(--surface-low)!important;color:var(--blue-dark)!important;font-weight:800!important}\r\n.st5-bulk{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\r\n.st5-dashboard .st5-btn-ghost,.st5-dashboard .st5-btn-danger{min-height:36px;padding:0 14px;border-radius:8px!important;background:#fff!important;font-size:13px!important;font-weight:700!important}\r\n.st5-dashboard .st5-btn-ghost{border:1px solid var(--line)!important;color:var(--text-soft)!important}\r\n.st5-dashboard .st5-btn-danger{border:1px solid #f0b3ad!important;color:#b42318!important}\r\n.st5-dashboard .st5-btn-danger:not(:disabled):hover{background:#fee2e2!important}\r\n.st5-dashboard .st5-btn-ghost:disabled,.st5-dashboard .st5-btn-danger:disabled{opacity:.45;cursor:not-allowed}\r\n.st5-table .st5-ck{width:44px;padding-right:0}\r\n.st5-table .st5-ck input{width:18px;height:18px;accent-color:var(--blue);cursor:pointer;margin:0}\r\n.st5-table [data-connection-action=\"disconnect\"]{display:none!important}\r\n.st5-rules-grid.mode-list{grid-template-columns:minmax(0,1fr)}\r\n.st5-rules-grid.mode-list .st5-rl-editor{display:none}\r\n@media(max-width:860px){.st5-nav-group{display:contents}.st5-subnav{display:none!important}.st5-dashboard .st5-caret{display:none}}\r\n\/* rule editor: split fields *\/\r\n.st5-rl-top{display:grid;grid-template-columns:1fr 1fr;gap:16px}\r\n.st5-rl-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}\r\n.st5-rl-col{display:flex;flex-direction:column;gap:16px}\r\n.st5-rl-cols[hidden],#rl-legacy[hidden]{display:none!important}\r\n#rl-legacy{display:flex;flex-direction:column;gap:10px}\r\n.st5-rl-group{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-low)}\r\n.st5-rl-group-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:800;color:var(--text-soft)}\r\n.st5-rl-rows{display:flex;flex-direction:column;gap:8px}\r\n.st5-rl-row{display:flex;align-items:center;gap:6px}\r\n.st5-rl-editor .st5-rl-row input[type=text]{flex:1;width:auto;min-width:0;background:#fff}\r\n.st5-rl-n{width:22px;text-align:center;color:var(--muted);font-size:12px;font-weight:800}\r\n.st5-dashboard .st5-mini{width:32px!important;min-width:32px!important;height:36px;padding:0!important;border:1px solid var(--line)!important;border-radius:6px!important;background:#fff!important;color:var(--text-soft)!important;font-size:14px!important}\r\n.st5-dashboard .st5-mini:hover{background:var(--surface-soft)!important}\r\n.st5-rl-prev summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--blue-dark)}\r\n.st5-rl-prev pre{margin:8px 0 0;padding:12px;background:var(--surface-low);border-radius:8px;white-space:pre-wrap;font-size:12px;line-height:1.5;font-family:Inter,Arial,sans-serif;max-height:260px;overflow:auto}\r\n.st5-rules-grid.mode-edit{grid-template-columns:minmax(0,1fr)}\r\n.st5-rules-grid.mode-edit .st5-rl-list{display:none}\r\n.st5-rules-grid.mode-edit .st5-rl-editor{position:static}\r\n@media(max-width:860px){.st5-rl-top,.st5-rl-cols{grid-template-columns:1fr}}\r\n\/* modal buttons (modal lives in <body>) *\/\r\n.st5-modal-hint{display:block;margin-top:8px;color:#6b7280;font-size:12px;line-height:1.5}\r\n.st5-modal,.st5-modal *{box-sizing:border-box}\r\n.st5-modal .st5-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border:0;border-radius:8px;background:#0070ea;color:#fff;font:700 14px Inter,Arial,sans-serif;cursor:pointer}\r\n.st5-modal .st5-button:hover{background:#0059bb}\r\n.st5-modal .st5-button:disabled{opacity:.6;cursor:wait}\r\n.st5-modal .st5-link-btn{padding:0 8px;border:0;background:transparent;color:#75777e;font:700 14px Inter,Arial,sans-serif;cursor:pointer}\r\n.st5-modal .st5-icon-btn{width:38px;height:38px;border:0;border-radius:8px;background:transparent;color:#75777e;font-size:24px;line-height:1;cursor:pointer}\r\n.st5-modal .st5-icon-btn:hover{background:#efedef}\r\n.st5-modal h3,.st5-modal p{font-family:Inter,Arial,sans-serif}\r\n<\/style>\r\n\r\n<section class=\"st5-dashboard\">\r\n  <div class=\"st5-shell\">\r\n    <aside class=\"st5-side\">\r\n      <div class=\"st5-brand\">\r\n        <div class=\"st5-bot-icon\"><span class=\"material-symbols-outlined\">auto_awesome<\/span><\/div>\r\n        <div><b>AutoPost AI<\/b><small>Content workspace<\/small><\/div>\r\n      <\/div>\r\n      <nav class=\"st5-nav\" aria-label=\"Dashboard\">\r\n        <div class=\"st5-nav-label\">L\u00e0m vi\u1ec7c<\/div>\r\n        <button class=\"st5-nav-item active\" type=\"button\" data-view=\"chat\"><span class=\"material-symbols-outlined\">chat<\/span> Staff-AI Chat<\/button>\r\n        <button class=\"st5-nav-item\" type=\"button\" data-view=\"history\"><span class=\"material-symbols-outlined\">history<\/span> L\u1ecbch s\u1eed request<\/button>\r\n        <div class=\"st5-nav-label\">C\u1ea5u h\u00ecnh<\/div>\r\n        <div class=\"st5-nav-group\" data-group=\"websites\">\r\n          <button class=\"st5-nav-item\" type=\"button\" data-view=\"websites\"><span class=\"material-symbols-outlined\">language<\/span> Website <span class=\"st5-nav-badge\" id=\"st5-nav-sites-count\">0<\/span><span class=\"material-symbols-outlined st5-caret\">expand_more<\/span><\/button>\r\n          <div class=\"st5-subnav\">\r\n            <button class=\"st5-nav-sub active\" type=\"button\" data-view=\"websites\" data-sub=\"list\"><span class=\"material-symbols-outlined\">format_list_bulleted<\/span> Danh s\u00e1ch website<\/button>\r\n            <button class=\"st5-nav-sub\" type=\"button\" data-view=\"websites\" data-sub=\"add\"><span class=\"material-symbols-outlined\">add_circle<\/span> Add website<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"st5-nav-group\" data-group=\"rules\">\r\n          <button class=\"st5-nav-item\" type=\"button\" data-view=\"rules\"><span class=\"material-symbols-outlined\">rule<\/span> Rule \/ Template<span class=\"material-symbols-outlined st5-caret\">expand_more<\/span><\/button>\r\n          <div class=\"st5-subnav\">\r\n            <button class=\"st5-nav-sub active\" type=\"button\" data-view=\"rules\" data-sub=\"list\"><span class=\"material-symbols-outlined\">format_list_bulleted<\/span> Danh s\u00e1ch rule<\/button>\r\n            <button class=\"st5-nav-sub\" type=\"button\" data-view=\"rules\" data-sub=\"add\"><span class=\"material-symbols-outlined\">add_circle<\/span> Add rule<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <button class=\"st5-nav-item\" type=\"button\" data-view=\"settings\"><span class=\"material-symbols-outlined\">settings<\/span> C\u00e0i \u0111\u1eb7t<\/button>\r\n      <\/nav>\r\n      <div class=\"st5-side-foot\">5ID Technology \u00b7 v2<\/div>\r\n    <\/aside>\r\n\r\n    <main class=\"st5-content\">\r\n      <header class=\"st5-topbar\">\r\n        <h1 id=\"st5-view-title\">Staff-AI Chat<\/h1>\r\n        <p id=\"st5-view-desc\">G\u1eedi y\u00eau c\u1ea7u ho\u1eb7c link n\u1ed9i dung \u0111\u1ec3 AI chu\u1ea9n b\u1ecb b\u00e0i vi\u1ebft.<\/p>\r\n      <\/header>\r\n\r\n      <section class=\"st5-view\" data-view-panel=\"chat\">\r\n        <div class=\"st5-workspace-grid\">\r\n          <section class=\"st5-card st5-chat\">\r\n            <div class=\"st5-chat-header\">\r\n              <div class=\"st5-chat-identity\">\r\n                <div class=\"st5-bot-icon\"><span class=\"material-symbols-outlined\">smart_toy<\/span><\/div>\r\n                <div>\r\n                  <h3 id=\"st5-workspace-title\">Workspace: Staff-AI<\/h3>\r\n                  <p id=\"st5-workspace-status\"><span class=\"st5-green-dot\"><\/span> Ready to process content<\/p>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"st5-chat-body\" id=\"st5-chat-body\"><\/div>\r\n            <div class=\"st5-chat-input\">\r\n              <div class=\"st5-attachment-tray\" id=\"st5-attachment-tray\" hidden><\/div>\r\n              <div class=\"st5-input-shell\">\r\n                <textarea id=\"st5-message\" rows=\"1\" placeholder=\"Send a request or content link to Staff-AI...\"><\/textarea>\r\n                <div class=\"st5-input-actions\">\r\n                  <input class=\"st5-file-input\" id=\"st5-file-input\" type=\"file\" accept=\"image\/*\" multiple>\r\n                  <button class=\"st5-icon-btn\" id=\"st5-attach\" type=\"button\" aria-label=\"Attach images\"><span class=\"material-symbols-outlined\">attach_file<\/span><\/button>\r\n                  <button class=\"st5-send\" id=\"st5-send\" type=\"button\"><span class=\"material-symbols-outlined\">send<\/span><\/button>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"st5-attach-note\" id=\"st5-attach-note\" aria-live=\"polite\"><\/div>\r\n            <\/div>\r\n          <\/section>\r\n          <section class=\"st5-card st5-publish\">\r\n            <div class=\"st5-publish-title\">\r\n              <h3><span class=\"material-symbols-outlined\">publish<\/span> Content Delivery<\/h3>\r\n              <p>Configure the destination for the current request.<\/p>\r\n            <\/div>\r\n            <div class=\"st5-field-stack\">\r\n              <div class=\"st5-field\"><label>Select website <span>ACTIVE TARGET<\/span><\/label><select id=\"st5-target-site\"><\/select><\/div>\r\n              <div class=\"st5-field\"><label>Select template<\/label><select id=\"st5-target-template\"><\/select><\/div>\r\n              <div class=\"st5-field\"><label>Publishing mode<\/label>\r\n                <div class=\"st5-segment\" id=\"st5-publish-mode\">\r\n                  <button class=\"active\" type=\"button\" data-publish-status=\"draft\">Draft<\/button>\r\n                  <button type=\"button\" data-publish-status=\"publish\">Publish<\/button>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n          <\/section>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"st5-view\" data-view-panel=\"websites\" hidden>\r\n        <section class=\"st5-card st5-websites\">\r\n          <div class=\"st5-card-head\">\r\n            <div>\r\n              <h2 class=\"st5-card-title\">Connected Websites<\/h2>\r\n              <p class=\"st5-card-subtitle\">Manage the destinations where content will be prepared.<\/p>\r\n            <\/div>\r\n            <button id=\"st5-add-website\" class=\"st5-button\" type=\"button\"><span class=\"material-symbols-outlined\">add_link<\/span> Add website<\/button>\r\n          <\/div>\r\n          <div class=\"st5-bulk\">\r\n            <button type=\"button\" class=\"st5-btn-ghost\" id=\"ws-selall\">Select all<\/button>\r\n            <button type=\"button\" class=\"st5-btn-danger\" id=\"ws-del\" disabled>Delete<\/button>\r\n            <span class=\"st5-rl-msg\" id=\"ws-flash\" role=\"status\"><\/span>\r\n          <\/div>\r\n          <div class=\"st5-table-wrap\">\r\n            <table class=\"st5-table\">\r\n              <thead><tr><th class=\"st5-ck\"><input type=\"checkbox\" id=\"ws-all\" aria-label=\"Select all\"><\/th><th>Website<\/th><th>Status<\/th><th style=\"text-align:right\">Actions<\/th><\/tr><\/thead>\r\n              <tbody id=\"st5-sites-tbody\"><\/tbody>\r\n            <\/table>\r\n          <\/div>\r\n        <\/section>\r\n      <\/section>\r\n\r\n      <section class=\"st5-view\" data-view-panel=\"rules\" hidden>\r\n        <div class=\"st5-rules-grid mode-list\" id=\"rl-grid\">\r\n          <section class=\"st5-card st5-rl-list\">\r\n            <div class=\"st5-rl-head\">\r\n              <div><h2 class=\"st5-card-title\">Post Rules<\/h2><span id=\"rl-count\" class=\"st5-rl-muted\">Loading\u2026<\/span><\/div>\r\n              <label class=\"st5-rl-filter\"><span>Website<\/span><select id=\"rl-site\"><\/select><\/label>\r\n            <\/div>\r\n            <div class=\"st5-bulk\">\r\n              <button type=\"button\" class=\"st5-btn-ghost\" id=\"rl-selall\">Select all<\/button>\r\n              <button type=\"button\" class=\"st5-btn-danger\" id=\"rl-del\" disabled>Delete<\/button>\r\n              <span class=\"st5-rl-msg\" id=\"rl-flash\" role=\"status\"><\/span>\r\n            <\/div>\r\n            <div class=\"st5-table-wrap\">\r\n              <table class=\"st5-table\">\r\n                <thead><tr><th class=\"st5-ck\"><input type=\"checkbox\" id=\"rl-all\" aria-label=\"Select all\"><\/th><th>Website<\/th><th>Template<\/th><th>Rule structure<\/th><th style=\"text-align:right\">Actions<\/th><\/tr><\/thead>\r\n                <tbody id=\"rl-tbody\"><\/tbody>\r\n              <\/table>\r\n            <\/div>\r\n          <\/section>\r\n          <form class=\"st5-card st5-rl-editor\" id=\"rl-form\">\r\n            <h3 id=\"rl-form-title\">New rule<\/h3>\r\n            <input type=\"hidden\" name=\"id\">\r\n            <div class=\"st5-rl-top\">\r\n              <label>Website<select name=\"site_key\"><\/select><\/label>\r\n              <label>Template name<input type=\"text\" name=\"template_name\" required maxlength=\"191\" placeholder=\"VD: B\u00e0i h\u01b0\u1edbng d\u1eabn\"><\/label>\r\n            <\/div>\r\n\r\n            <div id=\"rl-wiz\" class=\"st5-rl-cols\">\r\n              <div class=\"st5-rl-col\">\r\n                <label>Lo\u1ea1i b\u00e0i<input type=\"text\" id=\"rw-type\" list=\"rw-types\" placeholder=\"VD: H\u01b0\u1edbng d\u1eabn, Tin t\u1ee9c, So s\u00e1nh\u2026\" autocomplete=\"off\"><\/label>\r\n                <datalist id=\"rw-types\"><\/datalist>\r\n                <label>Website n\u00f3i v\u1ec1 g\u00ec<input type=\"text\" id=\"rw-about\" placeholder=\"VD: c\u00f4ng ngh\u1ec7, AI v\u00e0 chuy\u1ec3n \u0111\u1ed5i s\u1ed1\"><\/label>\r\n                <label>Ng\u01b0\u1eddi \u0111\u1ecdc l\u00e0 ai<input type=\"text\" id=\"rw-audience\" placeholder=\"VD: ch\u1ee7 doanh nghi\u1ec7p nh\u1ecf\"><\/label>\r\n                <label>Ng\u00f4n ng\u1eef<select id=\"rw-lang\"><option>ti\u1ebfng Vi\u1ec7t<\/option><option>ti\u1ebfng Anh<\/option><\/select><\/label>\r\n                <label>Gi\u1ecdng v\u0103n<input type=\"text\" id=\"rw-tone\" placeholder=\"VD: th\u00e2n thi\u1ec7n, d\u1ec5 hi\u1ec3u\"><\/label>\r\n                <label>\u0110\u1ed9 d\u00e0i<input type=\"text\" id=\"rw-length\" placeholder=\"VD: kho\u1ea3ng 1200\u20131800 t\u1eeb\"><\/label>\r\n                <label>L\u1eddi k\u00eau g\u1ecdi cu\u1ed1i b\u00e0i<input type=\"text\" id=\"rw-cta\" placeholder=\"VD: li\u00ean h\u1ec7 t\u01b0 v\u1ea5n mi\u1ec5n ph\u00ed\"><\/label>\r\n              <\/div>\r\n              <div class=\"st5-rl-col\">\r\n                <div class=\"st5-rl-group\">\r\n                  <div class=\"st5-rl-group-head\"><span>C\u00e1c ph\u1ea7n c\u1ee7a b\u00e0i<\/span><button type=\"button\" class=\"st5-btn-ghost\" id=\"rw-add-sec\">+ Th\u00eam ph\u1ea7n<\/button><\/div>\r\n                  <div class=\"st5-rl-rows\" id=\"rw-secs\"><\/div>\r\n                <\/div>\r\n                <div class=\"st5-rl-group\">\r\n                  <div class=\"st5-rl-group-head\"><span>Kh\u00f4ng \u0111\u01b0\u1ee3c l\u00e0m<\/span><button type=\"button\" class=\"st5-btn-ghost\" id=\"rw-add-ban\">+ Th\u00eam<\/button><\/div>\r\n                  <div class=\"st5-rl-rows\" id=\"rw-bans\"><\/div>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div id=\"rl-legacy\" hidden>\r\n              <label>Rule nh\u1eadp tay (t\u1ea1o tr\u01b0\u1edbc \u0111\u00e2y) \u2014 s\u1eeda tr\u1ef1c ti\u1ebfp<textarea name=\"template_structure\" rows=\"12\"><\/textarea><\/label>\r\n              <button type=\"button\" class=\"st5-link-btn primary\" id=\"rl-to-wiz\">Chuy\u1ec3n sang nh\u1eadp theo t\u1eebng \u00f4 (xo\u00e1 n\u1ed9i dung c\u0169)<\/button>\r\n            <\/div>\r\n\r\n            <details class=\"st5-rl-prev\"><summary>Xem n\u1ed9i dung s\u1ebd g\u1eedi cho AI<\/summary><pre id=\"rw-preview\"><\/pre><\/details>\r\n\r\n            <label class=\"st5-rl-check\"><input type=\"checkbox\" name=\"is_active\" checked> Active<\/label>\r\n            <div class=\"st5-rl-actions\">\r\n              <button type=\"submit\" class=\"st5-button\">Save<\/button>\r\n              <button type=\"button\" class=\"st5-link-btn\" id=\"rl-reset\">Cancel<\/button>\r\n            <\/div>\r\n            <div class=\"st5-rl-msg\" id=\"rl-msg\" role=\"status\"><\/div>\r\n          <\/form>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"st5-view\" data-view-panel=\"history\" hidden>\r\n        <section class=\"st5-card st5-info\">\r\n          <h3><span class=\"material-symbols-outlined\">history<\/span> L\u1ecbch s\u1eed request<\/h3>\r\n          <p>Ch\u01b0a c\u00f3 API l\u1ecbch s\u1eed. Khi backend c\u00f3 endpoint danh s\u00e1ch request, render b\u1ea3ng v\u00e0o \u0111\u00e2y.<\/p>\r\n        <\/section>\r\n      <\/section>\r\n\r\n      <section class=\"st5-view\" data-view-panel=\"settings\" hidden>\r\n        <div class=\"st5-grid-2\">\r\n          <section class=\"st5-card st5-info\"><h3><span class=\"material-symbols-outlined\">person<\/span> T\u00e0i kho\u1ea3n<\/h3><p>Phi\u00ean \u0111\u0103ng nh\u1eadp d\u00f9ng chung v\u1edbi 5id.vn.<\/p><a class=\"st5-link-out\" href=\"\/5id-auth\/\">Qu\u1ea3n l\u00fd \u0111\u0103ng nh\u1eadp \u2192<\/a><\/section>\r\n          <section class=\"st5-card st5-info\"><h3><span class=\"material-symbols-outlined\">tune<\/span> M\u1eb7c \u0111\u1ecbnh<\/h3><p>Ch\u1ed7 \u0111\u1ec3 th\u00eam: ch\u1ebf \u0111\u1ed9 \u0111\u0103ng m\u1eb7c \u0111\u1ecbnh, website m\u1eb7c \u0111\u1ecbnh, ng\u00f4n ng\u1eef.<\/p><\/section>\r\n        <\/div>\r\n      <\/section>\r\n    <\/main>\r\n  <\/div>\r\n\r\n  <div id=\"st5-connect-modal\" class=\"st5-modal\" hidden aria-hidden=\"true\">\r\n    <div class=\"st5-modal-backdrop\" data-action=\"close-connect\"><\/div>\r\n    <div class=\"st5-modal-dialog\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"st5-connect-title\">\r\n      <div class=\"st5-modal-head\">\r\n        <div><h3 id=\"st5-connect-title\">Connect WordPress site<\/h3><p>Approve AutoPost AI on your WordPress site. Your password is never entered here.<\/p><\/div>\r\n        <button class=\"st5-icon-btn\" type=\"button\" data-action=\"close-connect\" aria-label=\"Close\">&times;<\/button>\r\n      <\/div>\r\n      <form id=\"st5-connect-form\">\r\n        <label class=\"st5-modal-field\"><span>\u0110\u1ecba ch\u1ec9 website ho\u1eb7c trang \u0111\u0103ng nh\u1eadp<\/span><input type=\"url\" name=\"site_url\" placeholder=\"https:\/\/customer-site.com ho\u1eb7c https:\/\/customer-site.com\/trang-dang-nhap\/\" autocomplete=\"off\" required><\/label>\r\n        <small class=\"st5-modal-hint\">Site b\u00ecnh th\u01b0\u1eddng: d\u00e1n domain. Site \u0111\u00e3 \u1ea9n trang \u0111\u0103ng nh\u1eadp (b\u00e1o 404 \u1edf wp-admin): d\u00e1n lu\u00f4n \u0111\u1ecba ch\u1ec9 trang \u0111\u0103ng nh\u1eadp, h\u1ec7 th\u1ed1ng t\u1ef1 l\u1ea5y domain t\u1eeb \u0111\u00f3.<\/small>\r\n        <div id=\"st5-connect-message\" class=\"st5-modal-message\" role=\"status\" aria-live=\"polite\"><\/div>\r\n        <div class=\"st5-modal-actions\">\r\n          <button class=\"st5-link-btn\" type=\"button\" data-action=\"close-connect\">Cancel<\/button>\r\n          <button class=\"st5-button\" type=\"submit\">Connect<\/button>\r\n        <\/div>\r\n      <\/form>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n\/* CORE: session, websites, connect popup, chat, attachments *\/\r\n(function(){\r\n  var STATUS_URL=\"https:\/\/support.xbookvn.com\/webhook\/b413a6a6-a7b8-4354-99fa-5a3ff7bf0500\";\r\n  var API=location.origin+\"\/wp-json\/fiveid-rules\/v1\/dashboard\";\r\n  var NONCE_URL=location.origin+\"\/wp-admin\/admin-ajax.php?action=fiveid_prm_session_nonce\";\r\n  var META={\"5id\":{bot:\"Staff-AI\"},xbookvn:{bot:\"AI-Staff-Xbook-Blog\"},tutbrand:{bot:\"AI-Staff-tut-Blog\"},jai:{bot:\"AI-Staff-JAI-Blog\"},artgraphicstock:{bot:\"AI-Staff-artgraphicstock-Blog\"}};\r\n  var sites=[],connections=[],nonce=\"\",isLoggedIn=false,tplId=null,selKey=\"\",atts=[],seq=0,MAXN=4,MAXB=1800000;\r\n  var $=function(i){return document.getElementById(i)};\r\n  function esc(v){return String(v==null?\"\":v).replace(\/[&<>\"']\/g,function(c){return{\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#039;\"}[c]})}\r\n  function icon(n){return'<span class=\"material-symbols-outlined\">'+n+\"<\/span>\"}\r\n  function json(r){return r.json().catch(function(){return{}})}\r\n  function hdr(x){var h={\"Accept\":\"application\/json\",\"Cache-Control\":\"no-cache\"};if(nonce)h[\"X-WP-Nonce\"]=nonce;for(var k in (x||{}))h[k]=x[k];return h}\r\n  function get(p){return fetch(API+p,{credentials:\"same-origin\",cache:\"no-store\",headers:hdr()}).then(json)}\r\n  function wsFlash(t,err){var e=$(\"ws-flash\");if(!e)return;e.textContent=t||\"\";e.classList.toggle(\"error\",!!err)}\r\n  function refreshNonce(){\r\n    return fetch(NONCE_URL,{credentials:\"same-origin\",cache:\"no-store\",headers:{Accept:\"application\/json\"}}).then(function(r){\r\n      return json(r).then(function(d){\r\n        if(!d.logged_in||!d.nonce){\r\n          var e=new Error(r.ok?\"Ch\u01b0a \u0111\u0103ng nh\u1eadp 5id.vn tr\u00ean \u0111\u1ecba ch\u1ec9 \"+location.host+\".\":\"Kh\u00f4ng g\u1ecdi \u0111\u01b0\u1ee3c phi\u00ean \u0111\u0103ng nh\u1eadp (HTTP \"+r.status+\"). H\u00e3y ch\u1eafc ch\u1eafn trang \u0111ang m\u1edf tr\u00ean \u0111\u00fang domain 5id.vn.\");\r\n          e.status=r.status;throw e;\r\n        }\r\n        nonce=d.nonce;isLoggedIn=true;return d.nonce;\r\n      });\r\n    });\r\n  }\r\n  function keyOf(c){\r\n    var v=String(c.domain||c.site_url||\"\").toLowerCase().replace(\/^https?:\\\/\\\/\/,\"\").replace(\/^www\\.\/,\"\").split(\"\/\")[0].split(\":\")[0];\r\n    return v.split(\".\")[0].replace(\/[^a-z0-9_-]+\/g,\"\")||\"site\";\r\n  }\r\n  function conn(id){return connections.find(function(c){return String(c.id)===String(id)})||null}\r\n  function curSite(){return sites.find(function(s){return s.key===selKey})||sites[0]||{key:\"\",connectionId:\"\",siteUrl:\"\",domain:\"\",bot:\"Staff-AI\",templates:[]}}\r\n\r\n  \/* ---------- load ---------- *\/\r\n  function load(){\r\n    return refreshNonce().then(function(){return get(\"\/session\")}).then(function(s){\r\n      if(!s.logged_in||!s.nonce){gate(\"Server kh\u00f4ng tr\u1ea3 v\u1ec1 phi\u00ean l\u00e0m vi\u1ec7c (\/session).\");return null}\r\n      nonce=s.nonce;\r\n      return Promise.all([get(\"\/content-sites\"),get(\"\/site-connections\")]);\r\n    }).then(function(r){\r\n      if(!r)return;\r\n      var rd=r[0]||{},tpl={};\r\n      connections=Array.isArray((r[1]||{}).connections)?r[1].connections:[];\r\n      (rd.sites||[]).forEach(function(s){tpl[s.site_key]=s.templates||[]});\r\n      sites=connections.filter(function(c){return c.status===\"connected\"}).map(function(c){\r\n        var k=keyOf(c),m=META[k]||{};\r\n        return{key:k,connectionId:c.id,siteUrl:c.site_url,domain:c.domain||c.site_url,bot:m.bot||\"Staff-AI\",templates:tpl[k]||[]};\r\n      });\r\n      var g=$(\"st5-login-gate\");if(g)g.remove();\r\n      renderTable();renderSelect();enableForm();notice();\r\n    }).catch(function(e){console.error(\"Dashboard load failed\",e);gate(e&&e.message)});\r\n  }\r\n  function gate(reason){\r\n    isLoggedIn=false;\r\n    var m=$(\"st5-message\"),s=$(\"st5-send\");\r\n    if(m){m.disabled=true;m.placeholder=\"Please log in to use the content tool.\"}\r\n    if(s)s.disabled=true;\r\n    [\"st5-target-site\",\"st5-target-template\"].forEach(function(id){var e=$(id);if(e)e.innerHTML=\"<option>Please log in<\/option>\"});\r\n    if($(\"st5-login-gate\"))return;\r\n    var g=document.createElement(\"div\");g.id=\"st5-login-gate\";\r\n    g.style.cssText=\"padding:12px;background:#fff3cd;border:1px solid #ffc107;border-radius:6px\";\r\n    g.innerHTML='<a href=\"'+esc(location.origin+\"\/5id-auth\/?redirect_to=\"+encodeURIComponent(location.href))+'\" style=\"font-weight:600\">Log in to continue<\/a>'+(reason?'<div style=\"margin-top:6px;font-size:13px;color:#664d03\">'+esc(reason)+\"<\/div>\":\"\");\r\n    var c=document.querySelector(\".st5-content\")||document.body;c.insertBefore(g,c.firstChild);\r\n  }\r\n  function enableForm(){\r\n    var ok=isLoggedIn&&sites.length>0,m=$(\"st5-message\"),s=$(\"st5-send\");\r\n    if(m){m.disabled=!ok;m.placeholder=ok?\"Send a request or content link to \"+curSite().bot+\"...\":\"Connect a website to continue.\"}\r\n    if(s)s.disabled=!ok;\r\n  }\r\n\r\n  \/* ---------- websites table + selects ---------- *\/\r\n  var STATUS={connected:\"Connected\",pending:\"Pending approval\",failed:\"Connection failed\",revoked:\"Disconnected\"};\r\n  function renderTable(){\r\n    var tb=$(\"st5-sites-tbody\");if(!tb)return;\r\n    if(!connections.length){tb.innerHTML='<tr><td colspan=\"3\" class=\"st5-empty-cell\">No connected websites yet.<\/td><\/tr>';return}\r\n    tb.innerHTML=connections.map(function(c){\r\n      var st=String(c.status||\"failed\"),id=esc(c.id),a;\r\n      if(st===\"connected\")a='<button class=\"st5-link-btn\" type=\"button\" data-connection-action=\"test\" data-connection-id=\"'+id+'\">Test connection<\/button><button class=\"st5-link-btn\" type=\"button\" data-connection-action=\"disconnect\" data-connection-id=\"'+id+'\">Disconnect<\/button>';\r\n      else a='<button class=\"st5-link-btn primary\" type=\"button\" data-connection-action=\"reconnect\" data-connection-id=\"'+id+'\">Reconnect<\/button>';\r\n      return'<tr><td><a class=\"st5-site-name\" href=\"'+esc(c.site_url)+'\" target=\"_blank\" rel=\"noopener\">'+icon(\"language\")+\" \"+esc(c.domain||c.site_url)+'<\/a><\/td><td><span class=\"st5-pill st5-status-'+esc(st)+'\">'+esc(STATUS[st]||\"Unknown\")+'<\/span><\/td><td><div class=\"st5-actions\">'+a+\"<\/div><\/td><\/tr>\";\r\n    }).join(\"\");\r\n    tb.querySelectorAll(\"[data-connection-action]\").forEach(function(b){\r\n      b.addEventListener(\"click\",function(){act(b.getAttribute(\"data-connection-action\"),b.getAttribute(\"data-connection-id\"))});\r\n    });\r\n  }\r\n  function renderSelect(){\r\n    var sel=$(\"st5-target-site\");if(!sel)return;\r\n    sel.innerHTML=\"\";\r\n    if(!sites.length){sel.innerHTML='<option value=\"\">No connected websites<\/option>';selKey=\"\";renderTpl(\"\");return}\r\n    sites.forEach(function(s){var o=document.createElement(\"option\");o.value=s.key;o.textContent=s.domain;sel.appendChild(o)});\r\n    selectSite(sites.some(function(s){return s.key===selKey})?selKey:sites[0].key);\r\n  }\r\n  function renderTpl(k){\r\n    var t=$(\"st5-target-template\");if(!t)return;\r\n    t.innerHTML=\"\";\r\n    var s=sites.find(function(x){return x.key===k}),list=s?s.templates:[];\r\n    if(!list.length){var o=document.createElement(\"option\");o.value=\"\";o.textContent=\"Kh\u00f4ng c\u00f3 template active\";t.appendChild(o);tplId=null;return}\r\n    list.forEach(function(x){var o=document.createElement(\"option\");o.value=x.id;o.textContent=x.template_name;t.appendChild(o)});\r\n    tplId=parseInt(list[0].id,10);t.value=String(list[0].id);\r\n  }\r\n  function selectSite(k){\r\n    var s=sites.find(function(x){return x.key===k})||sites[0];\r\n    if(!s){selKey=\"\";renderTpl(\"\");return}\r\n    selKey=s.key;\r\n    var t=$(\"st5-workspace-title\"),st=$(\"st5-workspace-status\"),i=$(\"st5-message\"),sel=$(\"st5-target-site\");\r\n    if(t)t.textContent=\"Workspace: \"+s.bot;\r\n    if(st)st.innerHTML='<span class=\"st5-green-dot\"><\/span> Ready to process content for '+esc(s.domain);\r\n    if(i)i.placeholder=\"Send a request or content link to \"+s.bot+\"...\";\r\n    if(sel&&sel.value!==selKey)sel.value=selKey;\r\n    renderTpl(selKey);\r\n  }\r\n  $(\"st5-target-site\").addEventListener(\"change\",function(){selectSite(this.value)});\r\n  $(\"st5-target-template\").addEventListener(\"change\",function(){tplId=parseInt(this.value,10)||null});\r\n\r\n  \/* ---------- connect popup ---------- *\/\r\n  function setConnMsg(t,err){var e=$(\"st5-connect-message\");if(!e)return;e.textContent=t||\"\";e.classList.toggle(\"error\",!!err)}\r\n  function openModal(){\r\n    var m=$(\"st5-connect-modal\"),f=$(\"st5-connect-form\");if(!m||!f)return;\r\n    if(m.parentNode!==document.body)document.body.appendChild(m);\r\n    document.body.classList.add(\"st5-modal-open\");\r\n    f.elements.site_url.value=\"\";setConnMsg(\"\",false);\r\n    m.hidden=false;m.setAttribute(\"aria-hidden\",\"false\");\r\n    setTimeout(function(){f.elements.site_url.focus()},0);\r\n  }\r\n  function closeModal(){\r\n    var m=$(\"st5-connect-modal\");if(!m)return;\r\n    m.hidden=true;m.setAttribute(\"aria-hidden\",\"true\");document.body.classList.remove(\"st5-modal-open\");\r\n  }\r\n  function postConn(url,body){\r\n    return fetch(url,{method:\"POST\",credentials:\"same-origin\",cache:\"no-store\",headers:hdr({\"Content-Type\":\"application\/json\"}),body:body?JSON.stringify(body):undefined}).then(function(r){\r\n      return json(r).then(function(d){if(!r.ok){var e=new Error(d.message||\"The action could not be completed.\");e.code=d.code||\"\";e.status=r.status;throw e}return d});\r\n    });\r\n  }\r\n  function cleanupPending(id){\r\n    if(!id||!nonce)return Promise.resolve();\r\n    return postConn(API+\"\/site-connections\/\"+encodeURIComponent(id)+\"\/disconnect\").catch(function(e){console.error(e)});\r\n  }\r\n  function popupFallback(url){\r\n    var el=$(\"st5-connect-message\");if(!el)return;\r\n    el.textContent=\"\";el.classList.add(\"error\");\r\n    el.appendChild(document.createTextNode(\"Popup blocked. \"));\r\n    var a=document.createElement(\"a\");a.href=url;a.target=\"_self\";a.rel=\"noopener\";a.textContent=\"Open authorization in this tab\";el.appendChild(a);\r\n  }\r\n  function openPopup(onResult){\r\n    var w=600,h=700,left=Math.max(0,Math.round(window.screenX+(window.outerWidth-w)\/2)),top=Math.max(0,Math.round(window.screenY+(window.outerHeight-h)\/2));\r\n    var popup=window.open(\"about:blank\",\"wp-connect-popup\",\"popup=yes,width=\"+w+\",height=\"+h+\",left=\"+left+\",top=\"+top);\r\n    if(!popup)return null;\r\n    var connId=\"\",done=false,early=false,timer,tout;\r\n    function stop(){clearInterval(timer);clearTimeout(tout);window.removeEventListener(\"message\",onMsg)}\r\n    function finish(status,message,cleanup){\r\n      if(done)return;done=true;stop();try{popup.close()}catch(e){}\r\n      (cleanup&&connId?cleanupPending(connId):Promise.resolve()).then(function(){onResult({status:status,message:message||\"\",connection_id:connId})});\r\n    }\r\n    function onMsg(ev){\r\n      if(ev.origin!==location.origin||ev.source!==popup)return;\r\n      var d=ev.data||{};if(d.type!==\"wp-connect-result\")return;\r\n      connId=String(d.connection_id||connId||\"\");\r\n      finish(d.status===\"connected\"?\"connected\":\"failed\",d.message,false);\r\n    }\r\n    function cancel(m){if(done)return;early=!connId;finish(\"failed\",m||\"Connection was cancelled.\",true)}\r\n    timer=setInterval(function(){if(popup.closed)cancel(\"Connection was cancelled before authorization was completed.\")},500);\r\n    tout=setTimeout(function(){cancel(\"Authorization timed out. Please try again.\")},300000);\r\n    window.addEventListener(\"message\",onMsg);\r\n    return{\r\n      navigate:function(u){try{popup.location.href=u;popup.focus()}catch(e){cancel(\"The authorization window could not be opened.\")}},\r\n      setId:function(id){connId=String(id||\"\");if(early&&connId)cleanupPending(connId)},\r\n      cancel:cancel\r\n    };\r\n  }\r\n  function parseTarget(v){\r\n    var u;try{u=new URL(v)}catch(e){return null}\r\n    if(!\/^https?:$\/.test(u.protocol))return null;\r\n    var path=u.pathname.replace(\/\\\/+$\/,\"\");\r\n    var login=(path&&!\/\\\/wp-admin(\\\/|$)\/.test(path))?u.origin+u.pathname:\"\";\r\n    return{site:u.origin,login:login};\r\n  }\r\n  function hostOf(u){try{return new URL(u).hostname.toLowerCase().replace(\/^www\\.\/,\"\")}catch(e){return\"\"}}\r\n  function startConnect(siteUrl,loginUrl){\r\n    if(loginUrl&&hostOf(loginUrl)!==hostOf(siteUrl)){setConnMsg(\"Login URL ph\u1ea3i c\u00f9ng domain v\u1edbi website c\u1ea7n k\u1ebft n\u1ed1i.\",true);return Promise.resolve()}\r\n    var f=$(\"st5-connect-form\"),sb=f?f.querySelector(\"button[type=submit]\"):null;\r\n    if(sb){sb.disabled=true;sb.setAttribute(\"aria-busy\",\"true\")}\r\n    var ps=openPopup(function(r){\r\n      if(r.status===\"connected\"){closeModal();load()}\r\n      else setConnMsg(r.message||\"Connection was not completed.\",true);\r\n    });\r\n    setConnMsg(ps?\"Opening the authorization window...\":\"Popup blocked. Preparing a fallback link...\",!ps);\r\n    var retried=false;\r\n    function submit(){return postConn(API+\"\/site-connections\",{site_url:siteUrl})}\r\n    function submitRetry(){\r\n      return submit().catch(function(e){\r\n        if(!retried&&(e.code===\"rest_cookie_invalid_nonce\"||e.code===\"rest_not_logged_in\"||e.status===401||e.status===403)){retried=true;return refreshNonce().then(submit)}\r\n        throw e;\r\n      });\r\n    }\r\n    return refreshNonce().then(submitRetry).then(function(d){\r\n      if(!d.authorize_url)throw new Error(\"The authorization URL was not returned.\");\r\n      var target=loginUrl?loginUrl+(loginUrl.indexOf(\"?\")>-1?\"&\":\"?\")+\"redirect_to=\"+encodeURIComponent(d.authorize_url):d.authorize_url;\r\n      if(!ps)popupFallback(target);\r\n      else{ps.setId(d.connection&&d.connection.id);ps.navigate(target);setConnMsg(\"Authorization is open in the popup. Complete it there to return to the dashboard.\",false)}\r\n    }).catch(function(e){\r\n      if(ps)ps.cancel(e.message||\"Connection failed.\");\r\n      setConnMsg(e.message||\"Connection failed.\",true);\r\n    }).then(function(){if(sb){sb.disabled=false;sb.removeAttribute(\"aria-busy\")}});\r\n  }\r\n  function act(action,id){\r\n    var c=conn(id);if(!c)return;\r\n    if(action===\"disconnect\"&&!window.confirm(\"Disconnect \"+c.domain+\"?\"))return;\r\n    wsFlash(action===\"test\"?\"Testing\u2026\":\"Working\u2026\");\r\n    postConn(API+\"\/site-connections\/\"+encodeURIComponent(id)+\"\/\"+action).then(function(d){\r\n      if(action===\"reconnect\"&&d.authorize_url){location.href=d.authorize_url;return}\r\n      wsFlash(d.message||\"Connection updated.\");return load();\r\n    }).catch(function(e){wsFlash(e.message||\"The action could not be completed.\",true)});\r\n  }\r\n  function notice(){\r\n    var p=new URLSearchParams(location.search),m;\r\n    if(p.get(\"connected\")===\"true\")m=\"Website connected successfully. It is now available as a publishing target.\";\r\n    else if(p.get(\"connection_error\")){\r\n      m=({rejected:\"The WordPress authorization was cancelled.\",expired:\"The authorization expired. Please connect the site again.\",expired_or_used:\"This authorization link has expired or was already used.\",verification_failed:\"WordPress did not accept the Application Password. Please connect again.\",site_mismatch:\"The authorization response did not match the requested website.\",missing_credentials:\"WordPress did not return complete authorization data.\",encryption_failed:\"The connection could not be stored securely. Please contact support.\",invalid_state:\"The authorization link is invalid. Please start again.\"})[p.get(\"connection_error\")]||\"The website connection failed.\";\r\n    }else return;\r\n    wsFlash(m,!!p.get(\"connection_error\"));\r\n    if(window.st5Nav)window.st5Nav.show(\"websites\");\r\n    try{history.replaceState({},document.title,location.pathname+\"#websites\")}catch(e){}\r\n  }\r\n  var addBtn=$(\"st5-add-website\");if(addBtn)addBtn.addEventListener(\"click\",openModal);\r\n  document.querySelectorAll('[data-action=\"close-connect\"]').forEach(function(b){b.addEventListener(\"click\",closeModal)});\r\n  var cf=$(\"st5-connect-form\");\r\n  if(cf)cf.addEventListener(\"submit\",function(ev){ev.preventDefault();var t=parseTarget(cf.elements.site_url.value.trim());if(!t){setConnMsg(\"\u0110\u1ecba ch\u1ec9 kh\u00f4ng h\u1ee3p l\u1ec7. H\u00e3y d\u00e1n \u0111\u01b0\u1eddng d\u1eabn \u0111\u1ea7y \u0111\u1ee7, b\u1eaft \u0111\u1ea7u b\u1eb1ng https:\/\/\",true);return}startConnect(t.site,t.login)});\r\n\r\n  \/* ---------- chat ---------- *\/\r\n  function appendMsg(kind,text,list){\r\n    var body=$(\"st5-chat-body\");if(!body)return;\r\n    var w=document.createElement(\"div\");w.className=kind===\"user\"?\"st5-user-message\":\"st5-bot-message\";\r\n    if(kind!==\"user\"){var av=document.createElement(\"div\");av.className=\"st5-small-avatar\";av.innerHTML=icon(\"smart_toy\");w.appendChild(av)}\r\n    var b=document.createElement(\"div\");b.className=kind===\"user\"?\"st5-user-bubble\":\"st5-bot-bubble\";\r\n    if(text){var p=document.createElement(\"p\");p.textContent=text;b.appendChild(p)}\r\n    if(list&&list.length){\r\n      var g=document.createElement(\"div\");g.className=\"st5-message-attachments\";\r\n      list.forEach(function(a){var im=document.createElement(\"img\");im.src=a.data_url;im.alt=a.name||\"Attached image\";g.appendChild(im)});\r\n      b.appendChild(g);\r\n    }\r\n    w.appendChild(b);body.appendChild(w);w.scrollIntoView({behavior:\"smooth\",block:\"nearest\"});\r\n  }\r\n  function doneCard(site,rec){\r\n    var body=$(\"st5-chat-body\");if(!body)return;\r\n    var w=document.createElement(\"div\");w.className=\"st5-bot-message\";\r\n    var av=document.createElement(\"div\");av.className=\"st5-small-avatar\";av.innerHTML=icon(\"smart_toy\");w.appendChild(av);\r\n    var link=String(rec.postLink||rec.post_link||rec.link||\"\"),title=rec.title||\"Draft is ready\";\r\n    if(!\/^https?:\\\/\\\/\/i.test(link))link=\"\";\r\n    var b=document.createElement(\"div\");b.className=\"st5-bot-bubble\";\r\n    b.innerHTML=\"<p>Draft completed for \"+esc(site.domain)+'.<\/p><div class=\"st5-draft-card\"><div class=\"st5-draft-status\">'+icon(\"done_all\")+' Done: Draft ready<\/div><p><strong>'+esc(title)+\"<\/strong><\/p>\"+(link?'<div class=\"st5-draft-actions\"><a href=\"'+esc(link)+'\" target=\"_blank\" rel=\"noopener\">Open draft<\/a><\/div>':\"\")+\"<\/div>\";\r\n    w.appendChild(b);body.appendChild(w);w.scrollIntoView({behavior:\"smooth\",block:\"nearest\"});\r\n  }\r\n  function sessionId(){\r\n    try{var k=\"st5_web_dashboard_session\",e=sessionStorage.getItem(k);if(e)return e;var c=\"st5_\"+Date.now()+\"_\"+Math.random().toString(16).slice(2);sessionStorage.setItem(k,c);return c}\r\n    catch(e){return\"st5_\"+Date.now()}\r\n  }\r\n  function pubStatus(){var a=document.querySelector(\"#st5-publish-mode button.active\");return a?a.getAttribute(\"data-publish-status\")||\"draft\":\"draft\"}\r\n  function note(t,err){var n=$(\"st5-attach-note\");if(!n)return;n.textContent=t||\"\";n.classList.toggle(\"error\",!!err)}\r\n  function bytesOf(u){var b=String(u||\"\").split(\",\")[1]||\"\";return Math.round(b.length*3\/4)}\r\n  function label(n){n=String(n||\"image\").trim();return n.length>24?n.slice(0,10)+\"...\"+n.slice(-10):n}\r\n  function tray(){\r\n    var t=$(\"st5-attachment-tray\");if(!t)return;\r\n    t.innerHTML=\"\";t.hidden=!atts.length;\r\n    atts.forEach(function(a){\r\n      var chip=document.createElement(\"div\");chip.className=\"st5-attachment-chip\";\r\n      var im=document.createElement(\"img\");im.src=a.data_url;im.alt=a.name||\"Attached image\";\r\n      var sp=document.createElement(\"span\");sp.textContent=label(a.name);sp.title=a.name||\"\";\r\n      var rm=document.createElement(\"button\");rm.type=\"button\";rm.setAttribute(\"aria-label\",\"Remove image\");rm.innerHTML=icon(\"close\");\r\n      rm.addEventListener(\"click\",function(){atts=atts.filter(function(x){return x.id!==a.id});tray();note(atts.length?atts.length+\"\/\"+MAXN+\" images selected.\":\"\")});\r\n      chip.appendChild(im);chip.appendChild(sp);chip.appendChild(rm);t.appendChild(chip);\r\n    });\r\n  }\r\n  function readFile(f){return new Promise(function(res,rej){var r=new FileReader();r.onload=function(){res(String(r.result||\"\"))};r.onerror=rej;r.readAsDataURL(f)})}\r\n  function loadImg(u){return new Promise(function(res,rej){var i=new Image();i.onload=function(){res(i)};i.onerror=rej;i.src=u})}\r\n  function compress(f,u){\r\n    return loadImg(u).then(function(im){\r\n      var w=im.naturalWidth||im.width||1,h=im.naturalHeight||im.height||1,sc=Math.min(1,1600\/Math.max(w,h));\r\n      var tw=Math.max(1,Math.round(w*sc)),th=Math.max(1,Math.round(h*sc));\r\n      var cv=document.createElement(\"canvas\");cv.width=tw;cv.height=th;\r\n      var cx=cv.getContext(\"2d\");cx.fillStyle=\"#fff\";cx.fillRect(0,0,tw,th);cx.drawImage(im,0,0,tw,th);\r\n      var out=u,mime=\/^image\\\/(png|webp|jpeg|jpg)$\/i.test(f.type)?f.type.toLowerCase().replace(\"image\/jpg\",\"image\/jpeg\"):\"image\/jpeg\";\r\n      if(bytesOf(out)>MAXB||sc<1||mime===\"image\/png\"){[0.84,0.74,0.64].some(function(q){out=cv.toDataURL(\"image\/jpeg\",q);mime=\"image\/jpeg\";return bytesOf(out)<=MAXB})}\r\n      return{id:\"att_\"+(++seq)+\"_\"+Date.now(),type:\"image\",name:f.name||(\"image-\"+seq+\".jpg\"),mime_type:mime,size:bytesOf(out),width:tw,height:th,data_url:out,base64:String(out).split(\",\")[1]||\"\"};\r\n    });\r\n  }\r\n  function addFiles(files){\r\n    var list=Array.prototype.slice.call(files||[]).filter(function(f){return f&&\/^image\\\/\/i.test(f.type||\"\")});\r\n    if(!list.length)return;\r\n    var room=Math.max(0,MAXN-atts.length);\r\n    if(!room){note(\"You can attach up to \"+MAXN+\" images per request.\",true);return}\r\n    note(\"Preparing images...\");\r\n    Promise.all(list.slice(0,room).map(function(f){return readFile(f).then(function(u){return compress(f,u)})})).then(function(a){\r\n      atts=atts.concat(a);tray();note(atts.length+\"\/\"+MAXN+\" images selected.\");\r\n    }).catch(function(){note(\"Could not read this image. Try another JPG, PNG or WebP file.\",true)});\r\n  }\r\n  function submitContent(data){\r\n    if(!data.connection_id)return Promise.reject(new Error(\"Choose a connected website first.\"));\r\n    if(!data.template_id)return Promise.reject(new Error(\"Choose a template for this website first.\"));\r\n    function go(){return postConn(API+\"\/submit-content\",data)}\r\n    return go().catch(function(e){if(e.status===401||e.status===403)return refreshNonce().then(go);throw e});\r\n  }\r\n  function readStatus(id){\r\n    return fetch(STATUS_URL,{method:\"POST\",headers:{\"Content-Type\":\"text\/plain;charset=UTF-8\"},body:JSON.stringify({request_id:id,source:\"5id_web_dashboard\"})}).then(function(r){if(!r.ok)throw new Error(\"HTTP \"+r.status);return r.json()});\r\n  }\r\n  function poll(id,site,n){\r\n    n=n||0;if(!id)return;\r\n    if(n>120){appendMsg(\"bot\",\"The request is taking longer than expected. Please check the request history or try again.\");return}\r\n    setTimeout(function(){\r\n      readStatus(id).then(function(s){\r\n        if(s&&s.status===\"done\"){doneCard(site,s);return}\r\n        if(s&&(s.status===\"error\"||s.status===\"failed\")){appendMsg(\"bot\",\"Request failed: \"+(s.error||s.message||\"The automation service could not complete this request.\"));return}\r\n        poll(id,site,n+1);\r\n      }).catch(function(){\r\n        if(n>=120){appendMsg(\"bot\",\"The request status could not be checked. Please try again.\");return}\r\n        poll(id,site,n+1);\r\n      });\r\n    },n<3?3000:5000);\r\n  }\r\n  var mode=$(\"st5-publish-mode\");\r\n  if(mode)mode.querySelectorAll(\"button\").forEach(function(b){b.addEventListener(\"click\",function(){mode.querySelectorAll(\"button\").forEach(function(i){i.classList.remove(\"active\")});b.classList.add(\"active\")})});\r\n  var send=$(\"st5-send\"),input=$(\"st5-message\"),attach=$(\"st5-attach\"),fin=$(\"st5-file-input\");\r\n  if(send&&input){\r\n    var resize=function(){input.style.height=\"auto\";input.style.height=Math.min(input.scrollHeight,180)+\"px\";input.style.overflowY=input.scrollHeight>180?\"auto\":\"hidden\"};\r\n    var submit=function(){\r\n      var text=input.value.trim(),list=atts.slice();\r\n      if(!text&&!list.length)return;\r\n      var site=curSite(),now=Date.now();\r\n      appendMsg(\"user\",text||\"Sent image attachment.\",list);\r\n      input.value=\"\";resize();atts=[];tray();note(\"\");\r\n      send.disabled=true;send.setAttribute(\"aria-busy\",\"true\");if(attach)attach.disabled=true;\r\n      var data={source:\"5id_web_dashboard\",source_channel:\"web_dashboard\",request_id:\"web_\"+now+\"_\"+Math.random().toString(16).slice(2),session_id:sessionId(),connection_id:site.connectionId,site_url:site.siteUrl,site_key:site.key,template_id:tplId,message:text,attachments:list,image_count:list.length,publish_status:pubStatus(),page_url:location.href,created_at:new Date(now).toISOString()};\r\n      submitContent(data).then(function(){\r\n        appendMsg(\"bot\",\"Request received for \"+site.domain+\". \"+site.bot+\" will prepare \"+(pubStatus()===\"publish\"?\"a published article\":\"a draft\")+\" for team review.\");\r\n        poll(data.request_id,site,0);\r\n      }).catch(function(e){\r\n        appendMsg(\"bot\",(e&&e.message)||\"The request could not be sent. Please try again or contact 5ID.\");\r\n      }).then(function(){send.disabled=false;send.removeAttribute(\"aria-busy\");if(attach)attach.disabled=false});\r\n    };\r\n    send.addEventListener(\"click\",submit);\r\n    input.addEventListener(\"input\",resize);\r\n    input.addEventListener(\"keydown\",function(ev){if(ev.key===\"Enter\"&&!ev.shiftKey){ev.preventDefault();submit()}});\r\n    input.addEventListener(\"paste\",function(ev){\r\n      var items=ev.clipboardData&&ev.clipboardData.items?Array.prototype.slice.call(ev.clipboardData.items):[];\r\n      var files=items.map(function(i){return i.kind===\"file\"?i.getAsFile():null}).filter(Boolean);\r\n      if(files.length)addFiles(files);\r\n    });\r\n    resize();\r\n  }\r\n  if(attach&&fin){attach.addEventListener(\"click\",function(){fin.click()});fin.addEventListener(\"change\",function(){addFiles(fin.files);fin.value=\"\"})}\r\n\r\n  window.st5Core={reload:load};\r\n  renderSelect();\r\n  load();\r\n})();\r\n<\/script>\r\n\r\n<script>\r\n(function(){\r\n  var titles={chat:[\"Staff-AI Chat\",\"G\u1eedi y\u00eau c\u1ea7u ho\u1eb7c link n\u1ed9i dung \u0111\u1ec3 AI chu\u1ea9n b\u1ecb b\u00e0i vi\u1ebft.\"],websites:[\"Website\",\"K\u1ebft n\u1ed1i v\u00e0 qu\u1ea3n l\u00fd c\u00e1c website \u0111\u00edch.\"],rules:[\"Rule \/ Template\",\"C\u1ea5u h\u00ecnh rule v\u00e0 template \u0111\u0103ng b\u00e0i cho t\u1eebng website.\"],history:[\"L\u1ecbch s\u1eed request\",\"Theo d\u00f5i c\u00e1c request \u0111\u00e3 g\u1eedi.\"],settings:[\"C\u00e0i \u0111\u1eb7t\",\"Tu\u1ef3 ch\u1ec9nh t\u00e0i kho\u1ea3n v\u00e0 gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh.\"]};\r\n  function setSub(v,sub){document.querySelectorAll('.st5-nav-sub[data-view=\"'+v+'\"]').forEach(function(b){b.classList.toggle(\"active\",b.getAttribute(\"data-sub\")===sub)})}\r\n  function show(v,sub){\r\n    if(!titles[v])v=\"chat\";\r\n    document.querySelectorAll(\"[data-view-panel]\").forEach(function(p){p.hidden=p.getAttribute(\"data-view-panel\")!==v});\r\n    document.querySelectorAll(\".st5-nav-item\").forEach(function(b){b.classList.toggle(\"active\",b.getAttribute(\"data-view\")===v)});\r\n    document.querySelectorAll(\".st5-nav-group\").forEach(function(g){g.classList.toggle(\"open\",g.getAttribute(\"data-group\")===v)});\r\n    setSub(v,sub||\"list\");\r\n    document.getElementById(\"st5-view-title\").textContent=titles[v][0];\r\n    document.getElementById(\"st5-view-desc\").textContent=titles[v][1];\r\n    try{if(history.replaceState)history.replaceState(null,\"\",\"#\"+v)}catch(e){}\r\n  }\r\n  window.st5Nav={show:show,setSub:setSub};\r\n  document.querySelectorAll(\".st5-nav-item\").forEach(function(b){b.addEventListener(\"click\",function(){\r\n    var v=b.getAttribute(\"data-view\");show(v);\r\n    if(v===\"rules\")document.dispatchEvent(new CustomEvent(\"st5:rules-mode\",{detail:\"list\"}));\r\n  })});\r\n  document.querySelectorAll(\".st5-nav-sub\").forEach(function(b){b.addEventListener(\"click\",function(){\r\n    var v=b.getAttribute(\"data-view\"),sub=b.getAttribute(\"data-sub\");\r\n    show(v,sub);\r\n    if(v===\"websites\"&&sub===\"add\"){show(v,\"list\");var a=document.getElementById(\"st5-add-website\");if(a)a.click()}\r\n    if(v===\"rules\")document.dispatchEvent(new CustomEvent(\"st5:rules-mode\",{detail:sub}));\r\n  })});\r\n  var tb=document.getElementById(\"st5-sites-tbody\"),bd=document.getElementById(\"st5-nav-sites-count\");\r\n  if(tb&&bd&&window.MutationObserver)new MutationObserver(function(){bd.textContent=tb.querySelectorAll(\"[data-connection-action=disconnect]\").length}).observe(tb,{childList:true});\r\n  show((location.hash||\"\").replace(\"#\",\"\")||\"chat\");\r\n})();\r\n<\/script>\r\n\r\n<script>\r\n(function(){\r\n  var base=location.origin+\"\/wp-json\/fiveid-rules\/v1\/dashboard\";\r\n  var R={nonce:\"\",sites:[],rules:[],site:\"\",sel:{},p:null};\r\n  var $=function(i){return document.getElementById(i)};\r\n  var form=$(\"rl-form\"),tbody=$(\"rl-tbody\"),filter=$(\"rl-site\"),msg=$(\"rl-msg\"),flashEl=$(\"rl-flash\"),grid=$(\"rl-grid\"),all=$(\"rl-all\"),selBtn=$(\"rl-selall\"),delBtn=$(\"rl-del\");\r\n  if(!form)return;\r\n  function esc(v){return String(v==null?\"\":v).replace(\/[&<>\"']\/g,function(c){return{\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#039;\"}[c]})}\r\n  function say(t,err){msg.textContent=t||\"\";msg.classList.toggle(\"error\",!!err)}\r\n  function flash(t,err){flashEl.textContent=t||\"\";flashEl.classList.toggle(\"error\",!!err)}\r\n  function label(k){var s=R.sites.find(function(x){return x.key===k});return s?s.label:k}\r\n  function nonce(){return fetch(location.origin+\"\/wp-admin\/admin-ajax.php?action=fiveid_prm_session_nonce\",{credentials:\"same-origin\",cache:\"no-store\"}).then(function(r){return r.json()}).then(function(d){if(!d.logged_in||!d.nonce)throw new Error(\"Phi\u00ean \u0111\u0103ng nh\u1eadp \u0111\u00e3 h\u1ebft h\u1ea1n.\");R.nonce=d.nonce})}\r\n  function api(path,o){o=o||{};return fetch(base+path,{method:o.method||\"GET\",credentials:\"same-origin\",cache:\"no-store\",headers:{\"Content-Type\":\"application\/json\",\"X-WP-Nonce\":R.nonce},body:o.body?JSON.stringify(o.body):undefined}).then(function(r){return r.json().catch(function(){return{}}).then(function(d){if(!r.ok)throw new Error(d.message||\"Request failed\");return d})})}\r\n  function fillSites(sel,allOpt){sel.innerHTML=(allOpt?'<option value=\"\">All websites<\/option>':\"\")+R.sites.map(function(s){return'<option value=\"'+esc(s.key)+'\">'+esc(s.label)+\"<\/option>\"}).join(\"\")}\r\n  function setMode(m){grid.classList.toggle(\"mode-list\",m===\"list\");grid.classList.toggle(\"mode-edit\",m===\"edit\");if(window.st5Nav)window.st5Nav.setSub(\"rules\",m===\"edit\"?\"add\":\"list\")}\r\n  function ids(){return Object.keys(R.sel).filter(function(k){return R.sel[k]})}\r\n  function sync(){\r\n    var n=ids().length,t=R.rules.length,full=t>0&&n===t;\r\n    delBtn.disabled=!n;delBtn.textContent=\"Delete\"+(n?\" (\"+n+\")\":\"\");\r\n    selBtn.textContent=full?\"Clear selection\":\"Select all\";selBtn.disabled=!t;\r\n    all.checked=full;all.indeterminate=n>0&&!full;\r\n  }\r\nvar PRESETS={\r\n    \"H\u01b0\u1edbng d\u1eabn (How-to)\":[\"Ti\u00eau \u0111\u1ec1 c\u00f3 t\u1eeb kho\u00e1 ch\u00ednh\",\"M\u1edf b\u00e0i: n\u00eau v\u1ea5n \u0111\u1ec1 v\u00e0 k\u1ebft qu\u1ea3 ng\u01b0\u1eddi \u0111\u1ecdc s\u1ebd \u0111\u1ea1t \u0111\u01b0\u1ee3c\",\"Chu\u1ea9n b\u1ecb \/ y\u00eau c\u1ea7u\",\"C\u00e1c b\u01b0\u1edbc th\u1ef1c hi\u1ec7n (\u0111\u00e1nh s\u1ed1, m\u1ed7i b\u01b0\u1edbc m\u1ed9t \u0111o\u1ea1n ng\u1eafn)\",\"L\u1ed7i th\u01b0\u1eddng g\u1eb7p v\u00e0 c\u00e1ch x\u1eed l\u00fd\",\"C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (3\u20135 c\u00e2u)\",\"K\u1ebft b\u00e0i v\u00e0 l\u1eddi k\u00eau g\u1ecdi h\u00e0nh \u0111\u1ed9ng\"],\r\n    \"Danh s\u00e1ch (Top 10, N c\u00e1ch\u2026)\":[\"Ti\u00eau \u0111\u1ec1 c\u00f3 s\u1ed1 l\u01b0\u1ee3ng (VD: 10 c\u00e1ch\u2026)\",\"M\u1edf b\u00e0i ng\u1eafn\",\"Ti\u00eau ch\u00ed l\u1ef1a ch\u1ecdn\",\"T\u1eebng m\u1ee5c: m\u00f4 t\u1ea3, \u01b0u \u0111i\u1ec3m, nh\u01b0\u1ee3c \u0111i\u1ec3m, ph\u00f9 h\u1ee3p v\u1edbi ai\",\"B\u1ea3ng so s\u00e1nh nhanh\",\"K\u1ebft lu\u1eadn\"],\r\n    \"Gi\u1ea3i th\u00edch (X l\u00e0 g\u00ec?)\":[\"Ti\u00eau \u0111\u1ec1 d\u1ea1ng X l\u00e0 g\u00ec?\",\"\u0110\u1ecbnh ngh\u0129a ng\u1eafn 2\u20133 c\u00e2u ngay \u0111\u1ea7u b\u00e0i\",\"V\u00ec sao quan tr\u1ecdng\",\"C\u00e1ch ho\u1ea1t \u0111\u1ed9ng\",\"L\u1ee3i \u00edch v\u00e0 h\u1ea1n ch\u1ebf\",\"V\u00ed d\u1ee5 th\u1ef1c t\u1ebf\",\"C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p\",\"K\u1ebft b\u00e0i\"],\r\n    \"Tin t\u1ee9c \/ ph\u00e2n t\u00edch\":[\"Ti\u00eau \u0111\u1ec1\",\"Sapo 2\u20133 c\u00e2u: ai, c\u00e1i g\u00ec, khi n\u00e0o, \u1edf \u0111\u00e2u, v\u00ec sao\",\"Di\u1ec5n bi\u1ebfn ch\u00ednh\",\"S\u1ed1 li\u1ec7u v\u00e0 tr\u00edch d\u1eabn c\u00f3 ngu\u1ed3n\",\"T\u00e1c \u0111\u1ed9ng\",\"G\u00f3c nh\u00ecn \/ d\u1ef1 b\u00e1o\",\"K\u1ebft b\u00e0i ng\u1eafn\"],\r\n    \"So s\u00e1nh \/ review\":[\"Ti\u00eau \u0111\u1ec1\",\"T\u00f3m t\u1eaft k\u1ebft lu\u1eadn ngay \u0111\u1ea7u b\u00e0i\",\"Ti\u00eau ch\u00ed \u0111\u00e1nh gi\u00e1\",\"T\u1eebng s\u1ea3n ph\u1ea9m: \u01b0u, nh\u01b0\u1ee3c, gi\u00e1\",\"B\u1ea3ng so s\u00e1nh\",\"Khuy\u1ebfn ngh\u1ecb theo t\u1eebng nhu c\u1ea7u\"],\r\n    \"B\u00e1n h\u00e0ng \/ case study\":[\"Ti\u00eau \u0111\u1ec1 n\u00eau l\u1ee3i \u00edch\",\"V\u1ea5n \u0111\u1ec1 c\u1ee7a kh\u00e1ch h\u00e0ng\",\"H\u1eadu qu\u1ea3 n\u1ebfu kh\u00f4ng gi\u1ea3i quy\u1ebft\",\"Gi\u1ea3i ph\u00e1p\",\"B\u1eb1ng ch\u1ee9ng (s\u1ed1 li\u1ec7u, kh\u00e1ch h\u00e0ng)\",\"L\u1eddi k\u00eau g\u1ecdi h\u00e0nh \u0111\u1ed9ng r\u00f5 r\u00e0ng\"]\r\n  };\r\n  var DEF_SECS=[\"Ti\u00eau \u0111\u1ec1 + m\u00f4 t\u1ea3 ng\u1eafn (meta)\",\"M\u1edf b\u00e0i (sapo)\",\"Th\u00e2n b\u00e0i\",\"V\u00ed d\u1ee5 \/ b\u1ea3ng \/ l\u01b0u \u00fd\",\"C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (FAQ)\",\"K\u1ebft b\u00e0i + k\u00eau g\u1ecdi h\u00e0nh \u0111\u1ed9ng\"];\r\n  var DEF_BANS=[\"B\u1ecba s\u1ed1 li\u1ec7u ho\u1eb7c ngu\u1ed3n\",\"Sao ch\u00e9p nguy\u00ean v\u0103n t\u1eeb ngu\u1ed3n kh\u00e1c\",\"D\u00f9ng t\u1eeb chuy\u00ean m\u00f4n m\u00e0 kh\u00f4ng gi\u1ea3i th\u00edch\"];\r\n  var W={touched:false,legacy:false};\r\n  var secsEl=$(\"rw-secs\"),bansEl=$(\"rw-bans\"),typeEl=$(\"rw-type\"),prevEl=$(\"rw-preview\"),wizEl=$(\"rl-wiz\"),legacyEl=$(\"rl-legacy\");\r\n  $(\"rw-types\").innerHTML=Object.keys(PRESETS).map(function(k){return'<option value=\"'+esc(k)+'\">'}).join(\"\");\r\n  function renumber(box){Array.prototype.forEach.call(box.querySelectorAll(\".st5-rl-n\"),function(n,i){n.textContent=i+1})}\r\n  function mini(txt,attr,title){var b=document.createElement(\"button\");b.type=\"button\";b.className=\"st5-mini\";b.textContent=txt;b.setAttribute(attr,\"\");b.title=title;return b}\r\n  function addRow(box,val,ordered){\r\n    var row=document.createElement(\"div\");row.className=\"st5-rl-row\";\r\n    if(ordered){var n=document.createElement(\"span\");n.className=\"st5-rl-n\";row.appendChild(n)}\r\n    var i=document.createElement(\"input\");i.type=\"text\";i.value=val||\"\";i.maxLength=300;i.placeholder=ordered?\"T\u00ean ph\u1ea7n, VD: M\u1edf b\u00e0i\":\"VD: B\u1ecba s\u1ed1 li\u1ec7u\";row.appendChild(i);\r\n    if(ordered){row.appendChild(mini(\"\u2191\",\"data-up\",\"L\u00ean\"));row.appendChild(mini(\"\u2193\",\"data-down\",\"Xu\u1ed1ng\"))}\r\n    row.appendChild(mini(\"\u2715\",\"data-rm\",\"Xo\u00e1 d\u00f2ng\"));\r\n    box.appendChild(row);renumber(box);return i;\r\n  }\r\n  function fillRows(box,arr,ordered){box.innerHTML=\"\";arr.forEach(function(v){addRow(box,v,ordered)})}\r\n  function vals(box){return Array.prototype.map.call(box.querySelectorAll(\"input\"),function(i){return i.value.trim()}).filter(Boolean)}\r\n  function buildText(){\r\n    if(W.legacy)return form.elements.template_structure.value;\r\n    var about=$(\"rw-about\").value.trim(),aud=$(\"rw-audience\").value.trim(),tone=$(\"rw-tone\").value.trim(),len=$(\"rw-length\").value.trim(),type=typeEl.value.trim(),cta=$(\"rw-cta\").value.trim();\r\n    var secs=vals(secsEl),bans=vals(bansEl);\r\n    var out=[\"Vai tr\u00f2: Bi\u00ean t\u1eadp vi\u00ean c\u1ee7a website\"+(about?\" v\u1ec1 \"+about:\"\")];\r\n    if(aud)out.push(\"Ng\u01b0\u1eddi \u0111\u1ecdc: \"+aud);\r\n    out.push(\"Ng\u00f4n ng\u1eef: \"+$(\"rw-lang\").value);\r\n    if(tone)out.push(\"Gi\u1ecdng v\u0103n: \"+tone);\r\n    if(len)out.push(\"\u0110\u1ed9 d\u00e0i: \"+len);\r\n    if(type)out.push(\"Lo\u1ea1i b\u00e0i: \"+type);\r\n    if(secs.length){out.push(\"\",\"C\u1ea5u tr\u00fac b\u00e0i:\");secs.forEach(function(x,i){out.push((i+1)+\". \"+x)})}\r\n    if(cta)out.push(\"\",\"L\u1eddi k\u00eau g\u1ecdi cu\u1ed1i b\u00e0i: \"+cta);\r\n    if(bans.length){out.push(\"\",\"Kh\u00f4ng \u0111\u01b0\u1ee3c:\");bans.forEach(function(x){out.push(\"- \"+x)})}\r\n    return out.join(\"\\n\");\r\n  }\r\n  function parse(t){\r\n    var L=String(t||\"\").split(\"\\n\");\r\n    if(!\/^Vai tr\u00f2:\/.test(L[0]||\"\"))return null;\r\n    var o={about:L[0].replace(\/^Vai tr\u00f2:\\s*Bi\u00ean t\u1eadp vi\u00ean c\u1ee7a website\\s*\/,\"\").replace(\/^v\u1ec1\\s*\/,\"\").trim(),audience:\"\",lang:\"ti\u1ebfng Vi\u1ec7t\",tone:\"\",length:\"\",type:\"\",cta:\"\",secs:[],bans:[]};\r\n    var keys={\"Ng\u01b0\u1eddi \u0111\u1ecdc\":\"audience\",\"Ng\u00f4n ng\u1eef\":\"lang\",\"Gi\u1ecdng v\u0103n\":\"tone\",\"\u0110\u1ed9 d\u00e0i\":\"length\",\"Lo\u1ea1i b\u00e0i\":\"type\",\"L\u1eddi k\u00eau g\u1ecdi cu\u1ed1i b\u00e0i\":\"cta\"},mode=\"\";\r\n    L.slice(1).forEach(function(l){\r\n      l=l.replace(\/\\r$\/,\"\");var m;\r\n      if(l===\"C\u1ea5u tr\u00fac b\u00e0i:\"){mode=\"s\";return}\r\n      if(l===\"Kh\u00f4ng \u0111\u01b0\u1ee3c:\"){mode=\"b\";return}\r\n      if((m=l.match(\/^([^:]+):\\s*(.*)$\/))&&keys[m[1]]){o[keys[m[1]]]=m[2];mode=\"\";return}\r\n      if(mode===\"s\"&&(m=l.match(\/^\\d+\\.\\s*(.*)$\/))){o.secs.push(m[1]);return}\r\n      if(mode===\"b\"&&(m=l.match(\/^-\\s*(.*)$\/))){o.bans.push(m[1])}\r\n    });\r\n    return o;\r\n  }\r\n  function updatePreview(){prevEl.textContent=W.legacy?\"(Rule nh\u1eadp tay: n\u1ed9i dung \u1edf \u00f4 v\u0103n b\u1ea3n b\u00ean tr\u00ean)\":buildText()}\r\n  function setLegacy(on){W.legacy=on;wizEl.hidden=on;legacyEl.hidden=!on}\r\n  function fillWiz(p){\r\n    $(\"rw-about\").value=p.about;$(\"rw-audience\").value=p.audience;$(\"rw-tone\").value=p.tone;$(\"rw-length\").value=p.length;$(\"rw-cta\").value=p.cta;typeEl.value=p.type;\r\n    var sel=$(\"rw-lang\");if(!Array.prototype.some.call(sel.options,function(o){return o.value===p.lang})){var o=document.createElement(\"option\");o.textContent=p.lang;sel.appendChild(o)}\r\n    sel.value=p.lang;fillRows(secsEl,p.secs,true);fillRows(bansEl,p.bans,false);\r\n  }\r\n  function blank(){return{about:\"\",audience:\"\",lang:\"ti\u1ebfng Vi\u1ec7t\",tone:\"\",length:\"\",type:\"\",cta:\"\",secs:DEF_SECS.slice(),bans:DEF_BANS.slice()}}\r\n  function reset(rule){\r\n    rule=rule||{id:\"\",site_key:R.site||(R.sites[0]||{}).key||\"\",template_name:\"\",template_structure:\"\",is_active:true};\r\n    form.elements.id.value=rule.id||\"\";\r\n    form.elements.site_key.value=rule.site_key||\"\";\r\n    form.elements.template_name.value=rule.template_name||\"\";\r\n    form.elements.is_active.checked=!!Number(rule.is_active===true?1:rule.is_active);\r\n    $(\"rl-form-title\").textContent=rule.id?\"Edit rule #\"+rule.id:\"New rule\";\r\n    say(\"\");W.touched=false;\r\n    var p=rule.template_structure?parse(rule.template_structure):null;\r\n    if(rule.template_structure&&!p){setLegacy(true);form.elements.template_structure.value=rule.template_structure}\r\n    else{setLegacy(false);form.elements.template_structure.value=\"\";fillWiz(p||blank())}\r\n    updatePreview();\r\n  }\r\n  typeEl.addEventListener(\"input\",function(){if(!W.touched&&PRESETS[typeEl.value]){fillRows(secsEl,PRESETS[typeEl.value],true)}updatePreview()});\r\n  form.addEventListener(\"input\",function(ev){if(secsEl.contains(ev.target))W.touched=true;updatePreview()});\r\n  function rowClick(box,ordered){box.addEventListener(\"click\",function(ev){\r\n    var b=ev.target.closest(\"button\");if(!b)return;var row=b.closest(\".st5-rl-row\");\r\n    if(b.hasAttribute(\"data-rm\"))row.remove();\r\n    else if(b.hasAttribute(\"data-up\")&&row.previousElementSibling)box.insertBefore(row,row.previousElementSibling);\r\n    else if(b.hasAttribute(\"data-down\")&&row.nextElementSibling)box.insertBefore(row.nextElementSibling,row);\r\n    if(ordered)W.touched=true;renumber(box);updatePreview();\r\n  })}\r\n  rowClick(secsEl,true);rowClick(bansEl,false);\r\n  $(\"rw-add-sec\").addEventListener(\"click\",function(){W.touched=true;addRow(secsEl,\"\",true).focus()});\r\n  $(\"rw-add-ban\").addEventListener(\"click\",function(){addRow(bansEl,\"\",false).focus()});\r\n  $(\"rl-to-wiz\").addEventListener(\"click\",function(){\r\n    if(!window.confirm(\"N\u1ed9i dung nh\u1eadp tay s\u1ebd b\u1ecb thay b\u1eb1ng c\u00e1c \u00f4 tr\u1ed1ng. Ti\u1ebfp t\u1ee5c?\"))return;\r\n    setLegacy(false);form.elements.template_structure.value=\"\";fillWiz(blank());W.touched=false;updatePreview();\r\n  });\r\n  function render(){\r\n    $(\"rl-count\").textContent=R.rules.length+\" rule\"+(R.rules.length===1?\"\":\"s\");\r\n    if(!R.rules.length){tbody.innerHTML='<tr><td colspan=\"5\" class=\"st5-empty-cell\">No rules found.<\/td><\/tr>';sync();return}\r\n    tbody.innerHTML=R.rules.map(function(r){\r\n      var on=!!Number(r.is_active===true?1:r.is_active),id=esc(r.id);\r\n      return '<tr><td class=\"st5-ck\"><input type=\"checkbox\" data-ck=\"'+id+'\"'+(R.sel[r.id]?\" checked\":\"\")+\"><\/td>\"+\r\n      '<td><span class=\"st5-rl-site\">'+esc(label(r.site_key))+\"<\/span><\/td>\"+\r\n      '<td><div class=\"st5-rl-name\">'+esc(r.template_name)+'<\/div><span class=\"st5-pill'+(on?\"\":\" st5-status-pending\")+'\">'+(on?\"Active\":\"Inactive\")+\"<\/span><\/td>\"+\r\n      '<td><div class=\"st5-rl-struct\">'+esc(r.template_structure)+\"<\/div><\/td>\"+\r\n      '<td><div class=\"st5-actions\"><button type=\"button\" class=\"st5-link-btn primary\" data-rl=\"edit\" data-id=\"'+id+'\">Edit<\/button><\/div><\/td><\/tr>';\r\n    }).join(\"\");\r\n    sync();\r\n  }\r\n  function prune(){var keep={};R.rules.forEach(function(r){if(R.sel[r.id])keep[r.id]=true});R.sel=keep}\r\n  function load(){return api(\"\/rules\"+(R.site?\"?site_key=\"+encodeURIComponent(R.site):\"\")).then(function(d){R.rules=d.data||[];prune();render()})}\r\n  function init(){\r\n    if(R.p)return R.p;\r\n    R.p=nonce().then(function(){return api(\"\/bootstrap\")}).then(function(d){\r\n      R.sites=d.sites||[];fillSites(filter,true);fillSites(form.elements.site_key,false);\r\n      R.rules=d.rules||[];render();reset();\r\n    }).catch(function(e){R.p=null;flash(e.message,true);tbody.innerHTML='<tr><td colspan=\"5\" class=\"st5-empty-cell\">'+esc(e.message)+\"<\/td><\/tr>\";throw e});\r\n    return R.p;\r\n  }\r\n  document.querySelectorAll('[data-view=\"rules\"]').forEach(function(b){b.addEventListener(\"click\",function(){init().catch(function(){})})});\r\n  if(location.hash===\"#rules\")init().catch(function(){});\r\n  document.addEventListener(\"st5:rules-mode\",function(ev){\r\n    init().then(function(){\r\n      var add=ev.detail===\"add\";\r\n      reset();setMode(add?\"edit\":\"list\");\r\n      if(add)form.elements.template_name.focus();\r\n    }).catch(function(){});\r\n  });\r\n  filter.addEventListener(\"change\",function(){R.site=filter.value;R.sel={};flash(\"\");load().catch(function(e){flash(e.message,true)})});\r\n  $(\"rl-reset\").addEventListener(\"click\",function(){reset();setMode(\"list\")});\r\n  function toggleAll(on){R.rules.forEach(function(r){R.sel[r.id]=on});render()}\r\n  selBtn.addEventListener(\"click\",function(){toggleAll(ids().length!==R.rules.length)});\r\n  all.addEventListener(\"change\",function(){toggleAll(all.checked)});\r\n  tbody.addEventListener(\"change\",function(ev){\r\n    var c=ev.target.closest(\"[data-ck]\");if(!c)return;\r\n    R.sel[c.getAttribute(\"data-ck\")]=c.checked;sync();\r\n  });\r\n  tbody.addEventListener(\"click\",function(ev){\r\n    var b=ev.target.closest('[data-rl=\"edit\"]');if(!b)return;\r\n    var r=R.rules.find(function(x){return String(x.id)===b.getAttribute(\"data-id\")});\r\n    if(r){reset(r);setMode(\"edit\")}\r\n  });\r\n  delBtn.addEventListener(\"click\",function(){\r\n    var list=ids();if(!list.length)return;\r\n    if(!window.confirm(\"Delete \"+list.length+\" rule\"+(list.length>1?\"s\":\"\")+\"?\"))return;\r\n    var fail=0;delBtn.disabled=true;\r\n    list.reduce(function(p,id){return p.then(function(){return api(\"\/rules\/\"+encodeURIComponent(id),{method:\"DELETE\"}).catch(function(){fail++})})},Promise.resolve())\r\n      .then(function(){R.sel={};return load()})\r\n      .then(function(){flash(fail?\"Deleted \"+(list.length-fail)+\", failed \"+fail+\".\":\"Deleted \"+list.length+\". T\u1ea3i l\u1ea1i trang \u0111\u1ec3 danh s\u00e1ch template \u1edf Chat c\u1eadp nh\u1eadt.\",!!fail)})\r\n      .catch(function(e){flash(e.message,true)});\r\n  });\r\n  form.addEventListener(\"submit\",function(ev){\r\n    ev.preventDefault();\r\n    var id=form.elements.id.value;\r\n    var body={site_key:form.elements.site_key.value,template_name:form.elements.template_name.value,template_structure:buildText(),is_active:form.elements.is_active.checked};\r\n    api(id?\"\/rules\/\"+encodeURIComponent(id):\"\/rules\",{method:id?\"PUT\":\"POST\",body:body})\r\n      .then(function(){return load()})\r\n      .then(function(){reset();setMode(\"list\");flash(\"Saved. T\u1ea3i l\u1ea1i trang \u0111\u1ec3 danh s\u00e1ch template \u1edf Chat c\u1eadp nh\u1eadt.\")})\r\n      .catch(function(e){say(e.message,true)});\r\n  });\r\n})();\r\n<\/script>\r\n\r\n<script>\r\n(function(){\r\n  var $=function(i){return document.getElementById(i)};\r\n  var tb=$(\"st5-sites-tbody\"),all=$(\"ws-all\"),selBtn=$(\"ws-selall\"),delBtn=$(\"ws-del\"),flash=$(\"ws-flash\");\r\n  if(!tb||!all)return;\r\n  var base=location.origin+\"\/wp-json\/fiveid-rules\/v1\/dashboard\";\r\n  function rows(){return Array.prototype.filter.call(tb.querySelectorAll(\"tr\"),function(r){return r.querySelector(\"[data-connection-id]\")})}\r\n  function checks(){return tb.querySelectorAll(\"input[data-ws-ck]\")}\r\n  function selected(){return Array.prototype.filter.call(checks(),function(c){return c.checked}).map(function(c){return c.getAttribute(\"data-ws-ck\")})}\r\n  function sync(){\r\n    var n=selected().length,t=checks().length,full=t>0&&n===t;\r\n    delBtn.disabled=!n;delBtn.textContent=\"Delete\"+(n?\" (\"+n+\")\":\"\");\r\n    selBtn.textContent=full?\"Clear selection\":\"Select all\";selBtn.disabled=!t;\r\n    all.checked=full;all.indeterminate=n>0&&!full;\r\n  }\r\n  function decorate(){\r\n    rows().forEach(function(tr){\r\n      if(tr.querySelector(\".st5-ck\"))return;\r\n      var td=document.createElement(\"td\"),c=document.createElement(\"input\");\r\n      td.className=\"st5-ck\";c.type=\"checkbox\";\r\n      c.setAttribute(\"data-ws-ck\",tr.querySelector(\"[data-connection-id]\").getAttribute(\"data-connection-id\"));\r\n      td.appendChild(c);tr.insertBefore(td,tr.firstChild);\r\n    });\r\n    var empty=tb.querySelector(\".st5-empty-cell\");if(empty)empty.setAttribute(\"colspan\",\"4\");\r\n    sync();\r\n  }\r\n  if(window.MutationObserver)new MutationObserver(decorate).observe(tb,{childList:true});\r\n  decorate();\r\n  function setAll(on){Array.prototype.forEach.call(checks(),function(c){c.checked=on});sync()}\r\n  selBtn.addEventListener(\"click\",function(){setAll(selected().length!==checks().length)});\r\n  all.addEventListener(\"change\",function(){setAll(all.checked)});\r\n  tb.addEventListener(\"change\",sync);\r\n  delBtn.addEventListener(\"click\",function(){\r\n    var list=selected();if(!list.length)return;\r\n    if(!window.confirm(\"Xo\u00e1 v\u0129nh vi\u1ec5n \"+list.length+\" website kh\u1ecfi h\u1ec7 th\u1ed1ng?\\nD\u1eef li\u1ec7u k\u1ebft n\u1ed1i trong database s\u1ebd b\u1ecb xo\u00e1 v\u00e0 kh\u00f4ng th\u1ec3 kh\u00f4i ph\u1ee5c.\"))return;\r\n    delBtn.disabled=true;flash.classList.remove(\"error\");flash.textContent=\"Deleting\u2026\";\r\n    var ok=0,errs=[],warn=0;\r\n    fetch(location.origin+\"\/wp-admin\/admin-ajax.php?action=fiveid_prm_session_nonce\",{credentials:\"same-origin\",cache:\"no-store\"}).then(function(r){return r.json()}).then(function(d){\r\n      if(!d.logged_in||!d.nonce)throw new Error(\"Phi\u00ean \u0111\u0103ng nh\u1eadp \u0111\u00e3 h\u1ebft h\u1ea1n.\");\r\n      return list.reduce(function(p,id){return p.then(function(){\r\n        return fetch(base+\"\/site-connections\/\"+encodeURIComponent(id)+\"\/delete\",{method:\"POST\",credentials:\"same-origin\",cache:\"no-store\",headers:{\"Content-Type\":\"application\/json\",\"X-WP-Nonce\":d.nonce}}).then(function(r){\r\n          return r.json().catch(function(){return{}}).then(function(b){\r\n            if(!r.ok){errs.push(b.message||(\"HTTP \"+r.status));return}\r\n            ok++;if(b.warning)warn++;\r\n          });\r\n        }).catch(function(e){errs.push(e.message||\"Network error\")});\r\n      })},Promise.resolve());\r\n    }).then(function(){\r\n      var t=\"\u0110\u00e3 xo\u00e1 \"+ok+\" website.\";\r\n      if(errs.length)t+=\" L\u1ed7i \"+errs.length+\": \"+errs[0];\r\n      if(warn)t+=\" \"+warn+\" site ch\u01b0a x\u00e1c nh\u1eadn \u0111\u01b0\u1ee3c vi\u1ec7c thu h\u1ed3i Application Password \u2014 h\u00e3y xo\u00e1 th\u1ee7 c\u00f4ng \u1edf Users \u2192 Profile c\u1ee7a site \u0111\u00f3 n\u1ebfu c\u1ea7n.\";\r\n      flash.textContent=t;flash.classList.toggle(\"error\",errs.length>0);\r\n      if(window.st5Core)return window.st5Core.reload();\r\n    }).catch(function(e){flash.classList.add(\"error\");flash.textContent=e.message}).then(sync);\r\n  });\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>auto_awesome AutoPost AIContent workspace L\u00e0m vi\u1ec7c chat Staff-AI Chat history L\u1ecbch s\u1eed request C\u1ea5u h\u00ecnh language Website 0expand_more format_list_bulleted Danh s\u00e1ch website add_circle Add website rule Rule \/ Templateexpand_more format_list_bulleted Danh s\u00e1ch rule add_circle Add rule settings C\u00e0i \u0111\u1eb7t 5ID Technology \u00b7 v2 Staff-AI Chat G\u1eedi y\u00eau c\u1ea7u ho\u1eb7c link n\u1ed9i dung \u0111\u1ec3 AI chu\u1ea9n&#8230;<\/p>","protected":false},"author":16,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-991534","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SEO Website Content Automation - 5ID Technology - 5ID<\/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:\/\/5id.vn\/vi\/seo-website-content-automation\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SEO Website Content Automation - 5ID Technology\" \/>\n<meta property=\"og:description\" content=\"auto_awesome AutoPost AIContent workspace L\u00e0m vi\u1ec7c chat Staff-AI Chat history L\u1ecbch s\u1eed request C\u1ea5u h\u00ecnh language Website 0expand_more format_list_bulleted Danh s\u00e1ch website add_circle Add website rule Rule \/ Templateexpand_more format_list_bulleted Danh s\u00e1ch rule add_circle Add rule settings C\u00e0i \u0111\u1eb7t 5ID Technology \u00b7 v2 Staff-AI Chat G\u1eedi y\u00eau c\u1ea7u ho\u1eb7c link n\u1ed9i dung \u0111\u1ec3 AI chu\u1ea9n...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/5id.vn\/vi\/seo-website-content-automation\/\" \/>\n<meta property=\"og:site_name\" content=\"5ID\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-27T08:46:02+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/5id.vn\\\/seo-website-content-automation\\\/\",\"url\":\"https:\\\/\\\/5id.vn\\\/seo-website-content-automation\\\/\",\"name\":\"SEO Website Content Automation - 5ID Technology - 5ID\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/5id.vn\\\/#website\"},\"datePublished\":\"2026-08-24T16:18:48+00:00\",\"dateModified\":\"2026-10-27T08:46:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/5id.vn\\\/seo-website-content-automation\\\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/5id.vn\\\/seo-website-content-automation\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/5id.vn\\\/seo-website-content-automation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/5id.vn\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SEO Website Content Automation &#8211; 5ID Technology\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/5id.vn\\\/#website\",\"url\":\"https:\\\/\\\/5id.vn\\\/\",\"name\":\"5ID\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/5id.vn\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/5id.vn\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/5id.vn\\\/#organization\",\"name\":\"5ID\",\"url\":\"https:\\\/\\\/5id.vn\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/5id.vn\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/5id.vn\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/5IDLOGO.svg\",\"contentUrl\":\"https:\\\/\\\/5id.vn\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/5IDLOGO.svg\",\"width\":579,\"height\":185,\"caption\":\"5ID\"},\"image\":{\"@id\":\"https:\\\/\\\/5id.vn\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SEO Website Content Automation - 5ID Technology - 5ID","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:\/\/5id.vn\/vi\/seo-website-content-automation\/","og_locale":"vi_VN","og_type":"article","og_title":"SEO Website Content Automation - 5ID Technology","og_description":"auto_awesome AutoPost AIContent workspace L\u00e0m vi\u1ec7c chat Staff-AI Chat history L\u1ecbch s\u1eed request C\u1ea5u h\u00ecnh language Website 0expand_more format_list_bulleted Danh s\u00e1ch website add_circle Add website rule Rule \/ Templateexpand_more format_list_bulleted Danh s\u00e1ch rule add_circle Add rule settings C\u00e0i \u0111\u1eb7t 5ID Technology \u00b7 v2 Staff-AI Chat G\u1eedi y\u00eau c\u1ea7u ho\u1eb7c link n\u1ed9i dung \u0111\u1ec3 AI chu\u1ea9n...","og_url":"https:\/\/5id.vn\/vi\/seo-website-content-automation\/","og_site_name":"5ID","article_modified_time":"2026-10-27T08:46:02+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"2 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/5id.vn\/seo-website-content-automation\/","url":"https:\/\/5id.vn\/seo-website-content-automation\/","name":"SEO Website Content Automation - 5ID Technology - 5ID","isPartOf":{"@id":"https:\/\/5id.vn\/#website"},"datePublished":"2026-08-24T16:18:48+00:00","dateModified":"2026-10-27T08:46:02+00:00","breadcrumb":{"@id":"https:\/\/5id.vn\/seo-website-content-automation\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/5id.vn\/seo-website-content-automation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/5id.vn\/seo-website-content-automation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/5id.vn\/"},{"@type":"ListItem","position":2,"name":"SEO Website Content Automation &#8211; 5ID Technology"}]},{"@type":"WebSite","@id":"https:\/\/5id.vn\/#website","url":"https:\/\/5id.vn\/","name":"5ID","description":"","publisher":{"@id":"https:\/\/5id.vn\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/5id.vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/5id.vn\/#organization","name":"5ID","url":"https:\/\/5id.vn\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/5id.vn\/#\/schema\/logo\/image\/","url":"https:\/\/5id.vn\/wp-content\/uploads\/2023\/03\/5IDLOGO.svg","contentUrl":"https:\/\/5id.vn\/wp-content\/uploads\/2023\/03\/5IDLOGO.svg","width":579,"height":185,"caption":"5ID"},"image":{"@id":"https:\/\/5id.vn\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/5id.vn\/vi\/wp-json\/wp\/v2\/pages\/991534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/5id.vn\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/5id.vn\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/5id.vn\/vi\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/5id.vn\/vi\/wp-json\/wp\/v2\/comments?post=991534"}],"version-history":[{"count":25,"href":"https:\/\/5id.vn\/vi\/wp-json\/wp\/v2\/pages\/991534\/revisions"}],"predecessor-version":[{"id":992378,"href":"https:\/\/5id.vn\/vi\/wp-json\/wp\/v2\/pages\/991534\/revisions\/992378"}],"wp:attachment":[{"href":"https:\/\/5id.vn\/vi\/wp-json\/wp\/v2\/media?parent=991534"}],"curies":[{"name":"trang web","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}