% =======================
% Shared body (no preamble)
% Accessibility: keep vector figures, larger sizes set by wrappers
% Wrappers must define:
%   \twocoltrue or \twocolfalse
%   \figureW, \figureH  (for radar plots)
% Packages expected: tikz, pgfplots, booktabs, amsmath, amssymb, mathtools, hyperref, natbib (or ACM/IEEE styles)
% =======================

% --- Short names (public-only; no numeric codes)
\newcommand{\Lrn}{\textbf{Lrn}}   % Learnon — Parametric learning
\newcommand{\Evo}{\textbf{Evo}}   % Evolon — Population adaptation
\newcommand{\Sym}{\textbf{Sym}}   % Symbion — Symbolic inference
\newcommand{\Prb}{\textbf{Prb}}   % Probion — Probabilistic inference
\newcommand{\Sch}{\textbf{Sch}}   % Scholon — Search & planning
\newcommand{\Ctl}{\textbf{Ctl}}   % Controlon — Control & estimation
\newcommand{\Swm}{\textbf{Swm}}   % Swarmon — Collective/swarm
\newcommand{\hyb}[1]{\textsc{#1}} % hybrid spec styling (e.g., \hyb{Lrn+Sch})

%\newcommand{\figureW}{0.95\textwidth}
%\newcommand{\figureH}{0.58\textwidth}


% --- Wide figure helper: figure* in two-column; figure in one-column
\newif\iftwocol
\providecommand{\figureW}{0.95\textwidth}
\providecommand{\figureH}{0.58\textwidth}
\newenvironment{WideFig}{\iftwocol\begin{figure*}\else\begin{figure}\fi}{\iftwocol\end{figure*}\else\end{figure}\fi}
% --- Wide table helper: table* in two-column; table in one-column
\newenvironment{WideTab}{\iftwocol\begin{table*}\else\begin{table}\fi}{\iftwocol\end{table*}\else\end{table}\fi}


% --- TikZ/PGF defaults
\pgfplotsset{compat=1.18}


% --- Radar helper: one polygon with six axes (Rep., Locus, Obj., Data, Time, Human)
\newcommand{\RadarPoly}[7]{%
  % #1 style, #2..#7 = values on axes in order
  \addplot+[#1] coordinates
    {(0,#2) (60,#3) (120,#4) (180,#5) (240,#6) (300,#7) (360,#2)};
}


