Files
autarch/web/templates/base.html

304 lines
27 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}AUTARCH{% endblock %}</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/autarchos.css') }}">
{% block extra_head %}{% endblock %}
</head>
<body data-blueprint="{{ request.blueprint or '' }}">
{% if session.get('user') %}
<div class="desktop-bg"></div>
<div class="watermark">Λ</div>
<!-- ── Top system bar ─────────────────────────────────────── -->
<div class="aos-topbar">
<a class="logo" href="{{ url_for('dashboard.index') }}">
<span class="mk">Λ</span>Aut<b>archOS</b>
</a>
<a class="mi" href="#" data-aos-action="open-launcher">Apps</a>
<a class="mi" href="{{ url_for('settings.index') }}">Settings</a>
<a class="mi" href="{{ url_for('dashboard.manual') }}">Help</a>
<span class="sp"></span>
<span class="posture">
<span class="pulse" style="background:var(--amber);box-shadow:0 0 10px rgba(255,177,61,.6)"></span>
Authed
</span>
<span class="tray">
<svg class="shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6"><path d="M12 3l8 3v5c0 5-3.5 8-8 10-4.5-2-8-5-8-10V6z"/></svg>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6"><path d="M5 12.5a10 10 0 0 1 14 0M8 15.5a6 6 0 0 1 8 0M12 19h.01"/></svg>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6"><rect x="3" y="8" width="18" height="8" rx="1"/><path d="M16 12h2"/></svg>
</span>
<span class="user">
<b>{{ session.get('user', 'admin') }}</b>
</span>
<span class="clock" id="aos-clock">--:--:--</span>
</div>
<!-- ── Workspace ─────────────────────────────────────────── -->
<main class="aos-workspace">
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
<div class="flash-messages">
{% for category, message in messages %}
<div class="flash flash-{{ category }}">{{ message }}</div>
{% endfor %}
</div>
{% endif %}
{% endwith %}
{% block content %}{% endblock %}
</main>
<!-- ── Dock ──────────────────────────────────────────────── -->
<nav class="aos-dock">
<a class="app" data-app="dashboard" href="{{ url_for('dashboard.index') }}">
<div class="tip">Overview</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="3" y="3" width="7" height="9"/><rect x="14" y="3" width="7" height="5"/><rect x="14" y="12" width="7" height="9"/><rect x="3" y="16" width="7" height="5"/></svg>
</a>
<a class="app" data-app="defense" href="{{ url_for('defense.index') }}">
<div class="tip">Defense</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M12 3l8 3v5c0 5-3.5 8-8 10-4.5-2-8-5-8-10V6z"/></svg>
</a>
<a class="app" data-app="offense" href="{{ url_for('offense.index') }}">
<div class="tip">Offense</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M14 4l-7 8 4 0-2 8 7-8-4 0z"/></svg>
</a>
<a class="app" data-app="counter" href="{{ url_for('counter.index') }}">
<div class="tip">Counter</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg>
</a>
<a class="app" data-app="net_mapper" href="{{ url_for('net_mapper.index') }}">
<div class="tip">Topology</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="5" r="2.2"/><circle cx="5" cy="18" r="2.2"/><circle cx="19" cy="18" r="2.2"/><path d="M12 7.2 6.5 15.8M12 7.2l5.5 8.6"/></svg>
</a>
<a class="app" data-app="android_forensics" href="{{ url_for('android_forensics.index') }}">
<div class="tip">Forensics</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="6" y="3" width="12" height="18" rx="2"/><path d="M10 18h4"/></svg>
</a>
<a class="app" data-app="msf" href="{{ url_for('msf.index') }}">
<div class="tip">MSF Console</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="3" y="4" width="18" height="16" rx="1"/><path d="M7 9l3 3-3 3M13 15h4"/></svg>
</a>
<span class="divider"></span>
<a class="app" data-app="chat" href="#" onclick="if(typeof halToggle==='function'){halToggle();}return false;">
<div class="tip">HAL</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="4" y="6" width="16" height="12" rx="1.5"/><path d="M9 11h.01M15 11h.01M9 15h6"/></svg>
</a>
<a class="app" data-app="settings" href="{{ url_for('settings.index') }}">
<div class="tip">Settings</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1A2 2 0 1 1 7 4.6l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/></svg>
</a>
<a class="app" data-aos-action="open-launcher" href="#">
<div class="tip">All Apps</div>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="5" cy="5" r="2"/><circle cx="12" cy="5" r="2"/><circle cx="19" cy="5" r="2"/><circle cx="5" cy="12" r="2"/><circle cx="12" cy="12" r="2"/><circle cx="19" cy="12" r="2"/><circle cx="5" cy="19" r="2"/><circle cx="12" cy="19" r="2"/><circle cx="19" cy="19" r="2"/></svg>
</a>
</nav>
<!-- ── Apps launcher modal ───────────────────────────────── -->
<div class="aos-launcher-backdrop" id="aos-launcher">
<div class="aos-launcher">
<h2>All Apps</h2>
<input id="aos-launcher-search" class="search" type="text" placeholder="search apps... (Ctrl+Space to toggle)">
<div class="group">
<div class="group-title">Core</div>
<div class="apps">
<a class="app-card" href="{{ url_for('dashboard.index') }}"><span class="ico"></span><span class="meta"><b>Dashboard</b><small>Command overview</small></span></a>
<a class="app-card" href="{{ url_for('autonomy.index') }}"><span class="ico"></span><span class="meta"><b>Autonomy</b><small>Autonomous HAL agent</small></span></a>
<a class="app-card" href="#" onclick="if(typeof halToggle==='function'){halToggle();}return false;"><span class="ico"></span><span class="meta"><b>HAL Chat</b><small>AI copilot</small></span></a>
<a class="app-card" href="{{ url_for('targets.index') }}"><span class="ico"></span><span class="meta"><b>Investigations</b><small>Target dossiers</small></span></a>
<a class="app-card" href="{{ url_for('port_scanner.index') }}"><span class="ico"></span><span class="meta"><b>Port Scanner</b><small>Quick host scan</small></span></a>
</div>
</div>
<div class="group">
<div class="group-title">Defense</div>
<div class="apps">
<a class="app-card" href="{{ url_for('defense.index') }}"><span class="ico"></span><span class="meta"><b>Defense</b><small>Hardening &amp; audits</small></span></a>
<a class="app-card" href="{{ url_for('defense.linux_index') }}"><span class="ico"></span><span class="meta"><b>Linux Audit</b><small>System hardening</small></span></a>
<a class="app-card" href="{{ url_for('defense.windows_index') }}"><span class="ico"></span><span class="meta"><b>Windows Audit</b><small>System hardening</small></span></a>
<a class="app-card" href="{{ url_for('defense.monitor_index') }}"><span class="ico"></span><span class="meta"><b>Threat Monitor</b><small>Live detection</small></span></a>
<a class="app-card" href="{{ url_for('threat_intel.index') }}"><span class="ico"></span><span class="meta"><b>Threat Intel</b><small>IoC lookups</small></span></a>
<a class="app-card" href="{{ url_for('log_correlator.index') }}"><span class="ico"></span><span class="meta"><b>Log Correlator</b><small>SIEM-style</small></span></a>
<a class="app-card" href="{{ url_for('container_sec.index') }}"><span class="ico"></span><span class="meta"><b>Container Sec</b><small>Docker / Podman</small></span></a>
<a class="app-card" href="{{ url_for('email_sec.index') }}"><span class="ico"></span><span class="meta"><b>Email Sec</b><small>SPF / DKIM / DMARC</small></span></a>
</div>
</div>
<div class="group">
<div class="group-title">Offense</div>
<div class="apps">
<a class="app-card" href="{{ url_for('offense.index') }}"><span class="ico"></span><span class="meta"><b>Offense</b><small>Pentesting tools</small></span></a>
<a class="app-card" href="{{ url_for('msf.index') }}"><span class="ico"></span><span class="meta"><b>MSF Console</b><small>Metasploit</small></span></a>
<a class="app-card" href="{{ url_for('exploit_dev.index') }}"><span class="ico"></span><span class="meta"><b>Exploit Dev</b><small>Workshop</small></span></a>
<a class="app-card" href="{{ url_for('vuln_scanner.index') }}"><span class="ico"></span><span class="meta"><b>Vuln Scanner</b><small>CVE scanner</small></span></a>
<a class="app-card" href="{{ url_for('webapp_scanner.index') }}"><span class="ico"></span><span class="meta"><b>Web Scanner</b><small>WebApp audit</small></span></a>
<a class="app-card" href="{{ url_for('c2_framework.index') }}"><span class="ico"></span><span class="meta"><b>C2 Framework</b><small>Command &amp; control</small></span></a>
<a class="app-card" href="{{ url_for('api_fuzzer.index') }}"><span class="ico"></span><span class="meta"><b>API Fuzzer</b><small>API testing</small></span></a>
<a class="app-card" href="{{ url_for('cloud_scan.index') }}"><span class="ico"></span><span class="meta"><b>Cloud Scan</b><small>AWS / Azure / GCP</small></span></a>
<a class="app-card" href="{{ url_for('ad_audit.index') }}"><span class="ico"></span><span class="meta"><b>AD Audit</b><small>Active Directory</small></span></a>
<a class="app-card" href="{{ url_for('hack_hijack.index') }}"><span class="ico"></span><span class="meta"><b>Hack Hijack</b><small>Session takeover</small></span></a>
<a class="app-card" href="{{ url_for('phishmail.index') }}"><span class="ico"></span><span class="meta"><b>Phishmail</b><small>Phishing simulation</small></span></a>
<a class="app-card" href="{{ url_for('social_eng.index') }}"><span class="ico"></span><span class="meta"><b>Social Eng</b><small>SET toolkit</small></span></a>
<a class="app-card" href="{{ url_for('loadtest.index') }}"><span class="ico"></span><span class="meta"><b>Load Test</b><small>Stress testing</small></span></a>
<a class="app-card" href="{{ url_for('password_toolkit.index') }}"><span class="ico"></span><span class="meta"><b>Password Toolkit</b><small>Hashes &amp; cracking</small></span></a>
<a class="app-card" href="{{ url_for('revshell.index') }}"><span class="ico"></span><span class="meta"><b>Reverse Shell</b><small>Multi-language gen</small></span></a>
</div>
</div>
<div class="group">
<div class="group-title">Counter / Analyze</div>
<div class="apps">
<a class="app-card" href="{{ url_for('counter.index') }}"><span class="ico"></span><span class="meta"><b>Counter</b><small>Threat hunting</small></span></a>
<a class="app-card" href="{{ url_for('analyze.index') }}"><span class="ico"></span><span class="meta"><b>Analyze</b><small>Forensics &amp; hex</small></span></a>
<a class="app-card" href="{{ url_for('analyze.hash_detection') }}"><span class="ico"></span><span class="meta"><b>Hash Toolkit</b><small>Hash ID &amp; crack</small></span></a>
<a class="app-card" href="{{ url_for('forensics.index') }}"><span class="ico"></span><span class="meta"><b>Forensics</b><small>File analysis</small></span></a>
<a class="app-card" href="{{ url_for('anti_forensics.index') }}"><span class="ico"></span><span class="meta"><b>Anti-Forensics</b><small>Evidence removal</small></span></a>
<a class="app-card" href="{{ url_for('steganography.index') }}"><span class="ico"></span><span class="meta"><b>Steganography</b><small>Hidden data</small></span></a>
<a class="app-card" href="{{ url_for('malware_sandbox.index') }}"><span class="ico"></span><span class="meta"><b>Malware Sandbox</b><small>Behavior analysis</small></span></a>
<a class="app-card" href="{{ url_for('reverse_eng.index') }}"><span class="ico"></span><span class="meta"><b>Reverse Eng</b><small>Disassembly</small></span></a>
<a class="app-card" href="{{ url_for('android_forensics.index') }}"><span class="ico"></span><span class="meta"><b>Android Forensics</b><small>Acquisition &amp; IOC</small></span></a>
</div>
</div>
<div class="group">
<div class="group-title">OSINT &amp; Simulate</div>
<div class="apps">
<a class="app-card" href="{{ url_for('osint.index') }}"><span class="ico"></span><span class="meta"><b>OSINT</b><small>25,475 indexed sites</small></span></a>
<a class="app-card" href="{{ url_for('ipcapture.index') }}"><span class="ico"></span><span class="meta"><b>IP Capture</b><small>Honey-link</small></span></a>
<a class="app-card" href="{{ url_for('simulate.index') }}"><span class="ico"></span><span class="meta"><b>Simulate</b><small>Attack simulation</small></span></a>
<a class="app-card" href="{{ url_for('simulate.legendary_creator') }}"><span class="ico"></span><span class="meta"><b>Legendary Creator</b><small>Profile builder</small></span></a>
</div>
</div>
<div class="group">
<div class="group-title">Network</div>
<div class="apps">
<a class="app-card" href="{{ url_for('network.index') }}"><span class="ico"></span><span class="meta"><b>Network Security</b><small>8-tab suite</small></span></a>
<a class="app-card" href="{{ url_for('net_mapper.index') }}"><span class="ico"></span><span class="meta"><b>Net Mapper</b><small>Topology</small></span></a>
<a class="app-card" href="{{ url_for('wireshark.index') }}"><span class="ico"></span><span class="meta"><b>Wireshark</b><small>Packet capture</small></span></a>
<a class="app-card" href="{{ url_for('wifi_audit.index') }}"><span class="ico"></span><span class="meta"><b>WiFi Audit</b><small>Wireless scan</small></span></a>
<a class="app-card" href="{{ url_for('deauth.index') }}"><span class="ico"></span><span class="meta"><b>Deauth</b><small>WiFi disruption</small></span></a>
<a class="app-card" href="{{ url_for('pineapple.index') }}"><span class="ico"></span><span class="meta"><b>Pineapple</b><small>Evil twin</small></span></a>
<a class="app-card" href="{{ url_for('mitm_proxy.index') }}"><span class="ico"></span><span class="meta"><b>MITM Proxy</b><small>Intercept</small></span></a>
<a class="app-card" href="{{ url_for('remote_monitor.index') }}"><span class="ico"></span><span class="meta"><b>Remote Monitor</b><small>PIAP devices</small></span></a>
</div>
</div>
<div class="group">
<div class="group-title">Hardware &amp; Mobile</div>
<div class="apps">
<a class="app-card" href="{{ url_for('hardware.index') }}"><span class="ico"></span><span class="meta"><b>Hardware</b><small>ADB / Fastboot / ESP32</small></span></a>
<a class="app-card" href="{{ url_for('android_exploit.index') }}"><span class="ico"></span><span class="meta"><b>Android Exploit</b><small>Recon &amp; payload</small></span></a>
<a class="app-card" href="{{ url_for('android_protect.index') }}"><span class="ico"></span><span class="meta"><b>Android Shield</b><small>Anti-stalkerware</small></span></a>
<a class="app-card" href="{{ url_for('iphone_exploit.index') }}"><span class="ico"></span><span class="meta"><b>iPhone Exploit</b><small>iOS research</small></span></a>
<a class="app-card" href="{{ url_for('sms_forge.index') }}"><span class="ico"></span><span class="meta"><b>SMS Forge</b><small>SMS / RCS</small></span></a>
<a class="app-card" href="{{ url_for('rcs_tools.index') }}"><span class="ico"></span><span class="meta"><b>RCS Tools</b><small>Rich messaging</small></span></a>
<a class="app-card" href="{{ url_for('ble_scanner.index') }}"><span class="ico"></span><span class="meta"><b>BLE Scanner</b><small>Bluetooth LE</small></span></a>
<a class="app-card" href="{{ url_for('rfid_tools.index') }}"><span class="ico"></span><span class="meta"><b>RFID / NFC</b><small>Proximity tools</small></span></a>
<a class="app-card" href="{{ url_for('sdr_tools.index') }}"><span class="ico"></span><span class="meta"><b>SDR Tools</b><small>Software-defined radio</small></span></a>
<a class="app-card" href="{{ url_for('starlink_hack.index') }}"><span class="ico"></span><span class="meta"><b>Starlink</b><small>Satellite research</small></span></a>
<a class="app-card" href="{{ url_for('archon.index') }}"><span class="ico">Λ</span><span class="meta"><b>Archon</b><small>Companion app</small></span></a>
</div>
</div>
<div class="group">
<div class="group-title">System</div>
<div class="apps">
<a class="app-card" href="{{ url_for('settings.index') }}"><span class="ico"></span><span class="meta"><b>Settings</b><small>System config</small></span></a>
<a class="app-card" href="{{ url_for('settings.llm_settings') }}"><span class="ico"></span><span class="meta"><b>LLM Config</b><small>Backend &amp; models</small></span></a>
<a class="app-card" href="{{ url_for('settings.mcp_settings') }}"><span class="ico"></span><span class="meta"><b>MCP Server</b><small>Claude / MCP</small></span></a>
<a class="app-card" href="{{ url_for('settings.deps_index') }}"><span class="ico"></span><span class="meta"><b>Dependencies</b><small>System tools</small></span></a>
<a class="app-card" href="{{ url_for('ssh_manager.index') }}"><span class="ico"></span><span class="meta"><b>SSH / SSHD</b><small>Key management</small></span></a>
<a class="app-card" href="{{ url_for('upnp.index') }}"><span class="ico"></span><span class="meta"><b>UPnP</b><small>Port forwarding</small></span></a>
<a class="app-card" href="{{ url_for('wireguard.index') }}"><span class="ico"></span><span class="meta"><b>WireGuard</b><small>VPN tunnels</small></span></a>
<a class="app-card" href="{{ url_for('dns_service.index') }}"><span class="ico"></span><span class="meta"><b>DNS Server</b><small>Local resolver</small></span></a>
<a class="app-card" href="{{ url_for('report_engine.index') }}"><span class="ico"></span><span class="meta"><b>Reports</b><small>Output engine</small></span></a>
<a class="app-card" href="{{ url_for('module_creator.index') }}"><span class="ico"></span><span class="meta"><b>Module Creator</b><small>Build modules</small></span></a>
<a class="app-card" href="{{ url_for('encmodules.index') }}"><span class="ico"></span><span class="meta"><b>Enc Modules</b><small>Encrypted modules</small></span></a>
<a class="app-card" href="{{ url_for('llm_trainer.index') }}"><span class="ico"></span><span class="meta"><b>LLM Trainer</b><small>Fine-tuning</small></span></a>
<a class="app-card" href="{{ url_for('dashboard.manual') }}"><span class="ico"></span><span class="meta"><b>User Manual</b><small>Docs</small></span></a>
</div>
</div>
</div>
</div>
{% else %}
<div class="login-wrapper">
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
<div class="flash-messages">
{% for category, message in messages %}
<div class="flash flash-{{ category }}">{{ message }}</div>
{% endfor %}
</div>
{% endif %}
{% endwith %}
{% block login_content %}{% endblock %}
</div>
{% endif %}
<script src="{{ url_for('static', filename='js/lib/adb-bundle.js') }}"></script>
<script src="{{ url_for('static', filename='js/lib/fastboot-bundle.js') }}"></script>
<script src="{{ url_for('static', filename='js/lib/esptool-bundle.js') }}"></script>
<script src="{{ url_for('static', filename='js/hardware-direct.js') }}"></script>
<script src="{{ url_for('static', filename='js/app.js') }}"></script>
<script src="{{ url_for('static', filename='js/autarchos.js') }}"></script>
{% if session.get('user') %}
<!-- ── HAL global panel ─────────────────────────────────────── -->
<div id="hal-panel" class="hal-panel" style="display:none">
<div class="hal-header">
<span>● Hal</span>
<label class="hal-mode-switch" title="Toggle Agent mode (tools) vs Direct chat">
<input type="checkbox" id="hal-mode-toggle" onchange="halModeChanged(this)">
<span class="hal-mode-slider"></span>
<span class="hal-mode-label" id="hal-mode-label">Chat</span>
</label>
<button onclick="halToggleFeedback()" id="hal-feedback-btn" class="hal-feedback-btn"
title="Toggle auto-analysis feedback on tool results"
style="font-size:0.6rem;padding:1px 5px;border-radius:3px;border:1px solid var(--accent);color:var(--accent);background:transparent;cursor:pointer">FB</button>
<button onclick="halToggle()" class="hal-close" title="Close"></button>
</div>
<div id="hal-messages" class="hal-messages"></div>
<div class="hal-footer">
<input id="hal-input" type="text" placeholder="Ask Hal..." onkeypress="if(event.key==='Enter')halSend()">
<button onclick="halSend()" class="btn btn-sm btn-primary" id="hal-send-btn">Send</button>
<button onclick="halStop()" class="btn btn-sm" id="hal-stop-btn" title="Stop generation" style="display:none;background:var(--danger,#ff3b30);color:#fff">Stop</button>
<button onclick="halClear()" class="btn btn-sm" title="Clear history"></button>
</div>
</div>
<button id="hal-toggle-btn" class="hal-toggle-btn" onclick="halToggle()">HAL</button>
<!-- ── Debug console ─────────────────────────────────────── -->
<div id="debug-panel" class="debug-panel" style="display:none">
<div class="debug-header" id="debug-drag-handle">
<div style="display:flex;align-items:center;gap:0.5rem">
<span id="debug-live-dot" class="debug-live-dot"></span>
<span style="font-weight:700;letter-spacing:0.08em;font-size:0.8rem">AUTARCH DEBUG</span>
</div>
<div style="display:flex;align-items:center;gap:0.5rem">
<span id="debug-msg-count" style="font-size:0.7rem;color:#666;font-family:monospace">0 msgs</span>
<button class="debug-btn" onclick="debugClear()" title="Clear output"></button>
<button class="debug-btn" onclick="debugClose()" title="Close"></button>
</div>
</div>
<div id="debug-output" class="debug-output"></div>
<div class="debug-controls">
<span style="font-size:0.7rem;color:#555;margin-right:0.5rem;font-weight:600">FILTER:</span>
<label class="debug-check-label"><input type="checkbox" name="dbg-mode" value="warn" checked onchange="debugSetMode(this)"> Warnings &amp; Errors</label>
<label class="debug-check-label"><input type="checkbox" name="dbg-mode" value="verbose" onchange="debugSetMode(this)"> Full Verbose</label>
<label class="debug-check-label"><input type="checkbox" name="dbg-mode" value="debug" onchange="debugSetMode(this)"> Full Debug + Symbols</label>
<label class="debug-check-label"><input type="checkbox" name="dbg-mode" value="output" onchange="debugSetMode(this)"> Output Only</label>
<label class="debug-check-label"><input type="checkbox" name="dbg-mode" value="all" onchange="debugSetMode(this)"> Show Everything</label>
</div>
</div>
<button id="debug-toggle-btn" class="debug-toggle-btn" style="display:none" onclick="debugOpen()" title="Open Debug Console">DBG</button>
{% endif %}
</body>
</html>