.empty-msg text-align: center; padding: 28px 20px; color: #5f6a87; font-style: italic; font-size: 0.85rem;
.info-panel .rule font-family: 'Fira Code', monospace; background: #00000060; padding: 6px 12px; border-radius: 40px; font-size: 0.85rem; color: #ffdf9c; letter-spacing: 0.3px;
<div class="content"> <div class="info-panel"> <p>🛡️ <strong>Active protection:</strong> any download attempt is <span style="color:#ffad6a;">blocked</span> by default until you approve.</p> <p>📌 <span class="rule">"Run blocker" mode: all executable-like requests are intercepted</span></p> <p>✅ Add trusted URLs manually → they become downloadable. Everything else stays blocked.</p> </div>
.btn-warning background: #a56b1f; color: #ffe3b3;
// initial demo load to show blocker concept (non-intrusive) loadDemoExamples(); </script> </body> </html>
.btn-danger background: #ab2e3c; color: white;
function escapeHtml(str) if (!str) return ''; return str.replace(/[&<>]/g, function(m) if (m === '&') return '&'; if (m === '<') return '<'; if (m === '>') return '>'; return m; ).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, function(c) return c; );
.btn-primary background: #3c4bff; color: white; box-shadow: 0 4px 12px #3c4bff40;