texlive[73374] Master: neoschool (8jan25)

commits+karl at tug.org commits+karl at tug.org
Wed Jan 8 22:13:05 CET 2025


Revision: 73374
          https://tug.org/svn/texlive?view=revision&revision=73374
Author:   karl
Date:     2025-01-08 22:13:05 +0100 (Wed, 08 Jan 2025)
Log Message:
-----------
neoschool (8jan25)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/libexec/ctan2tds
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/neoschool/
    trunk/Master/texmf-dist/doc/latex/neoschool/README.md
    trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdf
    trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.tex
    trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.pdf
    trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.tex
    trunk/Master/texmf-dist/tex/latex/neoschool/
    trunk/Master/texmf-dist/tex/latex/neoschool/neoschool.cls
    trunk/Master/tlpkg/tlpsrc/neoschool.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/neoschool/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/neoschool/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/neoschool/README.md	2025-01-08 21:13:05 UTC (rev 73374)
@@ -0,0 +1,13 @@
+README file for neoschool class 1.0.0 [2025/01/04]
+
+neoschool is a document class designed for secondary school teachers. Features pre-configured templates, color themes, and specialized environments for educational documents. Simplifies LaTeX usage in education through integration of common packages and multilingual support.
+
+Copyright 2025 Razik Ikhlef
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+  http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.


Property changes on: trunk/Master/texmf-dist/doc/latex/neoschool/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdf	2025-01-08 21:11:53 UTC (rev 73373)
+++ trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdf	2025-01-08 21:13:05 UTC (rev 73374)

Property changes on: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.tex	2025-01-08 21:13:05 UTC (rev 73374)
@@ -0,0 +1,1398 @@
+\documentclass[
+    french,
+    margin=2cm
+]{neoschool}
+
+\title{La classe \texttt{neoschool}}
+\author{Version : 1.0.0 \quad\textemdash{}\quad Auteur : Razik Ikhlef}
+\date{04/01/2025}
+
+\begin{document}
+
+\maketitle
+
+La classe \texttt{neoschool} propose aux enseignants du secondaire un
+ensemble d'outils pour concevoir leurs documents pédagogiques (évaluations,
+supports de cours, fiches d'exercices avec leur correction, etc). Pour répondre
+aux différents besoins, elle propose huit thèmes de couleurs prédéfinis, des
+options de classe variées pour la mise en page et la typographie, des
+environnements spécialisés, des commandes dédiées et différents styles
+d'en-têtes préformatés pour chaque type de document. Elle intègre plusieurs
+dizaines d'extensions LaTeX couramment utilisées (voir la liste ci-dessous), ce
+qui allège considérablement le préambule et évite autant que possible les
+incompatibilités. Multilingue, elle prend en charge le français, l'anglais et
+l'allemand.
+
+\tableofcontents
+
+\section{Extensions chargées}
+
+Les extensions suivantes sont automatiquement chargées par la classe \texttt{neoschool}.
+
+\texttt{adforn}, \texttt{adjustbox}, \texttt{algpseudocode}, \texttt{amssymb}, \texttt{babel}, \texttt{bookmark}, \texttt{calc}, \texttt{changespace}, \texttt{cuted}, \texttt{environ}, \texttt{fancyvrb}, \texttt{fontawesome5}, \texttt{forest}, \texttt{iftex}, \texttt{ifthen}, \texttt{kvoptions}, \texttt{lastpage}, \texttt{marginnote}, \texttt{microtype}, \texttt{mismath} (qui charge \texttt{mathtools}), \texttt{multicol}, \texttt{needspace}, \texttt{pdftexcmds}, \texttt{pgffor}, \texttt{pgfplots}, \texttt{qrcode}, \texttt{scrlayer-scrpage}, \texttt{silence}, \texttt{siunitx}, \texttt{tabularray}, \texttt{tasks}, \texttt{tcolorbox} (avec l'option \texttt{most} qui charge les extensions \texttt{listings} et \texttt{minted}), \texttt{textcase}, \texttt{tikz}, \texttt{tikzpagenodes}, \texttt{tikzsymbols}, \texttt{ulem} (avec l'option \texttt{normalem}), \texttt{xcolor} (avec les options \texttt{table}, \texttt{svgnames}, \texttt{dvipsnames} et \texttt{x11names}), \texttt{xhfill}, \texttt{xkeyval}, \texttt{xsim} (avec les options \texttt{use-files} et \texttt{clear-aux}), \texttt{xstring}.
+
+La compilation en \texttt{pdflatex} charge les extensions \texttt{fonttenc} (avec l'option \texttt{T1}), \texttt{inputenc} (avec l'option \texttt{utf8}), \texttt{newpxtext} et \texttt{newpxmath}. La compilation en \texttt{lualatex} rend disponible les extensions \texttt{fontspec}, \texttt{luacas}, \texttt{lua-ul}, \texttt{luacolor} et applique les polices \texttt{TeX Gyre PagellaX} et \texttt{TeX Gyre Heros} en plus de \texttt{newpxmath}.
+
+L'options \texttt{graphics} charge les extensions \texttt{graphicx} et \texttt{wrapfig}, l'option \texttt{draft} les extensions \texttt{blindtext} et \texttt{lipsum} et l'option \texttt{mathastext} l'extension \texttt{mathastext}.
+
+L'option \texttt{math} charge les extensions \texttt{annotate-equations}, \texttt{bm}, \texttt{cancel}, \texttt{mathrsfs}, \texttt{nncomma}, \texttt{numprint}, \texttt{tdsfrmath} (avec les options \texttt{suite} et \texttt{taupe}), \texttt{tkz-euclide}, \texttt{witharrows} et \texttt{xlop}.
+
+L'option \texttt{notes} permet d'afficher des notes encadrées et à fond coloré dans les marges gauche et droite, de façon alternée. Elle charge l'extension \texttt{todonotes}.
+
+L'option \texttt{apmep}, qui permet de compiler directement les sujets d'annales de l'association du même nom, définit une ensemble de commandes mathématiques et charge les extensions \texttt{esvect}, \texttt{fourier-ons}, \texttt{numprint} (avec l'option \texttt{np}), \texttt{pstricks} (et de nombreux paquets de l'écosystème \texttt{pstricks}), \texttt{tabularx} et \texttt{textcomp}.
+
+L'option \texttt{mathics} permet de faire du calcul formel via \texttt{mathics} (version libre de \texttt{mathematica}) et charge les extensions \texttt{asymptote} et \texttt{latexalpha2}.
+
+\section{Options de configuration}
+
+\subsection{Langue}
+
+\begin{itemize}
+\item
+  \textbf{english, french, german} : active les traductions et
+  conventions liées à chaque langue. Ces options affectent les intitulés des théorèmes et environnements, la typographie et les conventions mathématiques.
+\item
+  \textbf{nofrenchlist} : désactive le style français des listes (remet
+  des points à la place des tirets).
+\item
+  \textbf{frenchlistaspar} : traite les listes comme des paragraphes en
+  français.
+\item
+  \textbf{frenchmath} : applique les conventions mathématiques
+  françaises (majuscules et lettres grecques droites).
+\end{itemize}
+
+\subsection{Apparence globale}
+
+\subsubsection{Thèmes prédéfinis}
+
+L'option \textbf{theme} = \texttt{nom-du-theme} définit
+le thème de couleurs du document. Les thèmes disponibles sont : \texttt{cyprus}, \texttt{kassio}, \texttt{frost}, \texttt{spring}, \texttt{arbutus}, \texttt{duo}, \texttt{navy}, \texttt{royal}. La plupart d'entre eux sont inspirés des \textit{ef-themes} pour \textit{emacs} de Protesilaos Stavrou.
+
+\subsubsection{Modes de couleur}
+
+\begin{itemize}
+\item \textbf{normal} : utilise des couleurs différentes pour chaque type
+  d'environnement.
+\item \textbf{unicolor} : utilise une couleur unique pour tous les
+  environnements :
+  \begin{itemize}
+  \item la couleur du titre est utilisée comme base ;
+  \item les variations sont obtenues par transparence.
+  \end{itemize}
+\item \textbf{print} : convertit toutes les couleurs en noir pour
+  l'impression.
+\item \textbf{gradientheadpalette} : utilise un dégradé de la couleur du titre pour les autres titres (sections, sous-sections, titre de théorèmes,  etc.).
+\end{itemize}
+
+\subsubsection{Personnalisation des couleurs}
+
+\begin{itemize}
+\item \textbf{globalcolor} = \texttt{couleur} : définit la
+  couleur du texte.
+\item \textbf{titlecolor} = \texttt{couleur} ou \textbf{titlehexcolor} = \texttt{code hex} : définit la
+  couleur du titre.
+\item \textbf{headcolor} = \texttt{couleur} : définit la
+  couleur des en-têtes de section.
+\item \textbf{subcolor} = \texttt{couleur} : définit la
+  couleur des sous-sections.
+\item \textbf{subsubcolor} = \texttt{couleur} : définit la
+  couleur des sous-sous-sections.
+\item \textbf{headfootcolor} = \texttt{couleur} : définit
+  la couleur des en-têtes et pieds de page.
+\end{itemize}
+
+\subsubsection{Options d'affichage}
+
+\begin{itemize}
+\item \textbf{noframe} : supprime les cadres des environnements.
+\item \textbf{noback} : supprime les fonds colorés.
+\item \textbf{nocodeframe} : supprime les cadres des blocs de code.
+\item \textbf{scale} : harmonise les dimensions des polices en \texttt{lualatex}.
+\end{itemize}
+
+\subsection{Personnalisation du résumé}
+
+L'option \texttt{abstracttitle} permet de personnaliser
+le titre de l'environnement \texttt{abstract} :
+
+\begin{code}{latex}
+% Dans le préambule
+\documentclass[abstracttitle=Résumé]{neoschool}
+
+% Dans le document
+\begin{abstract}
+    Contenu du résumé...
+\end{abstract}
+\end{code}
+
+\subsection{Typographie}
+
+\begin{itemize}
+\item \textbf{sfbody} : active la police sans empattements pour le corps du
+  texte.
+\item \textbf{sfall} : active la police sans empattements pour tout le
+  document.
+\item \textbf{mathastext} : utilise la police de texte pour les
+  mathématiques.
+\item \textbf{mainface} = \texttt{police} : police
+  principale du document.
+\item \textbf{mainfaceoptions} = \texttt{options} : options
+  de la police principale.
+\item \textbf{sansface} = \texttt{police} : police sans
+  empattements.
+\item \textbf{sansfaceoptions} = \texttt{options} : options
+  de la police sans empattements.
+\item \textbf{monoface} = \texttt{police} : police à chasse
+  fixe.
+\item \textbf{monofaceoptions} = \texttt{options} : options
+  de la police à chasse fixe.
+\item \textbf{mathface} = \texttt{police} : police
+  mathématique.
+\item \textbf{mathfaceoptions} = \texttt{options} : options
+  de la police mathématique (uniquement en \texttt{pdflatex}).
+\item \textbf{facefamily} = \texttt{famille} : famille de
+  polices complète.
+\item \textbf{facefamilyoptions} = \texttt{options} :
+  options de la famille de polices.
+\end{itemize}
+
+\subsection{Mise en page}
+
+\subsubsection{Marges et espacement}
+
+\begin{itemize}
+\item \textbf{margin} = \texttt{longueur} : définit la
+  largeur des marges horizontales (2,5 cm par défaut) ; les marges verticales s'adaptent en conséquence.
+\item \textbf{notes} = \texttt{longueur} : active les \textit{todonotes}
+  dans les marges et définit leur largeur.
+\item \textbf{noindent} : supprime l'indentation des paragraphes.
+\item \textbf{indent} = \texttt{longueur} : définit la
+  largeur de l'indentation (1 em par défaut).
+\item \textbf{compact} :
+  \begin{itemize}
+  \item réduit l'espacement entre les paragraphes ;
+  \item diminue les marges des environnements ;
+  \item compresse l'interligne.
+  \end{itemize}
+\end{itemize}
+
+\subsubsection{Options de sortie}
+
+\begin{itemize}
+\item \textbf{2a5toa4} : affiche deux fois la même page A5 sur une page A4 en mode paysage.
+\item \textbf{2a4toa3} : affiche deux fois la même page A4 sur une page A3 en mode paysage.
+\item \textbf{4a5toa3} : affiche quatre fois la même page A5 sur une page A3.
+\item \textbf{2toa3} : affiche deux pages A4 quelconques sur une page A3 en mode paysage.
+\item \textbf{bookleta5} : génère un livret en A5 (quatre pages par feuille A4).
+\item \textbf{bookleta4} : génère un livret en A4 (quatre pages par feuille A3).
+\end{itemize}
+
+\subsubsection{En-têtes et pieds de page}
+
+\begin{itemize}
+
+\item
+  \textbf{fullheader} : active l'en-tête et le pied de page complets.
+  \begin{itemize}
+  \item En-tête : type de document à gauche, titre au centre et niveau de classe à
+    droite.
+  \item Pied de page : date à gauche, établissement au centre et pagination
+    à droite.
+  \end{itemize}
+\item \textbf{headrule} : ajoute un filet sous l'en-tête.
+\item \textbf{footrule} : ajoute un filet au-dessus du pied de page.
+\item \textbf{headfootrule} : active les deux filets.
+\end{itemize}
+
+\section{Styles de document}
+
+\subsection{Styles de titre}
+
+\subsubsection{Styles d'examen}
+
+\begin{itemize}
+
+\item \textbf{exam} : style complet pour examens avec en-tête détaillé.
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[exam]{neoschool}
+
+\neoheader{
+    type = Devoir surveillé,
+    school = Lycée Poincarré,
+    level = Terminale,
+    duration = 2h,
+    calculator = true  % ou false ou exam
+}
+\end{code}
+
+\begin{itemize}
+
+\item \textbf{shortexam} : style compact pour examens avec en-tête simplifié.
+\item \textbf{mockexam} : style pour épreuves type baccalauréat ou brevet blancs
+  avec page de garde normalisée.
+\end{itemize}
+
+\subsubsection{Styles d'évaluation}
+
+\begin{itemize}
+
+\item \textbf{eval} : style standard pour évaluations.
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[eval]{neoschool}
+
+\neoheader{
+    type = Contrôle,
+    school = Collège Alan Turing,
+    level = Quatrième
+}
+\end{code}
+
+\begin{itemize}
+\item \textbf{evalicons} : ajoute des icônes à l'en-têtes \texttt{evel}.
+\item \textbf{evalgrade} : ajoute un bandeau de notation.
+\item \textbf{evaliconsgrade} : style complet avec icônes et notation.
+\item \textbf{shorteval} : style compact pour évaluations.
+\end{itemize}
+
+\subsubsection{Styles avec bulles}
+
+\begin{itemize}
+\item \textbf{bubbles} : style avec fond à bulles colorées.
+\item \textbf{shortbubbles} : version compacte du style bulles.
+\end{itemize}
+
+\subsubsection{Autres styles de titre}
+
+\begin{itemize}
+\item \textbf{titleornament} : ajoute des ornements en-dessous du titre.
+\item \textbf{titlerule} : ajoute un filet sous le titre.
+\item \textbf{titlemidrule} : ajoute un filet central sous le titre.
+\item \textbf{titlefullrule} : ajoute un filet en pleine largeur sous le titre.
+\item \textbf{fancybox} : titre avec boîte grise élégante.
+\item \textbf{onlytitleleft} : affiche uniquement le titre, aligné à gauche.
+\item \textbf{onlytitle} : affiche uniquement le titre, centré.
+\item \textbf{onlytitleright} : affiche uniquement titre, aligné à droite.
+\item \textbf{shorttitle} : style de titre compact.
+\item \textbf{shortlesson} : style compact pour les leçons.
+\end{itemize}
+
+\subsection{Configuration de l'en-tête}
+
+L'en-tête du document peut être configuré avec la commande
+\texttt{\textbackslash neoheader} :
+
+\begin{code}{latex}
+\neoheader{
+    type = {Type de document},
+    school = {Nom de l'établissement},
+    academy = {Nom de l'académie},
+    level = {Niveau de classe},
+    duration = {Durée},
+    calculator = {true/false/exam},
+    leftcontent = {\faIcon{...}},
+    rightcontent = {\faIcon{...}},
+}
+\end{code}
+
+\subsection{Options de formatage des titres}
+
+\subsubsection{Styles globaux}
+
+\begin{itemize}
+\item \textbf{headstyle} = \texttt{style} : style de police
+  pour tous les en-têtes (\texttt{sffamily} par défaut).
+  \begin{itemize}
+  \item Sections, sous-sections, etc.
+  \item En-têtes de théorèmes et exercices.
+  \end{itemize}
+\begin{code}{latex}
+\documentclass[headstyle=rmfamily]{neoschool}
+\end{code}
+\item \textbf{headweight} = \texttt{graisse} : graisse pour
+  tous les en-têtes (\texttt{bfseries} par défaut).
+\begin{code}{latex}
+\documentclass[
+  headstyle=sffamily,
+  headweight=mdseries
+]{neoschool}
+\end{code}
+\item \textbf{headshape} = \texttt{forme} : forme pour tous
+  les en-têtes (\texttt{scshape} par défaut).
+\begin{code}{latex}
+\documentclass[
+  headstyle=sffamily,
+  headshape=upshape
+]{neoschool}
+\end{code}
+\end{itemize}
+
+\subsubsection{Style du titre principal}
+
+\begin{itemize}
+\item \textbf{titlestyle} = \texttt{style} : style pour le
+  titre principal (hérite de \texttt{headstyle}).
+\item \textbf{titleweight} = \texttt{graisse} : graisse du
+  titre principal (hérite de \texttt{headweight}).
+\item \textbf{titleshape} = \texttt{forme} : forme du titre
+  principal (\texttt{upshape} par défaut).
+\item \textbf{titlealign} = \texttt{alignement} :
+  alignement du titre (\texttt{center} par défaut).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+    titlestyle=sffamily,
+    titleweight=bfseries,
+    titleshape=upshape,
+    titlealign=left
+]{neoschool}
+\end{code}
+
+\subsubsection{Style des sections}
+
+\begin{itemize}
+\item \textbf{sectionnumstyle} = \texttt{style} : style de
+  numérotation.
+  \begin{itemize}
+  \item \texttt{circle} : numéro encerclé.
+  \item \texttt{box} : numéro encadré.
+  \item \texttt{dash} : tiret après le numéro.
+  \item \texttt{plain} : numéro simple.
+  \end{itemize}
+\item \textbf{sectiontextstyle} = \texttt{style} : style du
+  texte.
+  \begin{itemize}
+  \item \texttt{sc} : petites capitales.
+  \item \texttt{upper} : majuscules.
+  \item \texttt{lower} : minuscules.
+  \end{itemize}
+\item \textbf{sectionstyle} = \texttt{style} : style global
+  de la section.
+  \begin{itemize}
+  \item \texttt{ornaments} : avec ornements décoratifs.
+  \item \texttt{underline} : souligné.
+  \item \texttt{normal} : style simple.
+  \item \texttt{highlighted} : avec surlignage.
+  \item \texttt{shadedline} : avec ligne ombrée.
+  \end{itemize}
+\item \textbf{sectionalign} = \texttt{alignement} :
+  alignement des sections.
+  \begin{itemize}
+  \item \texttt{left} : à gauche.
+  \item \texttt{center} : centré
+  \item \texttt{right} : à droite.
+  \end{itemize}
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+    sectionnumstyle=circle,
+    sectiontextstyle=upper,
+    sectionstyle=highlighted,
+    sectionalign=left
+]{neoschool}
+\end{code}
+
+\subsubsection{Style des en-têtes/pieds de page}
+
+\begin{itemize}
+\item \textbf{headfootstyle} = \texttt{style} : style des
+  en-têtes/pieds de page (basé sur \texttt{headstyle}).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[headfootstyle=sffamily]{neoschool}
+\end{code}
+
+\subsubsection{Exemple complet de configuration}
+
+\begin{code}{latex}
+\documentclass[
+    % Style global
+    headstyle=sffamily,
+    headweight=bfseries,
+    headshape=scshape,
+    
+    % Titre principal
+    titlestyle=sffamily,
+    titleweight=bfseries,
+    titleshape=upshape,
+    titlealign=center,
+    
+    % Sections
+    sectionnumstyle=circle,
+    sectiontextstyle=upper,
+    sectionstyle=highlighted,
+    sectionalign=left,
+    
+    % En-têtes/pieds de page
+    headfootstyle=sffamily
+]{neoschool}
+\end{code}
+
+\section{Disposition des contenus}
+
+\subsection{Positionnement absolu d'objets}
+
+La commande \texttt{\textbackslash positionobject} permet de placer
+précisément un élément sur la page :
+
+\begin{code}{latex}
+% Syntaxe
+\positionobject{x-shift}{y-shift}{scale}{contenu}
+
+\begin{itemize}
+\item \texttt{x-shift} : décalage horizontal depuis le coin
+  supérieur gauche.
+\item \texttt{y-shift} : décalage vertical depuis le coin
+  supérieur gauche.
+\item \texttt{scale} : facteur d'échelle pour le contenu.
+\item \texttt{contenu} : élément à positionner (image,
+  texte, etc.).
+\end{itemize}
+
+% Exemple : Image en haut à droite
+\positionobject{15cm}{1cm}{0.5}{\includegraphics{logo.png}}
+
+% Exemple : Texte en bas de page
+\positionobject{2cm}{25cm}{1}{Note de bas de page spéciale}
+\end{code}
+
+\subsection{Mise en page à deux colonnes}
+
+La commande \textbf{\textbackslash splitcontent} permet de diviser le
+contenu horizontalement :
+
+\begin{code}{latex}
+% Syntaxe : \splitcontent[largeur1][espace]{contenu1}{contenu2}
+
+% Exemple avec valeurs personnalisées
+\splitcontent[0.6][0.05]{
+    Cette partie occupe 60 %
+    de la largeur totale
+}{
+    Cette partie occupe 35 %
+    (5 % d'espace entre les deux)
+}
+
+% Exemple avec valeurs par défaut (50 % / 50 %)
+\splitcontent{
+    Première colonne
+}{
+    Seconde colonne
+}
+\end{code}
+
+\subsection{Environnements côte à côte}
+
+L'environnement \texttt{sidebyside} permet de créer des
+boîtes à deux colonnes avec des styles cohérents :
+
+\begin{code}{latex}
+\begin{sidebyside}[options]
+    % Contenu gauche
+    \tcblower
+    % Contenu droit
+\end{sidebyside}
+\end{code}
+
+Les options sont celles de \texttt{tcolorbox}.
+
+\begin{code}{latex}
+\begin{sidebyside}[
+    title=Comparaison,
+    colback=exampleColor!5,
+    colbacklower=exampleColor!10
+]
+    Première version
+    \tcblower
+    Version améliorée
+\end{sidebyside}
+\end{code}
+
+\subsection{Association texte et image}
+
+La commande \textbf{\textbackslash textwithimage} combine texte et image~:
+
+\begin{code}{latex}
+% Syntaxe : \textwithimage[*]{largeur_image}{échelle_image}{texte}{chemin_image}
+% L'étoile (*) inverse la position de l'image (droite par défaut)
+
+% Image à droite (30 % de la largeur)
+\textwithimage{0.3}{0.95}{
+    Ce texte décrit l'image ci-contre...
+}{images/figure.png}
+
+% Image à gauche (40 % de la largeur)
+\textwithimage*{0.4}{0.9}{
+    Description à droite de l'image...
+}{images/schema.png}
+\end{code}
+
+\subsection{QR codes et contenus}
+
+La commande \textbf{\textbackslash withqrcode} intègre un QR code avec
+du contenu associé :
+
+\begin{code}{latex}
+% Syntaxe : \withqrcode[*][taille]{url}{contenu}
+% L'étoile (*) place le QR code à droite (gauche par défaut)
+
+% QR code à gauche (2 cm par défaut)
+\withqrcode{https://example.com}{
+    Scanner pour plus d'informations
+}
+
+% QR code de 3cm à droite
+\withqrcode*[3cm]{https://exercises.com}{
+    Accéder aux exercices en ligne
+}
+\end{code}
+
+\subsection{Grilles et papiers}
+
+\subsubsection{Grilles personnalisables}
+
+\begin{itemize}
+\item \textbf{\textbackslash grid} : grille à petits carreaux.
+\end{itemize}
+
+\begin{code}{latex}
+\grid[blue]{10cm}{5cm}  % Grille bleue de 10 x 5 cm
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash customgrid} : grille avec espacement.
+  personnalisé
+\end{itemize}
+
+\begin{code}{latex}
+\customgrid[red][4mm][4mm]{12cm}{8cm}  % Grille rouge, mailles de 4 mm
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash frenchgrid} : grille à grands carreaux de type Seyès.
+\end{itemize}
+
+\begin{code}{latex}
+\frenchgrid{15cm}{10cm}  % Grille de type cahier français
+\end{code}
+
+\subsubsection{Pages entières}
+
+\begin{itemize}
+\item \textbf{\textbackslash notebook} : page de type cahier avec lignes horizontales et
+  marge rouge.
+\end{itemize}
+
+\begin{code}{latex}
+\notebook  % Active le style cahier ligné
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash nbminorgrid} : page entièrement recouverte de petits carreaux.
+\end{itemize}
+
+\begin{code}{latex}
+\nbminorgrid  % Active le quadrillage fin
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash nbmajorgrid} : page entièrement recouverte de grands carreaux.
+\end{itemize}
+
+\begin{code}{latex}
+\nbmajorgrid  % Active le quadrillage Seyès
+\end{code}
+
+\subsection{Boîtes simples}
+
+L'environnement \texttt{neobox} permet de créer rapidement des boîtes simples. Il existe en deux variantes : \texttt{neobox} avec cadre et \texttt{neobox*} sans cadre visible :
+
+\begin{code}{latex}
+% Boîte standard
+\begin{neobox}[colframe=blue,colback=blue!5]
+    Texte dans une boîte...
+\end{neobox}
+
+% Boîte sans cadre avec fond coloré
+\begin{neobox*}[colback=gray!10]
+    Texte sur fond gris...
+\end{neobox*}
+\end{code}
+
+\section{Exercices}
+
+\subsection{Exercices et évaluations}
+
+\subsubsection{Configuration des exercices}
+
+L'environnement \texttt{exercise} accepte les options
+suivantes.
+
+\begin{itemize}
+\item \textbf{points} = \texttt{nombre} : nombre de points
+  de l'exercice.
+\item \textbf{level} = \texttt{nombre} : niveau de
+  difficulté (affiché sous forme d'étoiles).
+\item \textbf{subtitle} = \texttt{texte} : sous-titre ou
+  description de l'exercice.
+\item \textbf{icon} = \texttt{icône} : icône personnalisée
+  (utilise la bibliothèque d'icônes \textit{Font Awesome}).
+\item \textbf{topic} = \texttt{thème} : thème ou chapitre
+  concerné.
+\item \textbf{subject} = \texttt{matière} : matière
+  concernée.
+\item \textbf{ID} = \texttt{identifiant} : identifiant
+  unique pour référencement.
+\item \textbf{template} = \texttt{style} : style
+  d'affichage spécifique pour cet exercice.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[
+    points=4,
+    level=2,
+    subtitle=Dérivation,
+    icon=\faPencil,
+    topic=Analyse,
+    subject=Mathématiques,
+    ID=der01,
+    template=elegant-box
+]
+    Calculer la dérivée de la fonction $f$ définie sur $]0 ; +\infty[$
+    par $f(x)=x^2\ln(x)$.
+\end{exercise}
+
+L'environnement \texttt{solution} doit immédiatement suivre l'environnement \texttt{exercise} correspondant. La correction des exercices ne s'affiche pas par défaut.
+
+\begin{solution}
+    On utilise la formule du produit...
+\end{solution}
+
+% Pour référencer l'exercice ailleurs :
+Comme vu dans l'exercice~\exercisenumber{der01}.
+\end{code}
+
+\subsubsection{Options globales}
+
+\begin{itemize}
+\item \textbf{exerciseicons} : active les icônes pour tous les exercices.
+\item \textbf{answers} : affiche automatiquement toutes les corrections des exercices.
+\item \textbf{shuffle} : mélange les choix de réponse dans les QCM.
+\item \textbf{sectionthmcounter} : numérote les exercices par section.
+\item \textbf{sharedexcounter} : partage le compteur avec les théorèmes.
+\end{itemize}
+
+\subsubsection{Templates d'exercices}
+
+La classe offre de nombreux styles prédéfinis pour les exercices.
+
+\begin{itemize}
+\item \textbf{box} : boîte standard avec bordure et titre.
+\item \textbf{elegant-box} : boîte avec barre latérale colorée.
+\item \textbf{shaded-box} : boîte avec ombrage et titre en bannière.
+\item \textbf{slanted-box} : boîte avec titre en bandeau incliné.
+\item \textbf{sober-box} : boîte minimaliste avec titre en couleur.
+\item \textbf{classic-box} : boîte classique avec titre en bandeau.
+\item \textbf{classy-box} : boîte sophistiquée avec titre décoratif.
+\item \textbf{rect-box} : boîte rectangulaire simple.
+\item \textbf{rect-box-outlined} : boîte rectangulaire avec contour.
+\item \textbf{num-box} : boîte numérotée compacte.
+\item \textbf{num-box-outlined} : boîte numérotée avec contour.
+\item \textbf{ex-num-box} : boîte ``Ex.'' numérotée.
+\item \textbf{ex-num-box-outlined} : boîte ``Ex.'' numérotée avec contour.
+\item \textbf{box-hrule} : boîte avec règle horizontale.
+\item \textbf{box-hrule-out} : boîte avec règle horizontale et contour.
+\item \textbf{box-hrule-in} : boîte avec règle horizontale intérieure.
+\item \textbf{boxed} : simple boîte avec titre.
+\item \textbf{boxed-out} : boîte avec contour et titre.
+\item \textbf{inline} : texte en ligne avec titre.
+\item \textbf{section} : titre de type section.
+\item \textbf{subsection} : titre de type sous-section.
+\item \textbf{terminal} : style console avec icône terminal.
+\item \textbf{block} : style minimaliste.
+\item \textbf{hrule} : avec règle horizontale.
+\end{itemize}
+
+Pour définir un template pour tout le document, il suffit d'utiliser la commande \texttt{\textbackslash xsimsetup} dans la préambule :
+
+\begin{code}{latex}
+\xsimsetup{
+    exercise/template = elegant-box,    % template des exercices
+    solution/template = sol-box         % template des solutions
+}
+\end{code}
+
+\subsubsection{QCM et choix multiples}
+
+\begin{itemize}
+\item \textbf{choices} : pour les QCM à réponse unique.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[points=2,ID=qcm01]
+    Quelle est la dérivée de $e^x$ ?
+    \begin{choices}
+        \choice $x e^x$
+        \choice[\correct] $e^x$
+        \choice $e^{x-1}$
+        \choice $\ln(x)$
+    \end{choices}
+\end{exercise}
+\end{code}
+
+\begin{itemize}
+
+\item
+  \textbf{checkboxes} : pour les QCM à réponses multiples.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[points=3,ID=qcm02]
+    Parmi ces nombres, lesquels sont premiers ?
+    \begin{checkboxes}
+        \checkbox[\correct*] 2
+        \checkbox[\correct*] 3
+        \checkbox 4
+        \checkbox[\correct*] 5
+    \end{checkboxes}
+\end{exercise}
+\end{code}
+
+\section{Environnements mathématiques}
+
+\subsection{Styles de théorèmes}
+
+Les styles suivants sont disponibles pour tous les environnements de
+type théorème : \textbf{amslikethm} (style minimaliste), \textbf{boxedthm}, \textbf{classicthm}, \textbf{classythm}, \textbf{elegantthm}, \textbf{shadedthm}, \textbf{slantedthm}, \textbf{soberthm}.
+
+Options communes :
+
+\begin{itemize}
+\item \textbf{title} = \texttt{texte} : titre du théorème.
+\item \textbf{label} = \texttt{nom} : étiquette pour
+  référencement.
+\item \textbf{colback} = \texttt{couleur} : couleur de fond.
+\item \textbf{colframe} = \texttt{couleur} : couleur du
+  cadre.
+\item \textbf{coltitle} = \texttt{couleur} : couleur du
+  titre.
+\item \textbf{fonttitle} = \texttt{commandes} : style du
+  titre.
+\end{itemize}
+
+\subsection{Options de numérotation}
+
+\begin{itemize}
+\item \textbf{sectionthmcounter} : compteurs relatifs à chaque section.
+\item \textbf{sharedthmcounter} : compteur partagé entre tous les
+  environnements.
+\item \textbf{theoremgroup} : regroupe certains environnements de théorèmes.
+\item \textbf{thmgroupcounter} : active un compteur pour les groupes.
+\end{itemize}
+
+\subsection{Environnements mathématiques}
+
+\begin{itemize}
+\item \textbf{theorem} : pour les théorèmes.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{theorem}[title=Théorème de Pythagore,label=pyth]
+    Dans un triangle rectangle, le carré de
+    l'hypoténuse est égal à la somme des carrés
+    des deux autres côtés.
+\end{theorem}
+
+% Référencement :
+D'après le théorème~\ref{thm:pyth}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{lemma} : pour les lemmes.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{lemma}[title=Lemme préparatoire,label=prep]
+    Contenu du lemme...
+\end{lemma}
+
+% Référencement :
+Selon le lemme~\ref{lem:prep}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{corollary} : pour les corollaires.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{corollary}[
+    title=Réciproque de Pythagore,
+    label=pythrecip
+]
+    Si $a^2 + b^2 = c^2$, alors le triangle est
+    rectangle en $A$.
+\end{corollary}
+
+% Référencement :
+Selon le corollaire~\ref{cor:pythrecip}
+\end{code}
+
+\begin{itemize}
+\item \textbf{proposition} : pour les propositions (\textbf{propo} pour le
+  référencement).
+\item \textbf{property} : pour les propriétés (\textbf{prop} pour le
+  référencement).
+\item \textbf{definition} : pour les définitions (\textbf{def} pour le
+  référencement).
+\item \textbf{method} : pour les méthodes (\textbf{meth} pour le
+  référencement).
+\item \textbf{activity} : pour les activités (\textbf{act} pour le
+  référencement).
+\item \textbf{application} : pour les applications (\textbf{appl} pour le
+  référencement).
+\item \textbf{remark} : pour les remarques.
+\item \textbf{remarks} : pour une série de remarques.
+\item \textbf{example} : pour les exemples.
+\item \textbf{examples} : pour une série d'exemples.
+\end{itemize}
+
+\section{Code informatique}
+
+La classe \texttt{neoschool} propose deux options pour la
+gestion du code.
+
+\begin{itemize}
+\item \textbf{listings} (par défaut) : utilise l'extension \texttt{listings}.
+\item \textbf{minted} : utilise l'extension \texttt{minted} (qui nécessite le langage \textit{Python} et sa bibliothèque
+  \texttt{Pygments}).
+\end{itemize}
+
+\subsection{Option listings}
+
+\subsubsection{Styles de code disponibles}
+
+\begin{itemize}
+\item \textbf{lststyle} = \texttt{style} : style de
+  coloration.
+  \begin{itemize}
+  \item \texttt{colorful} : coloration complète (par défaut).
+  \item \texttt{minimal} : style minimaliste.
+  \item \texttt{academic} : style ``académique'' avec numéros de ligne.
+  \item \texttt{modern} : style ``moderne'' avec fond coloré.
+  \end{itemize}
+\end{itemize}
+
+\subsubsection{Boîtes de code personnalisées}
+
+La classe définit l'environnement \texttt{code} dont la structure est la suivante :
+
+\begin{lstlisting}[style=latex]
+\begin{code}[options]{langage}[titre][style-boite]
+    code source...
+\end{code}
+\end{lstlisting}
+
+Styles de boîtes : \textbf{box-minimal}, \textbf{box-fancy}, \textbf{box-classic}, \textbf{box-elegant}, \textbf{box-diagonal}, \textbf{box-bevel}, \textbf{box-corner}, \textbf{box-rounded}, \textbf{box-downhill}, \textbf{box-bottomtitle}, \textbf{box-bottomtitlef}.
+
+\begin{lstlisting}[language=TeX]
+\begin{code}[numbers=left]{python}[Exemple de fonction][box-fancy]
+def hello(name):
+    print(f"Hello, {name}!")
+\end{code}
+\end{lstlisting}
+
+\subsubsection{Langages et styles préconfigurés}
+
+\begin{itemize}
+\item Python
+\item Java
+\item C++
+\item JavaScript
+\item SQL
+\item LaTeX
+\item Bash
+\item Assembly
+\item Lisp
+\item JSON
+\item YAML
+\item TOML
+\item CSV
+\item Markdown
+\end{itemize}
+
+\subsubsection{Commandes additionnelles}
+
+\begin{itemize}
+\item \textbf{\textbackslash codeinline} : code en ligne.
+\end{itemize}
+
+\begin{code}{latex}
+\codeinline[python]{print("Hello")}
+\end{code}
+
+\begin{itemize}
+
+\item \textbf{\textbackslash codeinput} : code chargé depuis un fichier.
+\end{itemize}
+
+\begin{code}{latex}
+\codeinput[options]{langage}{fichier.py}[titre][style-boite]
+\end{code}
+
+\subsection{Option minted}
+
+Lorsque l'option \textbf{minted} est activée, les environnements de code utilisent \texttt{Pygments} pour la coloration
+syntaxique. L'environnement \texttt{code} est également disponible avec l'option \texttt{minted}, avec la même syntaxe :
+
+\begin{lstlisting}[language=TeX]
+\usemintedstyle{tango}
+\begin{code}[linenos,highlightlines={2,3}]{python}[Fonction][box-fancy]
+def greet(name):
+    message = f"Hello, {name}!"
+    print(message)
+    return message
+\end{code}
+\end{lstlisting}
+
+\section{Notes et annotations}
+
+\subsection{Notes marginales}
+
+Les notes peuvent être placées dans la marge avec différentes options :
+
+\begin{itemize}
+\item \textbf{\textbackslash tdnote} : notes colorées et encadrées dans la
+  marge, alternant entre gauche et droite.
+\end{itemize}
+
+\begin{code}{latex}
+\tdnote{Point important à retenir}
+\tdnote[backgroundcolor=blue!5]{Note avec fond bleu clair}
+\end{code}
+
+\begin{itemize}
+\item \textbf{\textbackslash boxnote/\textbackslash tdmark} : l'extension \texttt{todonote} ne permettant pas de placer des notes directement dans des environnements, il est nécessaire d'utiliser un point d'ancrage (\textbf{\textbackslash tdmark}) ayant le même label que le contenu de la note proprement dite (\textbf{\textbackslash boxnote}).
+\end{itemize}
+
+\begin{code}{latex}
+\boxnote[thm1]{Ce théorème est important}
+\begin{theorem}
+    \tdmark[thm1]  % Point de référence pour la note (même label)
+    Contenu du théorème...
+\end{theorem}
+\end{code}
+
+Les options possibles pour les notes sont les suivantes.
+
+\begin{itemize}
+\item \textbf{backgroundcolor} = \texttt{couleur} : couleur
+  de fond.
+\item \textbf{color} = \texttt{couleur} : couleur du texte.
+\item \textbf{bordercolor} = \texttt{couleur} : couleur de
+  la bordure.
+\item \textbf{width} = \texttt{longueur} : largeur de la
+  note.
+\item \textbf{linecolor} = \texttt{couleur} : couleur de la
+  ligne de référence.
+\end{itemize}
+
+\subsection{Admonitions}
+
+Les environnements d'admonition permettent de mettre en avant des
+informations importantes. Chaque type a sa propre couleur et icône par
+défaut.
+
+\begin{itemize}
+\item \textbf{note} : remarques générales.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{note}[Remarque importante][\faInfo]
+    Points à retenir...
+\end{note}
+\end{code}
+
+\begin{itemize}
+\item \textbf{info} : informations complémentaires.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{info}[Pour aller plus loin]
+    Informations additionnelles...
+\end{info}
+\end{code}
+
+\begin{itemize}
+\item \textbf{warning} : avertissements.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{warning}[Attention !][\faExclamationTriangle]
+    Points critiques à ne pas oublier...
+\end{warning}
+\end{code}
+
+\begin{itemize}
+\item \textbf{important} : points essentiels.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{important}[Point clé]
+    Concept fondamental...
+\end{important}
+\end{code}
+
+\begin{itemize}
+\item \textbf{tip} : conseils et astuces.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{tip}[Astuce de calcul][\faLightbulb]
+    Une méthode plus rapide...
+\end{tip}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{reminder} : points à retenir.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{reminder}[À mémoriser]
+    Formules essentielles...
+\end{reminder}
+\end{code}
+
+\begin{itemize}
+\item \textbf{summary} : résumés.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{summary}[En bref]
+    Points principaux du chapitre...
+\end{summary}
+\end{code}
+
+\begin{itemize}
+\item \textbf{toolbox} : boîte à outils.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{toolbox}[Outils nécessaires]
+  \begin{itemize}
+    \item Calculatrice
+    \item Règle graduée
+    \item Compas
+  \end{itemize}
+\end{toolbox}
+\end{code}
+
+Toutes les admonitions acceptent trois paramètres optionnels :
+
+\begin{itemize}
+\item un titre optionnel ;
+\item une icône personnalisée ;
+\item des options de personnalisation (couleurs, bordures).
+\end{itemize}
+
+\section{Notation et correction}
+
+\subsection{Outils de notation}
+
+\begin{itemize}
+\item \textbf{\textbackslash gradingstrip} : bandeau de notation (note et appréciation).
+\end{itemize}
+
+\begin{code}{latex}
+% Bandeau simple
+\gradingstrip
+
+% Bandeau avec total spécifié
+\gradingstrip[20]
+\end{code}
+
+L'option \textbf{totalpoints} définit le nombre total de points par défaut.
+
+\begin{code}{latex}
+\documentclass[totalpoints=20]{neoschool}
+\end{code}
+
+\begin{itemize}
+
+\item \textbf{\textbackslash mrk, \textbackslash mrks} : points dans la
+  marge.
+\end{itemize}
+
+\begin{code}{latex}
+% Un point
+\mrk[Bien vu !]{1}     % Marge droite avec commentaire
+\mrk*{1}               % Marge gauche
+
+% Plusieurs points
+\mrks{3}               % 3 points marge droite
+\mrks*[Barème]{3}      % 3 points marge gauche avec texte
+\end{code}
+
+\subsection{Zones de réponse}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash answerfield} : zone de réponse avec fond coloré.
+\end{itemize}
+
+\begin{code}{latex}
+% Zone pleine largeur, 3 lignes
+\answerfield{3}
+
+% Zone 80% largeur, 5 lignes
+\answerfield[0.8\linewidth]{5}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash answerframe} : zone de réponse encadrée.
+\end{itemize}
+
+\begin{code}{latex}
+% Cadre pleine largeur, 3 lignes
+\answerframe{3}
+
+% Cadre 80% largeur, 5 lignes
+\answerframe[0.8\linewidth]{5}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash vardots} : ligne pointillée de longueur
+  variable.
+\end{itemize}
+
+\begin{code}{latex}
+% Ligne pointillée pleine largeur
+\vardots
+
+% Ligne pointillée de 5cm
+\vardots[5cm]
+\end{code}
+
+\subsection{Marqueurs et symboles}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash cmark} : symbole de validation (\cmark)
+\item
+  \textbf{\textbackslash xmark} : symbole d'erreur (\xmark)
+\item
+  \textbf{\textbackslash unchecked} : case à cocher vide \unchecked
+\item
+  \textbf{\textbackslash done} : case cochée avec \done
+\item
+  \textbf{\textbackslash wontfix} : case cochée avec \wontfix
+\end{itemize}
+
+\begin{code}{latex}
+\begin{itemize}
+    \unchecked Objectif 1 à réaliser
+    \done      Objectif 2 terminé
+    \wontfix   Objectif 3 abandonné
+\end{itemize}
+\end{code}
+
+\subsection{Compétences et évaluation}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash competencies} : tableau d'évaluation par
+  compétences.
+\end{itemize}
+
+\begin{code}{latex}
+\competencies{
+    Calculer une dérivée\\
+    Étudier les variations\\
+    Résoudre une équation
+}
+\end{code}
+
+Le tableau affiche automatiquement :
+\begin{itemize}
+\item 4 niveaux de maîtrise avec émojis ;
+\item des cases à cocher pour l'évaluation.
+\end{itemize}
+
+\section{Commandes mathématiques et outils spéciaux}
+
+\subsection{Commandes
+mathématiques}\label{commandes-mathuxe9matiques}
+
+\subsubsection{Mise en valeur et
+coloration}\label{mise-en-valeur-et-coloration}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash mhl} : surlignage d'expressions mathématiques.
+\end{itemize}
+
+\begin{code}{latex}
+% Surlignage jaune par défaut
+$\mhl{x^2}$
+
+% Surlignage personnalisé
+$\mhl[blue!20]{f'(x)}$
+
+% Dans une équation sur plusieurs lignes
+\begin{align*}
+    f(x) &= x^2 + \mhl{2x} + 1 \\
+    f'(x) &= 2x + \mhl{2}
+\end{align*}
+\end{code}
+
+\begin{itemize}
+
+\item
+  \textbf{\textbackslash mc} : coloration d'expressions mathématiques.
+\end{itemize}
+
+\begin{code}{latex}
+% Couleur du thème par défaut
+$\mc{f(x)}$
+
+% Couleur personnalisée
+$\mc[red]{g(x)}$
+
+% Dans une équation
+\[ \mc{f'(x)} = \lim_{h \to 0} \mc[blue]{\frac{f(x+h)-f(x)}{h}} \]
+\end{code}
+
+\subsubsection{Support APMEP}
+
+Lorsque l'option \textbf{apmep} est activée, les commandes suivantes sont disponibles.
+\begin{itemize}
+\item Commandes de vecteurs :
+\end{itemize}
+
+\begin{code}{latex}
+\vect{u}         % Vecteur u avec flèche
+\vectt{AB}       % Vecteur AB avec espacement
+\end{code}
+
+\begin{itemize}
+\item Repères et coordonnées :
+\end{itemize}
+
+\begin{code}{latex}
+\Oij             % Repère (O; i,j)
+\Oijk            % Repère (O; i,j,k)
+\Ouv             % Repère (O; u,v)
+\end{code}
+
+\begin{itemize}
+\item Commandes spéciales :
+\end{itemize}
+
+\begin{code}{latex}
+\euro            % Symbole euro
+\cg              % Crochet gauche
+\cd              % Crochet droit
+\pg              % Plus grand ou égal
+\pp              % Plus petit ou égal
+\barre{x}        % x surligné
+\ds              % \displaystyle
+\end{code}
+
+\subsection{Outils spéciaux}
+
+\subsubsection{Arbres et graphes}
+
+\begin{itemize}
+\item
+  Arbres avec \emph{l}xtension \texttt{forest} :
+\end{itemize}
+
+\begin{code}{latex}
+\begin{neotree}
+A
+    [B
+        [D]
+        [E]
+    ]
+    [C
+        [F]
+        [G]
+    ]
+\end{neotree}
+
+% Avec poids sur les arêtes
+\begin{neotree}
+A
+    [B, w=\frac{1}{3}
+        [D]
+        [E]
+    ]
+    [C, w=\frac{2}{3}]
+\end{neotree}
+\end{code}
+
+\begin{itemize}
+\item
+  Graphes (uniquement avec une compilation en \texttt{lualatex}) :
+\end{itemize}
+
+\begin{code}{latex}
+\neograph{
+    A -- {B, C, D, F},
+    B -- {C, D, F},
+    C -> ["3"] D,
+    D -- [bend left=10] {E},
+    E -- [bend left=10] {D},
+    E -- [bend left=10] {F},
+    F -- [bend left=10] {E},
+    A -- [loop] A
+}
+\end{code}
+
+\subsubsection{Grille mathématique}
+
+L'environnement \texttt{mathgrid} permet de disposer
+des équations en grille :
+
+\begin{code}{latex}
+\begin{mathgrid}{3}
+    \neoline
+    \neocol{
+        T &= 7xx+9x\\
+          &= (7+9)x \\
+          &= 16x
+    }
+    \neocol{
+        U &= 8x^{2}-5x^{2}+x^{2}\\
+          &= (8-5+1)x^{2} \\
+          &= 4x^{2}
+    }
+    \neocol{
+        V &= 5a^{2}-6a\\
+          &= a(5a-6)
+    }
+    \neoline
+    \neocol[2]{
+        W &= 5a^{2}-6a+3+7a^{2}+a-6\\
+          &= (5+7)a^{2}+(-6+1)a+(3-6)\\
+          &= 12a^{2}-5a-3
+    }
+    \neocol{
+        A &= 2x + 3x\\
+          &= 5x
+    }
+\end{mathgrid}
+\end{code}
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool-fr.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.pdf	2025-01-08 21:11:53 UTC (rev 73373)
+++ trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.pdf	2025-01-08 21:13:05 UTC (rev 73374)

Property changes on: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.tex	2025-01-08 21:13:05 UTC (rev 73374)
@@ -0,0 +1,1629 @@
+\documentclass[
+    margin=2cm
+]{neoschool}
+
+\title{The \texttt{neoschool} Class}
+\author{Version : 1.0.0 \quad\textemdash{}\quad Author : Razik Ikhlef}
+\date{2025/01/04}
+
+\begin{document}
+\maketitle
+
+The \texttt{neoschool} class provides secondary school
+teachers with a comprehensive set of tools to create their educational
+documents (assessments, course materials, exercise sheets with
+solutions, etc.). To meet various needs, it offers eight predefined
+color themes, diverse class options for layout and typography,
+specialized environments, dedicated commands, and different preformatted
+header styles for each type of document. It integrates dozens of
+commonly used LaTeX packages (see list below), which significantly
+reduces the preamble and avoids compatibility issues as much as
+possible. It's multilingual, supporting French, English, and German.
+
+\tableofcontents
+
+\section{Loaded Packages}
+
+The following packages are automatically loaded by the
+\texttt{neoschool} class:
+
+\texttt{adforn}, \texttt{adjustbox}, \texttt{algpseudocode},
+\texttt{amssymb}, \texttt{babel}, \texttt{bookmark}, \texttt{calc},
+\texttt{changespace}, \texttt{cuted}, \texttt{environ},
+\texttt{fancyvrb}, \texttt{fontawesome5}, \texttt{forest},
+\texttt{iftex}, \texttt{ifthen}, \texttt{kvoptions}, \texttt{lastpage},
+\texttt{marginnote}, \texttt{microtype}, \texttt{mismath} (which loads
+\texttt{mathtools}), \texttt{multicol}, \texttt{needspace},
+\texttt{pdftexcmds}, \texttt{pgffor}, \texttt{pgfplots},
+\texttt{qrcode}, \texttt{scrlayer-scrpage}, \texttt{silence},
+\texttt{siunitx}, \texttt{tabularray}, \texttt{tasks},
+\texttt{tcolorbox} (with the \texttt{most} option loading
+\texttt{listings} and \texttt{minted} packagess), \texttt{textcase},
+\texttt{tikz}, \texttt{tikzpagenodes}, \texttt{tikzsymbols},
+\texttt{ulem} (with \texttt{normalem} option), \texttt{xcolor} (with
+\texttt{table}, \texttt{svgnames}, \texttt{dvipsnames}, and
+\texttt{x11names} options), \texttt{xhfill}, \texttt{xkeyval},
+\texttt{xsim} (with \texttt{use-files} and \texttt{clear-aux} options),
+\texttt{xstring}.
+
+Compilation in \texttt{pdflatex} loads \texttt{fonttenc} (with
+\texttt{T1} option), \texttt{inputenc} (with \texttt{utf8} option),
+\texttt{newpxtext}, and \texttt{newpxmath}. Compilation in
+\texttt{lualatex} makes available \texttt{fontspec}, \texttt{luacas},
+\texttt{lua-ul}, \texttt{luacolor} packagess and applies
+\texttt{TeX\ Gyre\ PagellaX} and \texttt{TeX\ Gyre\ Heros} fonts in
+addition to \texttt{newpxmath}.
+
+The \texttt{graphics} option loads \texttt{graphicx} and
+\texttt{wrapfig}, the \texttt{draft} option loads \texttt{blindtext} and
+\texttt{lipsum}, and the \texttt{mathastext} option loads the
+\texttt{mathastext} packages.
+
+The \texttt{math} option loads \texttt{annotate-equations}, \texttt{bm},
+\texttt{cancel}, \texttt{mathrsfs}, \texttt{nncomma}, \texttt{numprint},
+\texttt{tdsfrmath} (with \texttt{suite} and \texttt{taupe} options),
+\texttt{tkz-euclide}, \texttt{witharrows}, and \texttt{xlop}.
+
+The \texttt{notes} option enables colored and framed notes in the left
+and right margins alternately and loads the \texttt{todonotes}
+packages.
+
+The \texttt{apmep} option, which allows direct compilation of
+examination papers from the association of the same name, defines a set
+of mathematical commands and loads \texttt{esvect},
+\texttt{fourier-ons}, \texttt{numprint} (with \texttt{np} option),
+\texttt{pstricks} (and many packages from the \texttt{pstricks}
+ecosystem), \texttt{tabularx}, and \texttt{textcomp}.
+
+The \texttt{mathics} option enables computer algebra via
+\texttt{mathics} (free version of \texttt{mathematica}) and loads
+\texttt{asymptote} and \texttt{latexalpha2} packagess.
+
+\section{Configuration Options}
+
+\subsection{Language}
+
+\begin{itemize}
+\item
+  \textbf{english, french, german}: Activates translations and
+  conventions for each language. These options affect theorem and
+  environment titles, typography, and mathematical conventions.
+\item
+  \textbf{nofrenchlist}: Disables French-style lists (restores dots
+  instead of dashes).
+\item
+  \textbf{frenchlistaspar}: Treats lists as paragraphs in French.
+\item
+  \textbf{frenchmath}: Applies French mathematical conventions (upright
+  capitals and Greek letters).
+\end{itemize}
+
+\subsection{Global Appearance}
+
+\subsubsection{Predefined Themes}
+
+The \textbf{theme} = \texttt{theme-name} option sets the document's color theme.
+Available themes are: \texttt{cyprus}, \texttt{kassio}, \texttt{frost},
+\texttt{spring}, \texttt{arbutus}, \texttt{duo}, \texttt{navy}, \texttt{royal}.
+Most of them are inspired by the \textit{ef-themes} for \textit{Emacs} by
+Protesilaos Stavrou.
+
+\subsubsection{Color Modes}
+
+\begin{itemize}
+\item
+  \textbf{normal}: Uses different colors for each type of environment.
+\item
+  \textbf{unicolor}: Uses a single color for all environments:
+
+  \begin{itemize}
+    \item
+    The title color is used as the base
+  \item
+    Variations are obtained through transparency
+  \end{itemize}
+\item
+  \textbf{print}: Converts all colors to black for printing.
+\item
+  \textbf{gradientheadpalette}: Uses a gradient of the title color for
+  other headings (sections, subsections, theorem titles, etc.).
+\end{itemize}
+
+\subsubsection{Custom Colors}
+
+\begin{itemize}
+\item
+  \textbf{globalcolor} = \texttt{color}: Sets the text
+  color.
+\item
+  \textbf{titlecolor} = \texttt{color} or
+  \textbf{titlehexcolor} = \texttt{hex code}: Sets the
+  title color.
+\item
+  \textbf{headcolor} = \texttt{color}: Sets the section
+  header color.
+\item
+  \textbf{subcolor} = \texttt{color}: Sets the
+  subsection color.
+\item
+  \textbf{subsubcolor} = \texttt{color}: Sets the
+  subsubsection color.
+\item
+  \textbf{headfootcolor} = \texttt{color}: Sets the
+  header and footer color.
+\end{itemize}
+
+\subsubsection{Display Options}
+
+\begin{itemize}
+\item
+  \textbf{noframe}: Removes environment frames.
+\item
+  \textbf{noback}: Removes colored backgrounds.
+\item
+  \textbf{nocodeframe}: Removes code block frames.
+\item
+  \textbf{scale}: Harmonizes font dimensions in
+  \texttt{lualatex}.
+\end{itemize}
+
+\subsection{Abstract Customization}
+
+The \texttt{abstracttitle} option allows customization
+of the \texttt{abstract} environment title:
+
+\begin{code}{latex}
+\documentclass[abstracttitle=Summary]{neoschool}
+
+% In the document
+\begin{abstract}
+    Abstract content...
+\end{abstract}
+\end{code}
+
+\subsection{Typography}
+
+\begin{itemize}
+\item
+  \textbf{sfbody}: Activates sans-serif font for body text.
+\item
+  \textbf{sfall}: Activates sans-serif font for the entire document.
+\item
+  \textbf{mathastext}: Uses text font for mathematics.
+\item
+  \textbf{mainface} = \texttt{font}: Main document
+  font.
+\item
+  \textbf{mainfaceoptions} = \texttt{options}: Main
+  font options.
+\item
+  \textbf{sansface} = \texttt{font}: Sans-serif font.
+\item
+  \textbf{sansfaceoptions} = \texttt{options}:
+  Sans-serif font options.
+\item
+  \textbf{monoface} = \texttt{font}: Monospace font.
+\item
+  \textbf{monofaceoptions} = \texttt{options}:
+  Monospace font options.
+\item
+  \textbf{mathface} = \texttt{font}: Mathematical font.
+\item
+  \textbf{mathfaceoptions} = \texttt{options}:
+  Mathematical font options (only in
+  \texttt{pdflatex}).
+\item
+  \textbf{facefamily} = \texttt{family}: Complete font
+  family.
+\item
+  \textbf{facefamilyoptions} = \texttt{options}: Font
+  family options.
+\end{itemize}
+
+\subsection{Layout}
+
+\subsubsection{Margins and Spacing}
+
+\begin{itemize}
+\item
+  \textbf{margin} = \texttt{length}: Sets horizontal
+  margin width (2.5cm default); vertical margins adjust accordingly.
+\item
+  \textbf{notes} = \texttt{length}: Activates
+  \emph{todonotes} in margins and sets their width.
+\item
+  \textbf{noindent}: Removes paragraph indentation.
+\item
+  \textbf{indent} = \texttt{length}: Sets indentation
+  width (1em default).
+\item
+  \textbf{compact}:
+
+  \begin{itemize}
+    \item
+    Reduces paragraph spacing
+  \item
+    Decreases environment margins
+  \item
+    Compresses line spacing
+  \end{itemize}
+\end{itemize}
+
+\subsubsection{Output Options}
+
+\begin{itemize}
+\item
+  \textbf{2a5toa4}: Displays two copies of A5 page on A4 in landscape.
+\item
+  \textbf{2a4toa3}: Displays two copies of A4 page on A3 in landscape.
+\item
+  \textbf{4a5toa3}: Displays four copies of A5 page on A3.
+\item
+  \textbf{2toa3}: Displays two different A4 pages on A3 in landscape.
+\item
+  \textbf{bookleta5}: Generates A5 booklet (four pages per A4 sheet).
+\item
+  \textbf{bookleta4}: Generates A4 booklet (four pages per A3 sheet).
+\end{itemize}
+
+\subsubsection{Headers and Footers}
+
+\begin{itemize}
+\item
+  \textbf{fullheader}: Activates complete header and footer.
+
+  \begin{itemize}
+    \item
+    Header: document type on left, title in center, class level on
+    right.
+  \item
+    Footer: date on left, institution in center, pagination on right.
+  \end{itemize}
+\item
+  \textbf{headrule}: Adds line under header.
+\item
+  \textbf{footrule}: Adds line above footer.
+\item
+  \textbf{headfootrule}: Activates both lines.
+\end{itemize}
+
+\section{Document Styles}
+
+\subsection{Title Styles}
+
+\subsubsection{Exam Styles}
+
+\begin{itemize}
+\item
+  \textbf{exam}: Complete style for exams with detailed header.
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[exam]{neoschool}
+
+\neoheader{
+    type = Test,
+    school = Poincarré High School,
+    level = Senior Year,
+    duration = 2h,
+    calculator = true  % or false or exam
+}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{shortexam}: Compact style for exams with simplified header.
+\item
+  \textbf{mockexam}: Style for mock exams with standardized cover page.
+\end{itemize}
+
+\subsubsection{Assessment Styles}
+
+\begin{itemize}
+\item
+  \textbf{eval}: Standard style for assessments.
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[eval]{neoschool}
+
+\neoheader{
+    type = Quiz,
+    school = Alan Turing Middle School,
+    level = 8th Grade
+}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{evalicons}: Adds icons to \texttt{eval}
+  header.
+\item
+  \textbf{evalgrade}: Adds grading banner.
+\item
+  \textbf{evaliconsgrade}: Complete style with icons and grading.
+\item
+  \textbf{shorteval}: Compact style for assessments.
+\end{itemize}
+
+\subsubsection{Bubble Styles}
+
+\begin{itemize}
+\item
+  \textbf{bubbles}: Style with colored bubble background.
+\item
+  \textbf{shortbubbles}: Compact version of bubble style.
+\end{itemize}
+
+\subsubsection{Other Title Styles}
+
+\begin{itemize}
+\item
+  \textbf{titleornament}: Adds ornaments below title.
+\item
+  \textbf{titlerule}: Adds line under title.
+\item
+  \textbf{titlemidrule}: Adds center line under title.
+\item
+  \textbf{titlefullrule}: Adds full-width line under title.
+\item
+  \textbf{fancybox}: Title with elegant gray box.
+\item
+  \textbf{onlytitleleft}: Displays only title, left-aligned.
+\item
+  \textbf{onlytitle}: Displays only title, centered.
+\item
+  \textbf{onlytitleright}: Displays only title, right-aligned.
+\item
+  \textbf{shorttitle}: Compact title style.
+\item
+  \textbf{shortlesson}: Compact style for lessons.
+\end{itemize}
+
+\subsection{Header Configuration}
+
+The document header can be configured with the
+\texttt{\textbackslash neoheader} command:
+
+\begin{code}{latex}
+\neoheader{
+    type = {Document Type},
+    school = {School Name},
+    academy = {Academy Name},
+    level = {Grade Level},
+    duration = {Duration},
+    calculator = {true/false/exam},
+    leftcontent = {\faIcon{...}},
+    rightcontent = {\faIcon{...}},
+}
+\end{code}
+
+\subsection{Title Formatting Options}
+
+\subsubsection{Global Styles}
+
+\begin{itemize}
+\item
+  \textbf{headstyle} = \texttt{style}: Font style for
+  all headers (\texttt{sffamily} default).
+
+  \begin{itemize}
+    \item
+    Sections, subsections, etc.
+  \item
+    Theorem and exercise headers.
+  \end{itemize}
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[headstyle=rmfamily]{neoschool}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{headweight} = \texttt{weight}: Weight for all
+  headers (\texttt{bfseries} default).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+  headstyle=sffamily,
+  headweight=mdseries
+]{neoschool}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{headshape} = \texttt{shape}: Shape for all
+  headers (\texttt{scshape} default).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+  headstyle=sffamily,
+  headshape=upshape
+]{neoschool}
+\end{code}
+
+\subsubsection{Main Title Style}
+
+\begin{itemize}
+\item
+  \textbf{titlestyle} = \texttt{style}: Style for main
+  title (inherits from \texttt{headstyle}).
+\item
+  \textbf{titleweight} = \texttt{weight}: Weight for
+  main title (inherits from \texttt{headweight}).
+\item
+  \textbf{titleshape} = \texttt{shape}: Shape for main
+  title (\texttt{upshape} default).
+\item
+  \textbf{titlealign} = \texttt{alignment}: Title
+  alignment (\texttt{center} default).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+    titlestyle=sffamily,
+    titleweight=bfseries,
+    titleshape=upshape,
+    titlealign=left
+]{neoschool}
+\end{code}
+
+\subsubsection{Section Style}
+
+\begin{itemize}
+\item
+  \textbf{sectionnumstyle} = \texttt{style}: Numbering
+  style.
+
+  \begin{itemize}
+    \item
+    \texttt{circle}: Circled number.
+  \item
+    \texttt{box}: Boxed number.
+  \item
+    \texttt{dash}: Dash after number.
+  \item
+    \texttt{plain}: Simple number.
+  \end{itemize}
+\item
+  \textbf{sectiontextstyle} = \texttt{style}: Text
+  style.
+
+  \begin{itemize}
+    \item
+    \texttt{sc}: Small caps.
+  \item
+    \texttt{upper}: Uppercase.
+  \item
+    \texttt{lower}: Lowercase.
+  \end{itemize}
+\item
+  \textbf{sectionstyle} = \texttt{style}: Global
+  section style.
+
+  \begin{itemize}
+    \item
+    \texttt{ornaments}: With decorative ornaments.
+  \item
+    \texttt{underline}: Underlined.
+  \item
+    \texttt{normal}: Simple style.
+  \item
+    \texttt{highlighted}: With highlighting.
+  \item
+    \texttt{shadedline}: With shaded line.
+  \end{itemize}
+\item
+  \textbf{sectionalign} = \texttt{alignment}: Section
+  alignment.
+
+  \begin{itemize}
+    \item
+    \texttt{left}: Left-aligned.
+  \item
+    \texttt{center}: Centered.
+  \item
+    \texttt{right}: Right-aligned.
+  \end{itemize}
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[
+    sectionnumstyle=circle,
+    sectiontextstyle=upper,
+    sectionstyle=highlighted,
+    sectionalign=left
+]{neoschool}
+\end{code}
+
+\subsubsection{Header/Footer Style}
+
+\begin{itemize}
+\item
+  \textbf{headfootstyle} = \texttt{style}:
+  Header/footer style (based on \texttt{headstyle}).
+\end{itemize}
+
+\begin{code}{latex}
+\documentclass[headfootstyle=sffamily]{neoschool}
+\end{code}
+
+\subsubsection{Complete Configuration
+Example}
+
+\begin{code}{latex}
+\documentclass[
+    % Global style
+    headstyle=sffamily,
+    headweight=bfseries,
+    headshape=scshape,
+    
+    % Main title
+    titlestyle=sffamily,
+    titleweight=bfseries,
+    titleshape=upshape,
+    titlealign=center,
+    
+    % Sections
+    sectionnumstyle=circle,
+    sectiontextstyle=upper,
+    sectionstyle=highlighted,
+    sectionalign=left,
+    
+    % Headers/footers
+    headfootstyle=sffamily
+]{neoschool}
+\end{code}
+
+\section{Content Layout}
+
+\subsection{Absolute Object
+Positioning}
+
+The \texttt{\textbackslash positionobject} command allows precise
+placement of elements on the page:
+
+\begin{code}{latex}
+\positionobject{x-shift}{y-shift}{scale}{content}
+
+\begin{itemize}
+\item \texttt{x-shift}: Horizontal offset from top-left corner.
+\item \texttt{y-shift}: Vertical offset from top-left corner.
+\item \texttt{scale}: Scale factor for content.
+\item \texttt{content}: Element to position (image, text, etc.).
+\end{itemize}
+
+% Example: Image in top-right corner
+\positionobject{15cm}{1cm}{0.5}{\includegraphics{logo.png}}
+
+% Example: Special footer text
+\positionobject{2cm}{25cm}{1}{Special footer note}
+\end{code}
+
+\subsection{Two-Column Layout}
+
+The \textbf{\textbackslash splitcontent} command divides content horizontally:
+
+\begin{code}{latex}
+% Example with custom values
+\splitcontent[0.6][0.05]{
+    This part takes up 60%
+    of total width
+}{
+    This part takes up 35%
+    (5% space between)
+}
+
+% Example with default values (50% / 50%)
+\splitcontent{
+    First column
+}{
+    Second column
+}
+\end{code}
+
+\subsection{Side-by-Side
+Environments}
+
+The \texttt{sidebyside} environment creates two-column
+boxes with consistent styling:
+
+\begin{code}{latex}
+\begin{sidebyside}[options]
+    % Left content
+    \tcblower
+    % Right content
+\end{sidebyside}
+\end{code}
+
+Options are those of \texttt{tcolorbox}.
+
+\begin{code}{latex}
+\begin{sidebyside}[
+    title=Comparison,
+    colback=exampleColor!5,
+    colbacklower=exampleColor!10
+]
+    First version
+    \tcblower
+    Improved version
+\end{sidebyside}
+\end{code}
+
+\subsection{Text and Image
+Combination}
+
+The \textbf{\textbackslash textwithimage} command combines text and image:
+
+\begin{code}{latex}
+% Star (*) reverses image position (right by default)
+
+% Image on right (30% width)
+\textwithimage{0.3}{0.95}{
+    This text describes the adjacent image...
+}{images/figure.png}
+
+% Image on left (40% width)
+\textwithimage*{0.4}{0.9}{
+    Description to the right of the image...
+}{images/schema.png}
+\end{code}
+
+\subsection{QR Codes and Content}
+
+The \textbf{\textbackslash withqrcode} command integrates a QR code with associated
+content:
+
+\begin{code}{latex}
+% Star (*) places QR code on right (left by default)
+
+% QR code on left (2cm default)
+\withqrcode{https://example.com}{
+    Scan for more information
+}
+
+% 3cm QR code on right
+\withqrcode*[3cm]{https://exercises.com}{
+    Access online exercises
+}
+\end{code}
+
+\subsection{Grids and Papers}
+
+\subsubsection{Custom Grids}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash grid}: Small square grid.
+\end{itemize}
+
+\begin{code}{latex}
+\grid[blue]{10cm}{5cm}  % Blue grid 10 x 5 cm
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash customgrid}: Grid with custom spacing.
+\end{itemize}
+
+\begin{code}{latex}
+\customgrid[red][4mm][4mm]{12cm}{8cm}  % Red grid, 4mm mesh
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash frenchgrid}: Seyes-style grid.
+\end{itemize}
+
+\begin{code}{latex}
+\frenchgrid{15cm}{10cm}  % French-style notebook grid
+\end{code}
+
+\subsubsection{Full Pages}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash notebook}: Notebook-style page with horizontal lines and red
+  margin.
+\end{itemize}
+
+\begin{code}{latex}
+\notebook  % Activates lined notebook style
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash nbminorgrid}: Page fully covered with small squares.
+\end{itemize}
+
+\begin{code}{latex}
+\nbminorgrid  % Activates fine grid
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash nbmajorgrid}: Page fully covered with large squares.
+\end{itemize}
+
+\begin{code}{latex}
+\nbmajorgrid  % Activates Seyes grid
+\end{code}
+
+\subsection{Simple Boxes}
+
+The \texttt{neobox} environment provides a quick way to create simple boxes. It comes in two variants: \texttt{neobox} with frame and \texttt{neobox*} without visible frame:
+
+\begin{code}{latex}
+% Standard box
+\begin{neobox}[colframe=blue,colback=blue!5]
+    Text in a box...
+\end{neobox}
+
+% Frameless box with colored background
+\begin{neobox*}[colback=gray!10]
+    Text on gray background...
+\end{neobox*}
+\end{code}
+
+\section{Exercises}
+
+\subsection{Exercises and
+Assessments}
+
+\subsubsection{Exercise Configuration}
+
+The \texttt{exercise} environment accepts the following
+options:
+
+\begin{itemize}
+\item
+  \textbf{points} = \texttt{number}: Points for the
+  exercise.
+\item
+  \textbf{level} = \texttt{number}: Difficulty level
+  (displayed as stars).
+\item
+  \textbf{subtitle} = \texttt{text}: Exercise subtitle
+  or description.
+\item
+  \textbf{icon} = \texttt{icon}: Custom icon (uses Font
+  Awesome library).
+\item
+  \textbf{topic} = \texttt{theme}: Related theme or
+  chapter.
+\item
+  \textbf{subject} = \texttt{subject}: Related subject.
+\item
+  \textbf{ID} = \texttt{identifier}: Unique identifier
+  for referencing.
+\item
+  \textbf{template} = \texttt{style}: Specific display
+  style for this exercise.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[
+    points=4,
+    level=2,
+    subtitle=Derivatives,
+    icon=\faPencil,
+    topic=Analysis,
+    subject=Mathematics,
+    ID=der01,
+    template=elegant-box
+]
+    Calculate the derivative of the function $f$ defined on $]0 ; +\infty[$
+    by $f(x)=x^2\ln(x)$.
+\end{exercise}
+
+The \texttt{solution} environment must immediately follow its corresponding \texttt{exercise} environment. Exercise solutions are not displayed by default.
+
+\begin{solution}
+    We use the product rule...
+\end{solution}
+
+% To reference the exercise elsewhere:
+As seen in exercise~\exercisenumber{der01}.
+\end{code}
+
+\subsubsection{Global Options}
+
+\begin{itemize}
+\item
+  \textbf{exerciseicons}: Activates icons for all exercises.
+\item
+  \textbf{answers}: Automatically displays all exercise solutions.
+\item
+  \textbf{shuffle}: Randomizes answer choices in multiple choice
+  questions.
+\item
+  \textbf{sectionthmcounter}: Numbers exercises by section.
+\item
+  \textbf{sharedexcounter}: Shares counter with theorems.
+\end{itemize}
+
+\subsubsection{Exercise Templates}
+
+The class offers numerous predefined styles for exercises:
+
+\begin{itemize}
+\item
+  \textbf{box}: Standard box with border and title.
+\item
+  \textbf{elegant-box}: Box with colored sidebar.
+\item
+  \textbf{shaded-box}: Box with shading and banner title.
+\item
+  \textbf{slanted-box}: Box with slanted banner title.
+\item
+  \textbf{sober-box}: Minimalist box with colored title.
+\item
+  \textbf{classic-box}: Classic box with banner title.
+\item
+  \textbf{classy-box}: Sophisticated box with decorative title.
+\item
+  \textbf{rect-box}: Simple rectangular box.
+\item
+  \textbf{rect-box-outlined}: Rectangular box with outline.
+\item
+  \textbf{num-box}: Compact numbered box.
+\item
+  \textbf{num-box-outlined}: Numbered box with outline.
+\item
+  \textbf{ex-num-box}: Numbered ``Ex.'' box.
+\item
+  \textbf{ex-num-box-outlined}: Numbered ``Ex.'' box with outline.
+\item
+  \textbf{box-hrule}: Box with horizontal rule.
+\item
+  \textbf{box-hrule-out}: Box with horizontal rule and outline.
+\item
+  \textbf{box-hrule-in}: Box with inner horizontal rule.
+\item
+  \textbf{boxed}: Simple box with title.
+\item
+  \textbf{boxed-out}: Box with outline and title.
+\item
+  \textbf{inline}: Inline text with title.
+\item
+  \textbf{section}: Section-style title.
+\item
+  \textbf{subsection}: Subsection-style title.
+\item
+  \textbf{terminal}: Console style with terminal icon.
+\item
+  \textbf{block}: Minimalist style.
+\item
+  \textbf{hrule}: With horizontal rule.
+\end{itemize}
+
+To set a template for the entire document, use the
+\texttt{\textbackslash xsimsetup} command in the preamble:
+
+\begin{code}{latex}
+\xsimsetup{
+    exercise/template = elegant-box,    % exercise template
+    solution/template = sol-box         % solution template
+}
+\end{code}
+
+\subsubsection{Multiple Choice Questions}
+
+\begin{itemize}
+\item
+  \textbf{choices}: For single-answer MCQs.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[points=2,ID=mcq01]
+    What is the derivative of $e^x$?
+    \begin{choices}
+        \choice $x e^x$
+        \choice[\correct] $e^x$
+        \choice $e^{x-1}$
+        \choice $\ln(x)$
+    \end{choices}
+\end{exercise}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{checkboxes}: For multiple-answer MCQs.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{exercise}[points=3,ID=mcq02]
+    Which of these numbers are prime?
+    \begin{checkboxes}
+        \checkbox[\correct*] 2
+        \checkbox[\correct*] 3
+        \checkbox 4
+        \checkbox[\correct*] 5
+    \end{checkboxes}
+\end{exercise}
+\end{code}
+
+\section{Math Environments}
+
+\subsection{Theorem Styles}
+
+The following styles are available for all theorem-type environments:
+\textbf{amslikethm} (minimalist style), \textbf{boxedthm},
+\textbf{classicthm}, \textbf{classythm}, \textbf{elegantthm},
+\textbf{shadedthm}, \textbf{slantedthm}, \textbf{soberthm}.
+
+Common options:
+
+\begin{itemize}
+\item
+  \textbf{title} = \texttt{text}: Theorem title.
+\item
+  \textbf{label} = \texttt{name}: Label for
+  referencing.
+\item
+  \textbf{colback} = \texttt{color}: Background color.
+\item
+  \textbf{colframe} = \texttt{color}: Frame color.
+\item
+  \textbf{coltitle} = \texttt{color}: Title color.
+\item
+  \textbf{fonttitle} = \texttt{commands}: Title style.
+\end{itemize}
+
+\subsection{Numbering Options}
+
+\begin{itemize}
+\item
+  \textbf{sectionthmcounter}: Counters relative to each section.
+\item
+  \textbf{sharedthmcounter}: Counter shared between all environments.
+\item
+  \textbf{theoremgroup}: Groups certain theorem environments.
+\item
+  \textbf{thmgroupcounter}: Activates counter for groups.
+\end{itemize}
+
+\subsection{Mathematical
+Environments}
+
+\begin{itemize}
+\item
+  \textbf{theorem}: For theorems.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{theorem}[title=Pythagorean Theorem,label=pyth]
+    In a right triangle, the square of the
+    hypotenuse equals the sum of squares
+    of the other two sides.
+\end{theorem}
+
+% Referencing:
+According to theorem~\ref{thm:pyth}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{lemma}: For lemmas.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{lemma}[title=Preparatory Lemma,label=prep]
+    Lemma content...
+\end{lemma}
+
+% Referencing:
+According to lemma~\ref{lem:prep}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{corollary}: For corollaries.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{corollary}[
+    title=Pythagorean Converse,
+    label=pythrecip
+]
+    If $a^2 + b^2 = c^2$, then the triangle is
+    right-angled at $A$.
+\end{corollary}
+
+% Referencing:
+According to corollary~\ref{cor:pythrecip}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{proposition}: For propositions (\textbf{propo} for
+  referencing).
+\item
+  \textbf{property}: For properties (\textbf{prop} for referencing).
+\item
+  \textbf{definition}: For definitions (\textbf{def} for referencing).
+\item
+  \textbf{method}: For methods (\textbf{meth} for referencing).
+\item
+  \textbf{activity}: For activities (\textbf{act} for referencing).
+\item
+  \textbf{application}: For applications (\textbf{appl} for
+  referencing).
+\item
+  \textbf{remark}: For remarks.
+\item
+  \textbf{remarks}: For a series of remarks.
+\item
+  \textbf{example}: For examples.
+\item
+  \textbf{examples}: For a series of examples.
+\end{itemize}
+
+\section{Listings}
+
+The \texttt{neoschool} class offers two options for
+code handling.
+
+\begin{itemize}
+\item
+  \textbf{listings} (default): Uses the
+  \texttt{listings} package.
+\item
+  \textbf{minted}: Uses the \texttt{minted} package
+  (requires Python and the \texttt{Pygments} library).
+\end{itemize}
+
+\subsection{\texttt{listings} Option}
+
+\subsubsection{Available Code Styles}
+
+\begin{itemize}
+\item
+  \textbf{lststyle} = \texttt{style}: Coloring style.
+
+  \begin{itemize}
+    \item
+    \texttt{colorful}: Complete coloring (default).
+  \item
+    \texttt{minimal}: Minimalist style.
+  \item
+    \texttt{academic}: ``Academic'' style with line
+    numbers.
+  \item
+    \texttt{modern}: ``Modern'' style with colored
+    background.
+  \end{itemize}
+\end{itemize}
+
+\subsubsection{Custom Code Boxes}
+
+The class defines the \texttt{code} environment with
+the following structure:
+
+\begin{lstlisting}[language=TeX]
+\begin{code}[options]{language}[title][box-style]
+    source code...
+\end{code}
+\end{lstlisting}
+
+Box styles: \textbf{box-minimal}, \textbf{box-fancy},
+\textbf{box-classic}, \textbf{box-elegant}, \textbf{box-diagonal},
+\textbf{box-bevel}, \textbf{box-corner}, \textbf{box-rounded},
+\textbf{box-downhill}, \textbf{box-bottomtitle},
+\textbf{box-bottomtitlef}.
+
+\begin{lstlisting}[language=TeX]
+\begin{code}[numbers=left]{python}[Function Example][box-fancy]
+def hello(name):
+    print(f"Hello, {name}!")
+\end{code}
+\end{lstlisting}
+
+\subsubsection{Preconfigured Languages and
+Styles}
+
+\begin{itemize}
+\item
+  Python
+\item
+  Java
+\item
+  C++
+\item
+  JavaScript
+\item
+  SQL
+\item
+  LaTeX
+\item
+  Bash
+\item
+  Assembly
+\item
+  Lisp
+\item
+  JSON
+\item
+  YAML
+\item
+  TOML
+\item
+  CSV
+\item
+  Markdown
+\end{itemize}
+
+\subsubsection{Additional Commands}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash codeinline}: Inline code.
+\end{itemize}
+
+\begin{code}{latex}
+\codeinline[python]{print("Hello")}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash codeinput}: Code loaded from file.
+\end{itemize}
+
+\begin{code}{latex}
+\codeinput[options]{language}{file.py}[title][box-style]
+\end{code}
+
+\subsection{\texttt{minted} Option}
+
+When the \textbf{minted} option is activated, code environments use
+\texttt{Pygments} for syntax highlighting. The
+\texttt{code} environment is also available with the
+\texttt{minted} option, using the same syntax:
+
+\begin{code}{latex}
+\usemintedstyle{tango}
+\begin{code}[linenos,highlightlines={2,3}]{python}[Function][box-fancy]
+def greet(name):
+    message = f"Hello, {name}!"
+    print(message)
+    return message
+\end{code}
+\end{code}
+
+\section{Notes and Annotations}
+
+\subsection{Margin Notes}
+
+Notes can be placed in the margin with different options:
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash tdnote}: Colored and framed notes in the margin, alternating
+  between left and right.
+\end{itemize}
+
+\begin{code}{latex}
+\tdnote{Important point to remember}
+\tdnote[backgroundcolor=blue!5]{Note with light blue background}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash boxnote}/\textbf{\textbackslash tdmark}: Since the \texttt{todonote}
+  package doesn't allow direct note placement in environments, use an
+  anchor point (\textbf{\textbackslash tdmark}) with the same label as the note content
+  (\textbf{\textbackslash boxnote}).
+\end{itemize}
+
+\begin{code}{latex}
+\boxnote[thm1]{This theorem is important}
+\begin{theorem}
+    \tdmark[thm1]  % Reference point for note (same label)
+    Theorem content...
+\end{theorem}
+\end{code}
+
+Available note options:
+
+\begin{itemize}
+\item
+  \textbf{backgroundcolor} = \texttt{color}: Background
+  color.
+\item
+  \textbf{color} = \texttt{color}: Text color.
+\item
+  \textbf{bordercolor} = \texttt{color}: Border color.
+\item
+  \textbf{width} = \texttt{length}: Note width.
+\item
+  \textbf{linecolor} = \texttt{color}: Reference line
+  color.
+\end{itemize}
+
+\subsection{Admonitions}
+
+Admonition environments highlight important information. Each type has
+its default color and icon.
+
+\begin{itemize}
+\item
+  \textbf{note}: General remarks.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{note}[Important Note][\faInfo]
+    Points to remember...
+\end{note}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{info}: Additional information.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{info}[Further Reading]
+    Additional information...
+\end{info}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{warning}: Warnings.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{warning}[Caution!][\faExclamationTriangle]
+    Critical points to remember...
+\end{warning}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{important}: Essential points.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{important}[Key Point]
+    Fundamental concept...
+\end{important}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{tip}: Tips and tricks.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{tip}[Calculation Tip][\faLightbulb]
+    A faster method...
+\end{tip}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{reminder}: Points to remember.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{reminder}[Memorize]
+    Essential formulas...
+\end{reminder}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{summary}: Summaries.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{summary}[In Brief]
+    Main chapter points...
+\end{summary}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{toolbox}: Toolbox.
+\end{itemize}
+
+\begin{code}{latex}
+\begin{toolbox}[Required Tools]
+  \begin{itemize}
+    \item Calculator
+    \item Ruler
+    \item Compass
+  \end{itemize}
+\end{toolbox}
+\end{code}
+
+All admonitions accept three optional parameters: - An optional title -
+A custom icon - Customization options (colors, borders)
+
+\section{Grading and Correction}
+
+\subsection{Grading Tools}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash gradingstrip}: Grading banner (grade and comments).
+\end{itemize}
+
+\begin{code}{latex}
+\gradingstrip
+
+% Banner with specified total
+\gradingstrip[20]
+\end{code}
+
+The \textbf{totalpoints} option sets the default total points.
+
+\begin{code}{latex}
+\documentclass[totalpoints=20]{neoschool}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash mrk}, \textbf{\textbackslash mrks}: Points in margin.
+\end{itemize}
+
+\begin{code}{latex}
+\mrk[Well done!]{1}     % Right margin with comment
+\mrk*{1}                # Left margin
+
+% Multiple points
+\mrks{3}                % 3 points right margin
+\mrks*[Scale]{3}        % 3 points left margin with text
+\end{code}
+
+\subsection{Answer Areas}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash answerfield}: Answer area with colored background.
+\end{itemize}
+
+\begin{code}{latex}
+\answerfield{3}
+
+% Area 80% width, 5 lines
+\answerfield[0.8\linewidth]{5}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash answerframe}: Framed answer area.
+\end{itemize}
+
+\begin{code}{latex}
+\answerframe{3}
+
+% Frame 80% width, 5 lines
+\answerframe[0.8\linewidth]{5}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash vardots}: Variable-length dotted line.
+\end{itemize}
+
+\begin{code}{latex}
+\vardots
+
+% 5cm dotted line
+\vardots[5cm]
+\end{code}
+
+\subsection{Markers and Symbols}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash cmark}: Check mark symbol (✓)
+\item
+  \textbf{\textbackslash xmark}: Error symbol (✗)
+\item
+  \textbf{\textbackslash unchecked}: Empty checkbox
+\item
+  \textbf{\textbackslash done}: Checked box with ✓
+\item
+  \textbf{\textbackslash wontfix}: Checked box with ✗
+\end{itemize}
+
+\begin{code}{latex}
+\begin{itemize}
+    \unchecked Goal 1 to complete
+    \done      Goal 2 completed
+    \wontfix   Goal 3 abandoned
+\end{itemize}
+\end{code}
+
+\subsection{Skills and Assessment}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash competencies}: Skills assessment table.
+\end{itemize}
+
+\begin{code}{latex}
+\competencies{
+    Calculate derivatives\\
+    Study variations\\
+    Solve equations
+}
+\end{code}
+
+The table automatically displays: - 4 mastery levels with emojis -
+Checkboxes for assessment
+
+\section{Math Commands and Special
+Tools}
+
+\subsection{Math Commands}
+
+\subsubsection{Highlighting and Coloring}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash mhl}: Highlighting math expressions.
+\end{itemize}
+
+\begin{code}{latex}
+$\mhl{x^2}$
+
+% Custom highlighting
+$\mhl[blue!20]{f'(x)}$
+
+% In multi-line equations
+\begin{align*}
+    f(x) &= x^2 + \mhl{2x} + 1 \\
+    f'(x) &= 2x + \mhl{2}
+\end{align*}
+\end{code}
+
+\begin{itemize}
+\item
+  \textbf{\textbackslash mc}: Coloring math expressions.
+\end{itemize}
+
+\begin{code}{latex}
+$\mc{f(x)}$
+
+% Custom color
+$\mc[red]{g(x)}$
+
+% In equation
+\[ \mc{f'(x)} = \lim_{h \to 0} \mc[blue]{\frac{f(x+h)-f(x)}{h}} \]
+\end{code}
+
+\subsubsection{APMEP Support}
+
+When the \textbf{apmep} option is activated, the following commands
+become available:
+
+\begin{itemize}
+\item
+  Vector commands:
+\end{itemize}
+
+\begin{code}{latex}
+\vect{u}         % Vector u with arrow
+\vectt{AB}       % Vector AB with spacing
+\end{code}
+
+\begin{itemize}
+\item
+  Reference frames and coordinates:
+\end{itemize}
+
+\begin{code}{latex}
+\Oij             % Frame (O; i,j)
+\Oijk            % Frame (O; i,j,k)
+\Ouv             % Frame (O; u,v)
+\end{code}
+
+\begin{itemize}
+\item
+  Special commands:
+\end{itemize}
+
+\begin{code}{latex}
+\euro            % Euro symbol
+\cg              % Left bracket
+\cd              % Right bracket
+\pg              % Greater than or equal
+\pp              % Less than or equal
+\barre{x}        % Overlined x
+\ds              % \displaystyle
+\end{code}
+
+\subsection{Special Tools}
+
+\subsubsection{Trees and Graphs}
+
+\begin{itemize}
+\item
+  Trees with \texttt{forest} package:
+\end{itemize}
+
+\begin{code}{latex}
+\begin{neotree}
+A
+    [B
+        [D]
+        [E]
+    ]
+    [C
+        [F]
+        [G]
+    ]
+\end{neotree}
+
+% With edge weights
+\begin{neotree}
+A
+    [B, w=\frac{1}{3}
+        [D]
+        [E]
+    ]
+    [C, w=\frac{2}{3}]
+\end{neotree}
+\end{code}
+
+\begin{itemize}
+\item
+  Graphs (only with \texttt{lualatex} compilation):
+\end{itemize}
+
+\begin{code}{latex}
+\neograph{
+    A -- {B, C, D, F},
+    B -- {C, D, F},
+    C -> ["3"] D,
+    D -- [bend left=10] {E},
+    E -- [bend left=10] {D},
+    E -- [bend left=10] {F},
+    F -- [bend left=10] {E},
+    A -- [loop] A
+}
+\end{code}
+
+\subsubsection{Math Grid}
+
+The \texttt{mathgrid} environment allows arranging
+equations in a grid:
+
+\begin{code}{latex}
+\begin{mathgrid}{3}
+    \neoline
+    \neocol{
+        T &= 7xx+9x\\
+          &= (7+9)x \\
+          &= 16x
+    }
+    \neocol{
+        U &= 8x^{2}-5x^{2}+x^{2}\\
+          &= (8-5+1)x^{2} \\
+          &= 4x^{2}
+    }
+    \neocol{
+        V &= 5a^{2}-6a\\
+          &= a(5a-6)
+    }
+    \neoline
+    \neocol[2]{
+        W &= 5a^{2}-6a+3+7a^{2}+a-6\\
+          &= (5+7)a^{2}+(-6+1)a+(3-6)\\
+          &= 12a^{2}-5a-3
+    }
+    \neocol{
+        A &= 2x + 3x\\
+          &= 5x
+    }
+\end{mathgrid}
+\end{code}
+
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/neoschool/neoschool.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/neoschool/neoschool.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/neoschool/neoschool.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/neoschool/neoschool.cls	2025-01-08 21:13:05 UTC (rev 73374)
@@ -0,0 +1,7311 @@
+% neoschool.cls
+%
+% copyright (C) 2025 Razik Ikhlef
+% razik.ikhlef at csilyon.fr
+%
+% The newest version of this documentclass should always be available
+% from the following web page: https://apps.edulatex.xyz/neoschool/
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{neoschool}[2025/01/03 v1.0.0]
+
+\RequirePackage[table,svgnames,dvipsnames,x11names]{xcolor}
+
+\RequirePackage{kvoptions}
+\RequirePackage{siunitx}
+\RequirePackage{pgffor}
+
+\SetupKeyvalOptions{
+    family=neoschool,
+    prefix=neoschool@
+}
+
+\DeclareStringOption[cyprus]{theme}
+\def\neo at cyprus{cyprus}
+\def\neo at kassio{kassio}
+\def\neo at frost{frost}
+\def\neo at spring{spring}
+\def\neo at arbutus{arbutus}
+\def\neo at duo{duo}
+\def\neo at navy{navy}
+\def\neo at royal{royal}
+
+\ProcessKeyvalOptions*\relax
+
+% Main Colors
+\ifx\neoschool at theme\neo at cyprus
+    \definecolor{titleColor}{HTML}{a7601f}
+    \definecolor{theoremColor}{HTML}{557400}
+    \definecolor{definitionColor}{HTML}{bf4400}
+    \definecolor{methodColor}{HTML}{3f6faf}
+    \definecolor{remarkColor}{HTML}{7f475a}
+    \definecolor{alternateColor}{HTML}{59786f}
+    \definecolor{applicationColor}{HTML}{00824f}
+    \definecolor{codeColor}{HTML}{9a456f}
+    \colorlet{sectionColor}{theoremColor}
+    \colorlet{subsectionColor}{definitionColor}
+    \colorlet{subsubsectionColor}{methodColor}
+\else\ifx\neoschool at theme\neo at kassio
+        \definecolor{titleColor}{HTML}{3c3bbe}
+        \definecolor{theoremColor}{HTML}{a01f64}
+        \definecolor{definitionColor}{HTML}{2f5f9f}
+        \definecolor{methodColor}{HTML}{a04646}
+        \definecolor{remarkColor}{HTML}{af4988}
+        \definecolor{alternateColor}{HTML}{776f79}
+        \definecolor{applicationColor}{HTML}{7022bf}
+        \definecolor{codeColor}{HTML}{9f248a}
+        \colorlet{sectionColor}{theoremColor}
+        \colorlet{subsectionColor}{definitionColor}
+        \colorlet{subsubsectionColor}{methodColor}
+    \else\ifx\neoschool at theme\neo at frost
+            \definecolor{titleColor}{HTML}{007a85}
+            \definecolor{theoremColor}{HTML}{004fc0}
+            \definecolor{definitionColor}{HTML}{00845f}
+            \definecolor{methodColor}{HTML}{7f5ae0}
+            \definecolor{remarkColor}{HTML}{204f9a}
+            \definecolor{alternateColor}{HTML}{66657f}
+            \definecolor{applicationColor}{HTML}{1f6fbf}
+            \definecolor{codeColor}{HTML}{004fc0}
+            \colorlet{sectionColor}{theoremColor}
+            \colorlet{subsectionColor}{definitionColor}
+            \colorlet{subsubsectionColor}{methodColor}
+        \else\ifx\neoschool at theme\neo at spring
+                \definecolor{titleColor}{HTML}{cf2f4f}
+                \definecolor{theoremColor}{HTML}{007f68}
+                \definecolor{definitionColor}{HTML}{cb26a0}
+                \definecolor{methodColor}{HTML}{5f5fdf}
+                \definecolor{remarkColor}{HTML}{9d5e7a}
+                \definecolor{alternateColor}{HTML}{777294}
+                \definecolor{applicationColor}{HTML}{b6540f}
+                \definecolor{codeColor}{HTML}{1f6fbf}
+                \colorlet{sectionColor}{theoremColor}
+                \colorlet{subsectionColor}{definitionColor}
+                \colorlet{subsubsectionColor}{methodColor}
+            \else\ifx\neoschool at theme\neo at arbutus
+                    \definecolor{titleColor}{HTML}{007000}
+                    \definecolor{theoremColor}{HTML}{8f2f30}
+                    \definecolor{definitionColor}{HTML}{00704f}
+                    \definecolor{methodColor}{HTML}{906200}
+                    \definecolor{remarkColor}{HTML}{8a5f4a}
+                    \definecolor{alternateColor}{HTML}{6e678f}
+                    \definecolor{applicationColor}{HTML}{557000}
+                    \definecolor{codeColor}{HTML}{0f7688}
+                    \colorlet{sectionColor}{theoremColor}
+                    \colorlet{subsectionColor}{definitionColor}
+                    \colorlet{subsubsectionColor}{methodColor}
+                \else\ifx\neoschool at theme\neo at duo
+                        \definecolor{titleColor}{HTML}{375cd8}
+                        \definecolor{theoremColor}{HTML}{9f4a00}
+                        \definecolor{definitionColor}{HTML}{4250ef}
+                        \definecolor{methodColor}{HTML}{8f5a3a}
+                        \definecolor{remarkColor}{HTML}{856f4a}
+                        \definecolor{alternateColor}{HTML}{63728f}
+                        \definecolor{applicationColor}{HTML}{6052cf}
+                        \definecolor{codeColor}{HTML}{4a7d00}
+                        \colorlet{sectionColor}{theoremColor}
+                        \colorlet{subsectionColor}{definitionColor}
+                        \colorlet{subsubsectionColor}{methodColor}
+                    \else\ifx\neoschool at theme\neo at navy
+                            \definecolor{titleColor}{RGB}{25,75,125}
+                            \definecolor{theoremColor}{RGB}{145,45,45}
+                            \definecolor{definitionColor}{RGB}{35,105,85}
+                            \definecolor{methodColor}{RGB}{125,75,25}
+                            \definecolor{remarkColor}{RGB}{125,75,95}
+                            \definecolor{alternateColor}{RGB}{85,95,105}
+                            \definecolor{applicationColor}{RGB}{75,55,125}
+                            \definecolor{codeColor}{RGB}{45,95,115}
+                            \colorlet{sectionColor}{theoremColor}
+                            \colorlet{subsectionColor}{definitionColor}
+                            \colorlet{subsubsectionColor}{methodColor}
+                        \else\ifx\neoschool at theme\neo at royal
+                                \definecolor{titleColor}{RGB}{5,80,174}
+                                \definecolor{theoremColor}{RGB}{161,40,40}
+                                \definecolor{definitionColor}{RGB}{0,115,85}
+                                \definecolor{methodColor}{RGB}{180,95,45}
+                                \definecolor{remarkColor}{RGB}{130,75,95}
+                                \definecolor{alternateColor}{RGB}{90,100,110}
+                                \definecolor{applicationColor}{RGB}{180,145,35}
+                                \definecolor{codeColor}{RGB}{60,89,90}
+                                \colorlet{sectionColor}{theoremColor}
+                                \colorlet{subsectionColor}{definitionColor}
+                                \colorlet{subsubsectionColor}{methodColor}
+                            \fi
+                        \fi
+                    \fi
+                \fi
+            \fi
+        \fi
+    \fi
+\fi
+
+% Colors for code environments
+\colorlet{codeBackground}{codeColor!5}
+\colorlet{codeEmph}{methodColor}
+\colorlet{codeKeyword}{titleColor}
+\colorlet{codeString}{theoremColor}
+\colorlet{codeComment}{alternateColor}
+\colorlet{codeNumber}{alternateColor}
+
+% Initial setup
+\def\neo at palette{unicolor}
+
+% Basic boolean declarations
+\newif\ifneo at normal
+\newif\ifneo at unicolor
+\newif\ifneo at english
+\newif\ifneo at french
+\newif\ifneo at german
+
+% Style booleans
+\newif\ifneo at classythm
+\newif\ifneo at soberthm
+\newif\ifneo at elegantthm
+\newif\ifneo at classicthm
+\newif\ifneo at slantedthm
+\newif\ifneo at shadedthm
+\newif\ifneo at boxedthm
+\newif\ifneo at amslikethm
+
+% Title booleans
+\newif\ifneo at eval
+\newif\ifneo at evalicons
+\newif\ifneo at evalgrade
+\newif\ifneo at evaliconsgrade
+\newif\ifneo at exam
+\newif\ifneo at fancybox
+\newif\ifneo at onlytitleleft
+\newif\ifneo at onlytitle
+\newif\ifneo at onlytitleright
+\newif\ifneo at bubbles
+\newif\ifneo at shortbubbles
+\newif\ifneo at mockexam
+\newif\ifneo at shortexam
+\newif\ifneo at shorteval
+\newif\ifneo at shorttitle
+\newif\ifneo at shortlesson
+
+% Layout booleans
+\newif\ifneo at noframe
+\newif\ifneo at nocodeframe
+\newif\ifneo at noback
+
+% Font booleans
+\newif\ifneo at sfbody
+\newif\ifneo at sfall
+\newif\ifneo at mathastext
+
+% Other booleans
+\newif\ifneo at print
+\newif\ifneo at fullheader
+\newif\ifneo at headrule
+\newif\ifneo at footrule
+\newif\ifneo at headfootrule
+\newif\ifneo at shuffle
+\newif\ifneo at titlerule
+\newif\ifneo at titlemidrule
+\newif\ifneo at titlefullrule
+\newif\ifneo at titleornament
+
+%% Package specific options
+\newif\ifneo at apmep
+\newif\ifneo at mathics
+\newif\ifneo at listings
+\newif\ifneo at minted
+\newif\ifneo at frenchmath
+
+%% ==============================================================================
+%% Basic Options and Setup Commands
+%% ==============================================================================
+
+% String options declarations
+\DeclareStringOption[black]{globalcolor}
+\DeclareStringOption[sectionColor]{headcolor}
+\DeclareStringOption[subsectionColor]{subcolor}
+\DeclareStringOption[subsubsectionColor]{subsubcolor}
+\DeclareStringOption[titleColor]{titlecolor}
+\DeclareStringOption[]{titlehexcolor}
+\DeclareStringOption[alternateColor]{headfootcolor}
+
+\ProcessKeyvalOptions*\relax
+
+\ifx\neoschool at titlehexcolor\@empty
+\else
+    \definecolor{titleColor}{HTML}{\neoschool at titlehexcolor}
+    \colorlet{subjectColor}{titleColor!80}
+    \colorlet{subtitleColor}{titleColor!60}
+\fi
+
+\DeclareOption{normal}{%
+    \neo at normaltrue\neo at unicolorfalse
+    \colorlet{lemmaColor}{theoremColor}
+    \colorlet{corollaryColor}{theoremColor}
+    \colorlet{propertyColor}{theoremColor}
+    \colorlet{propositionColor}{theoremColor}
+    \colorlet{solutionColor}{theoremColor}
+    \colorlet{activityColor}{applicationColor}
+    \colorlet{codebackColor}{codeColor!5}
+    \colorlet{exerciseColor}{\neoschool at titlecolor}
+    \colorlet{exampleColor}{titleColor}
+    \colorlet{subjectColor}{sectionColor!80!white}
+    \colorlet{subtitleColor}{sectionColor!60!white}
+}
+
+% Unicolor option setup
+\DeclareOption{unicolor}{%
+    \def\neo at palette{unicolor}
+    \neo at normalfalse\neo at unicolortrue
+    \colorlet{definitionColor}{\neoschool at titlecolor}
+    \colorlet{theoremColor}{\neoschool at titlecolor}
+    \colorlet{lemmaColor}{\neoschool at titlecolor}
+    \colorlet{corollaryColor}{\neoschool at titlecolor}
+    \colorlet{propositionColor}{\neoschool at titlecolor}
+    \colorlet{propertyColor}{\neoschool at titlecolor}
+    \colorlet{activityColor}{\neoschool at titlecolor}
+    \colorlet{methodColor}{\neoschool at titlecolor}
+    \colorlet{applicationColor}{\neoschool at titlecolor}
+    \colorlet{codeColor}{\neoschool at titlecolor}
+    \colorlet{exerciseColor}{\neoschool at titlecolor}
+    \colorlet{remarkColor}{\neoschool at titlecolor}
+    \colorlet{exampleColor}{\neoschool at titlecolor}
+    \colorlet{solutionColor}{\neoschool at titlecolor}
+    \colorlet{codebackColor}{\neoschool at titlecolor!5!white}
+    \colorlet{subjectColor}{\neoschool at titlecolor!80}
+    \colorlet{subtitleColor}{\neoschool at titlecolor!60}
+    \renewcommand{\neoschool at headcolor}{\neoschool at titlecolor}
+    \renewcommand{\neoschool at subcolor}{\neoschool at titlecolor}
+    \renewcommand{\neoschool at subsubcolor}{\neoschool at titlecolor}
+}
+
+% Palette of headings color
+\DeclareOption{gradientheadpalette}{%
+    \renewcommand{\neoschool at headcolor}{\neoschool at titlecolor!80!white}
+    \renewcommand{\neoschool at subcolor}{\neoschool at titlecolor!70!white}
+    \renewcommand{\neoschool at subsubcolor}{\neoschool at titlecolor!60!white}
+    \colorlet{subjectColor}{\neoschool at titlecolor!80}
+    \colorlet{subtitleColor}{\neoschool at titlecolor!60}
+}
+
+%% ==============================================================================
+%% Font Options
+%% ==============================================================================
+
+% Fonts
+\DeclareStringOption{mainface}
+\DeclareStringOption{mainfaceoptions}
+\DeclareStringOption{sansface}
+\DeclareStringOption{sansfaceoptions}
+\DeclareStringOption{monoface}
+\DeclareStringOption{monofaceoptions}
+\DeclareStringOption{mathface}
+\DeclareStringOption{mathfaceoptions}
+\DeclareStringOption{facefamily}
+\DeclareStringOption{facefamilyoptions}
+
+%% ==============================================================================
+%% Heading Style Options
+%% ==============================================================================
+
+% Global heading styles
+\DeclareStringOption[sffamily]{headstyle}
+\DeclareStringOption[bfseries]{headweight}
+\DeclareStringOption[scshape]{headshape}
+
+% Title-specific styles
+\DeclareStringOption[\neoschool at headstyle]{titlestyle}
+\DeclareStringOption[\neoschool at headweight]{titleweight}
+\DeclareStringOption[upshape]{titleshape}
+\DeclareStringOption[center]{titlealign}
+
+% Header and Footer styles
+\DeclareStringOption[\neoschool at titlestyle]{headfootstyle}
+
+% Section-specific styles
+\DeclareStringOption[circle]{sectionnumstyle}     % circle, box, dash, plain
+\DeclareStringOption[sc]{sectiontextstyle}        % sc, upper, lower
+\DeclareStringOption[normal]{sectionstyle}        % ornaments, underline, normal, highlighted, shadedline
+\DeclareStringOption[center]{sectionalign}
+
+%% ==============================================================================
+%% Language Support and Setup
+%% ==============================================================================
+
+% Language setup command
+\newcommand{\neo at setupLanguage}[1]{%
+    \neo at englishfalse
+    \neo at frenchfalse
+    \neo at germanfalse
+    \@nameuse{neo@#1true}
+    \renewcommand{\neo at lang}{#1}
+}
+
+% Names definition commands
+\newcommand{\neo at definenames@one}[9]{%
+    \expandafter\def\csname neo at theoremname\endcsname{#1}
+    \expandafter\def\csname neo at propositionname\endcsname{#2}
+    \expandafter\def\csname neo at propertyname\endcsname{#3}
+    \expandafter\def\csname neo at lemmaname\endcsname{#4}
+    \expandafter\def\csname neo at corollaryname\endcsname{#5}
+    \expandafter\def\csname neo at definitionname\endcsname{#6}
+    \expandafter\def\csname neo at examplename\endcsname{#7}
+    \expandafter\def\csname neo at exercisename\endcsname{#8}
+    \expandafter\def\csname neo at remarkname\endcsname{#9}
+}
+
+\newcommand{\neo at definenames@two}[9]{%
+    \expandafter\def\csname neo at problemname\endcsname{#1}
+    \expandafter\def\csname neo at conjecturename\endcsname{#2}
+    \expandafter\def\csname neo at activityname\endcsname{#3}
+    \expandafter\def\csname neo at methodname\endcsname{#4}
+    \expandafter\def\csname neo at applicationname\endcsname{#5}
+    \expandafter\def\csname neo at competencies\endcsname{#6}
+    \expandafter\def\csname neo at codename\endcsname{#7}
+    \expandafter\def\csname neo at algorithmname\endcsname{#8}
+    \expandafter\def\csname neo at pagename\endcsname{#9}
+}
+
+\newcommand{\neo at definenames@three}[1]{%
+    \expandafter\def\csname neo at solutionname\endcsname{#1}
+}
+
+\newcommand{\neo at definepath}[1]{%
+    \expandafter\def\csname neo at pathname\endcsname{#1}
+}
+
+\newcommand{\neo at defineextra}[2]{%
+    \expandafter\def\csname neo at examplesname\endcsname{#1}
+    \expandafter\def\csname neo at solutiongaptext\endcsname{#2}
+}
+
+% Language options
+\DeclareOption{english}{%
+    \neo at setupLanguage{english}
+    \AtEndOfClass{\sisetup{locale = US,detect-all}}
+    \neo at definenames@one{Theorem}{Proposition}{Property}{Lemma}{Corollary}{Definition}{Example}{Exercise}{Remark}
+    \neo at definenames@two{Problem}{Conjecture}{Activity}{Method}{Application}{Competencies}{Listing}{Algorithm}{Page}
+    \neo at definenames@three{Solution}
+    \neo at defineextra{Examples}{of exercise }
+    \neo at definepath{Path}
+}
+
+\DeclareOption{french}{%
+    \neo at setupLanguage{french}
+    \AtEndOfClass{%
+        \sisetup{locale = FR,detect-all}%
+        \renewcommand*{\today}{\number\day\space\ifcase\month\or
+                janvier\or février\or mars\or avril\or mai\or juin\or
+                juillet\or août\or septembre\or octobre\or novembre\or
+                décembre\fi\space\number\year}%
+    }
+    \neo at definenames@one{Théorème}{Proposition}{Propriété}{Lemme}{Corollaire}{Définition}{Exemple}{Exercice}{Remarque}
+    \neo at definenames@two{Problème}{Conjecture}{Activité}{Méthode}{Application}{Compétences}{Programme}{Algorithme}{Page}
+    \neo at definenames@three{Corrigé}
+    \neo at defineextra{Exemples}{de l'exercice }
+    \neo at definepath{Parcours}
+}
+
+\DeclareOption{german}{%
+    \neo at setupLanguage{german}
+    \AtEndOfClass{\sisetup{locale = DE,detect-all}}
+    \neo at definenames@one{Theorem}{Proposition}{Eigenschaft}{Lemma}{Korollar}{Definition}{Beispiel}{Übung}{Bemerkung}
+    \neo at definenames@two{Problem}{Vermutung}{Aktivität}{Methode}{Anwendung}{Fähigkeiten}{Auflistung}{Algorithmus}{Seite}
+    \neo at definenames@three{Lösung}
+    \neo at defineextra{Beispiele}{von Übung }
+    \neo at definepath{Stufe}
+}
+
+\DeclareOption{nofrenchlist}{\AtEndOfClass{\frenchsetup{StandardItemLabels=true}}}
+\DeclareOption{frenchlistaspar}{\AtEndOfClass{\frenchsetup{ListItemsAsPar=true}}}
+
+%% ==============================================================================
+%% Style Setup
+%% ==============================================================================
+
+% Style setup command
+\newcommand{\neo at setupstyle}[1]{%
+    \neo at classythmfalse
+    \neo at soberthmfalse
+    \neo at elegantthmfalse
+    \neo at classicthmfalse
+    \neo at slantedthmfalse
+    \neo at shadedthmfalse
+    \neo at boxedthmfalse
+    \neo at amslikethmfalse
+    \@nameuse{neo@#1true}
+    \def\neo at style{#1}
+}
+
+% Style options
+\DeclareOption{classythm}{\neo at setupstyle{classythm}}
+\DeclareOption{soberthm}{\neo at setupstyle{soberthm}}
+\DeclareOption{classicthm}{\neo at setupstyle{classicthm}}
+\DeclareOption{slantedthm}{\neo at setupstyle{slantedthm}}
+\DeclareOption{shadedthm}{\neo at setupstyle{shadedthm}}
+\DeclareOption{boxedthm}{\neo at setupstyle{boxedthm}}
+\DeclareOption{amslikethm}{\neo at setupstyle{amslikethm}}
+\DeclareOption{elegantthm}{\neo at setupstyle{elegantthm}}
+
+\DeclareStringOption[colorful]{lststyle}
+
+%% ==============================================================================
+%% Layout Settings
+%% ==============================================================================
+
+% Layout setup command
+\newcommand{\neo at setuplayout}[1]{%
+    \@nameuse{neo@#1true}
+}
+
+% Frame and background options
+\DeclareOption{noback}{\neo at setuplayout{noback}}
+\DeclareOption{noframe}{\neo at setuplayout{noframe}}
+\DeclareOption{nocodeframe}{\neo at setuplayout{nocodeframe}}
+
+\DeclareStringOption[1em]{indent}
+\DeclareBoolOption{noindent}
+
+\AtEndOfPackage{%
+    \ifneoschool at noindent
+        \AtBeginDocument{\setlength{\parindent}{0pt}}%
+    \else
+        \AtBeginDocument{\setlength{\parindent}{\neoschool at indent}}%
+    \fi
+}
+
+%% ==============================================================================
+%% Font Settings
+%% ==============================================================================
+
+% Font setup command
+\newcommand{\neo at setupfont}[1]{%
+    \@nameuse{neo@#1true}
+    \ifx#1sfall
+        \neo at sfbodytrue
+    \fi
+}
+
+% Font options
+\DeclareOption{sfbody}{\neo at setupfont{sfbody}}
+\DeclareOption{sfall}{\neo at setupfont{sfall}}
+\DeclareOption{mathastext}{\neo at setupfont{mathastext}}
+
+%% ==============================================================================
+%% Title Settings
+%% ==============================================================================
+
+% Title setup command
+\newcommand{\neo at setuptitle}[1]{%
+    \neo at evalfalse
+    \neo at evaliconsfalse
+    \neo at evalgradefalse
+    \neo at evaliconsgradefalse
+    \neo at examfalse
+    \neo at fancyboxfalse
+    \neo at onlytitleleftfalse
+    \neo at onlytitlefalse
+    \neo at onlytitlerightfalse
+    \neo at bubblesfalse
+    \neo at shortbubblesfalse
+    \neo at mockexamfalse
+    \neo at shortexamfalse
+    \@nameuse{neo@#1true}
+}
+
+% Title options
+\DeclareOption{exam}{\neo at setuptitle{exam}}
+\DeclareOption{eval}{\neo at setuptitle{eval}}
+\DeclareOption{evalicons}{\neo at setuptitle{evalicons}}
+\DeclareOption{evalgrade}{\neo at setuptitle{evalgrade}}
+\DeclareOption{evaliconsgrade}{\neo at setuptitle{evaliconsgrade}}
+\DeclareOption{fancybox}{\neo at setuptitle{fancybox}}
+\DeclareOption{onlytitleleft}{\neo at setuptitle{onlytitleleft}}
+\DeclareOption{onlytitle}{\neo at setuptitle{onlytitle}}
+\DeclareOption{onlytitleright}{\neo at setuptitle{onlytitleright}}
+\DeclareOption{bubbles}{\neo at setuptitle{bubbles}}
+\DeclareOption{shortbubbles}{\neo at setuptitle{shortbubbles}}
+\DeclareOption{mockexam}{\neo at setuptitle{mockexam}}
+\DeclareOption{shortexam}{\neo at setuptitle{shortexam}}
+\DeclareOption{shorteval}{\neo at setuptitle{shorteval}}
+\DeclareOption{shorttitle}{\neo at setuptitle{shorttitle}}
+\DeclareOption{shortlesson}{\neo at setuptitle{shortlesson}}
+
+%% ==============================================================================
+%% Print and Color Settings
+%% ==============================================================================
+
+% Print setup command
+\newcommand{\neo at setupprint}{%
+    \neo at printtrue%
+    \neo at normaltrue\neo at unicolortrue% Force unicolor mode
+    % Set all colors to black
+    \renewcommand{\neoschool at globalcolor}{black}%
+    \renewcommand{\neoschool at headcolor}{black}%
+    \renewcommand{\neoschool at subcolor}{black}%
+    \renewcommand{\neoschool at subsubcolor}{black}%
+    \renewcommand{\neoschool at titlecolor}{black}%
+    \renewcommand{\neoschool at headfootcolor}{black}%
+    \colorlet{subjectColor}{black!80}%
+    \colorlet{subtitleColor}{black!60}%
+    \AtEndOfClass{%
+        \colorlet{verbColor}{\neoschool at titlecolor}%
+    }
+    % Override all theme colors to black
+    \colorlet{definitionColor}{black}%
+    \colorlet{theoremColor}{black}%
+    \colorlet{lemmaColor}{black}%
+    \colorlet{corollaryColor}{black}%
+    \colorlet{propertyColor}{black}%
+    \colorlet{propositionColor}{black}%
+    \colorlet{activityColor}{black}%
+    \colorlet{methodColor}{black}%
+    \colorlet{applicationColor}{black}%
+    \colorlet{codeColor}{black}%
+    \colorlet{codebackColor}{black!5}%
+    \colorlet{exerciseColor}{black}%
+    \colorlet{exampleColor}{black}%
+    \colorlet{solutionColor}{black}%
+    \colorlet{alternateColor}{black}%
+    % Override admonition colors
+    \colorlet{noteColor}{black}%
+    \colorlet{infoColor}{black}%
+    \colorlet{warningColor}{black}%
+    \colorlet{importantColor}{black}%
+    \colorlet{tipColor}{black}%
+    \colorlet{reminderColor}{black}%
+    \colorlet{summaryColor}{black}%
+    \colorlet{toolboxColor}{black}%
+    % Override hyperref colors
+    \def\Hy at linkcolor{black}
+    \def\Hy at anchorcolor{black}
+    \def\Hy at citecolor{black}
+    \def\Hy at filecolor{black}
+    \def\Hy at menucolor{black}
+    \def\Hy at runcolor{black}
+    \def\Hy at urlcolor{black}
+    % Code syntax colors
+    \def\neo at keywordstyle{\color{black}\bfseries}%
+    \def\neo at commentstyle{\color{black!75}}%
+    \def\neo at stringstyle{\color{black}}%
+    \def\neo at emphstyle{\color{black}\bfseries}%
+    % Set minted style to bw if minted is used
+    \ifneo at minted
+        \usemintedstyle{bw}%
+    \fi
+}
+
+% Print option
+\DeclareOption{print}{\neo at setupprint}
+
+%% ==============================================================================
+%% Header and Footer Settings
+%% ==============================================================================
+
+% Header/footer setup command
+\newcommand{\neo at setupheadfoot}[1]{%
+    \@nameuse{neo@#1true}
+}
+
+% Header/footer options
+\DeclareOption{fullheader}{\neo at setupheadfoot{fullheader}}
+\DeclareOption{headrule}{\neo at setupheadfoot{headrule}}
+\DeclareOption{footrule}{\neo at setupheadfoot{footrule}}
+\DeclareOption{headfootrule}{\neo at setupheadfoot{headfootrule}}
+
+%% ==============================================================================
+%% Title Formatting Settings
+%% ==============================================================================
+
+% Title formatting setup command
+\newcommand{\neo at setuptitleformat}[1]{%
+    \@nameuse{neo@#1true}
+}
+
+% Title formatting options
+\DeclareOption{titlerule}{\neo at setuptitleformat{titlerule}}
+\DeclareOption{titlemidrule}{\neo at setuptitleformat{titlemidrule}}
+\DeclareOption{titlefullrule}{\neo at setuptitleformat{titlefullrule}}
+\DeclareOption{titleornament}{\neo at setuptitleformat{titleornament}}
+
+%% ==============================================================================
+%% Package Specific Options
+%% ==============================================================================
+
+% Package setup command
+\newcommand{\neo at setuppackage}[1]{%
+    \@nameuse{neo@#1true}
+}
+
+% Package options
+\DeclareOption{math}{\neo at setuppackage{math}}
+\DeclareOption{apmep}{\neo at setuppackage{apmep}}
+\DeclareOption{mathics}{\neo at setuppackage{mathics}}
+\DeclareOption{listings}{\neo at setuppackage{listings}}
+\DeclareOption{minted}{\neo at setuppackage{minted}}
+\DeclareOption{frenchmath}{\neo at setuppackage{frenchmath}}
+
+%% ==============================================================================
+%% Abstract Name
+%% ==============================================================================
+
+\DeclareStringOption[abstractname]{abstracttitle}
+
+%% ==============================================================================
+%% Margin Options
+%% ==============================================================================
+
+\DeclareStringOption{margin}
+\DeclareStringOption{notes}
+
+%% ==============================================================================
+%% Solution Settings
+%% ==============================================================================
+
+% Solution options
+\DeclareBoolOption{answers}
+\DeclareOption{shuffle}{\neo at shuffletrue}
+
+%% ==============================================================================
+%% Grading Total
+%% ==============================================================================
+
+\DeclareStringOption[20]{totalpoints}
+
+%% ==============================================================================
+%% Box Settings
+%% ==============================================================================
+
+% Box options
+\DeclareStringOption{boxtitle}
+\DeclareStringOption[2mm]{boxarc}
+\DeclareStringOption[2pt]{pseudoboxarc}
+
+% Box setup command
+\newcommand{\neo at setupbox}[2]{%
+    \expandafter\def\csname neo at box@#1\endcsname{#2}
+}
+
+%% ==============================================================================
+%% Theorem Settings
+%% ==============================================================================
+
+\DeclareBoolOption{sectionthmcounter}
+\DeclareBoolOption{sharedthmcounter}
+\DeclareBoolOption{thmgroupcounter}
+
+\newif\ifneoschool at sharedexcounter
+\DeclareOption{sharedexcounter}{%
+    \neoschool at sharedexcountertrue
+    \neoschool at sharedthmcountertrue
+}
+
+%% ==============================================================================
+%% Exercices With Icons
+%% ==============================================================================
+
+\newif\ifneo at exerciseicons
+\DeclareOption{exerciseicons}{\neo at exerciseiconstrue}
+
+%% ==============================================================================
+%% Font Scaling Options
+%% ==============================================================================
+
+\newif\ifneo at scale
+\DeclareBoolOption{scale}
+
+%% ==============================================================================
+%% Graphics Mode
+%% ==============================================================================
+
+\DeclareBoolOption{graphics}
+
+%% ==============================================================================
+%% Extended Math Mode
+%% ==============================================================================
+
+\DeclareBoolOption{math}
+
+%% ==============================================================================
+%% Draft Mode
+%% ==============================================================================
+
+\DeclareBoolOption{faketext}
+
+%% ==============================================================================
+%% Compact Option
+%% ==============================================================================
+
+\newif\ifneo at compact
+\DeclareOption{compact}{\neo at compacttrue}
+
+%% ==============================================================================
+%% Output Options
+%% ==============================================================================
+
+\newif\ifneo at twoupafourmode
+\newif\ifneo at twoupathreemode
+\newif\ifneo at fourupathreemode
+\newif\ifneo at simpletwoupmode
+\newif\ifneo at bookletafourmode
+\newif\ifneo at bookletathreemode
+
+\DeclareOption{2a5toa4}{\neo at twoupafourmodetrue}
+\DeclareOption{2a4toa3}{\neo at twoupathreemodetrue}
+\DeclareOption{4a5toa3}{\neo at fourupathreemodetrue}
+\DeclareOption{2toa3}{\neo at simpletwoupmodetrue}
+\DeclareOption{bookleta5}{\neo at bookletafourmodetrue}
+\DeclareOption{bookleta4}{\neo at bookletathreemodetrue}
+
+\ifneo at twoupafourmode
+    \PassOptionsToClass{a5paper}{scrartcl}
+    \AtEndPreamble{
+        \KOMAoptions{paper=a5}
+        \neo at setupmargins{last}
+        \areaset{12cm}{19cm}
+    }
+\fi
+
+\ifneo at twoupathreemode
+    \PassOptionsToClass{a4paper}{scrartcl}
+\fi
+
+\ifneo at fourupathreemode
+    \PassOptionsToClass{a5paper}{scrartcl}
+    \AtEndPreamble{
+        \KOMAoptions{paper=a5}
+        \neo at setupmargins{last}
+        \areaset{12cm}{19cm}
+    }
+\fi
+
+\ifneo at simpletwoupmode
+    \PassOptionsToClass{a4paper}{scrartcl}
+    \AtEndPreamble{
+        \KOMAoptions{paper=a4}
+        \neo at setupmargins{30}
+        \areaset{19cm}{29cm}
+    }
+\fi
+
+\ifneo at bookletafourmode
+    \PassOptionsToClass{a5paper}{scrartcl}
+    \AtEndPreamble{
+        \KOMAoptions{paper=a5}
+        \neo at setupmargins{last}
+        \areaset{12cm}{19cm}
+    }
+\fi
+
+\ifneo at bookletathreemode
+    \PassOptionsToClass{a4paper}{scrartcl}
+\fi
+
+%% ==============================================================================
+%% Final Class Setup
+%% ==============================================================================
+
+% Define default language and style
+\def\neo at lang{english}
+\def\neo at style{classic}
+
+% Pass unknown options to scrartcl
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+
+% Process keyval options
+\ProcessKeyvalOptions*\relax
+
+% Default options
+\ExecuteOptions{%
+    english,               % Default language
+    amslikethm,            % Default theorem style
+    normal,                % Default color palette
+    listings,              % Default packages for Listings
+}
+
+% Process remaining options
+\ProcessOptions\relax
+
+% Load base class
+\LoadClass{scrartcl}
+
+\KOMAoptions{%
+    DIV=last,
+    parskip=half
+}
+
+\let\@unusedoptionlist\@empty
+
+%% ==============================================================================
+%% Page Layout Configuration
+%% ==============================================================================
+
+\newcommand{\neo at setupmargins}[1]{%
+    \KOMAoptions{%
+        DIV=calc,
+        DIV=#1,
+        BCOR=0pt,
+        headinclude=true,
+        footinclude=true
+    }%
+}
+
+% Intentionally small margins for teaching materials - ignore typearea warning
+\neo at setupmargins{last}
+\areaset{19cm}{29.25cm}
+\setlength{\headheight}{27pt}
+\setlength{\footskip}{27pt}
+
+\widowpenalty=10000
+\clubpenalty=10000
+
+\displaywidowpenalty=10000
+\predisplaypenalty=10000
+\postdisplaypenalty=10000
+\interlinepenalty=10000
+
+\raggedbottom
+
+%% ==============================================================================
+%% Output Options
+%% ==============================================================================
+
+\AtEndPreamble{
+    \ifneo at twoupafourmode
+        \usepackage{pgfmorepages}
+        \pgfmorepagesloadextralayouts
+        \pgfpagesuselayout{repeated 2-up}[a4paper,landscape]
+        \pgfpagesphysicalpage{2}{}
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.25\pgfphysicalwidth}{.5\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{2}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.75\pgfphysicalwidth}{.5\pgfphysicalheight}
+        }
+    \fi
+
+    \ifneo at twoupathreemode
+        \usepackage{pgfmorepages}
+        \pgfmorepagesloadextralayouts
+        \pgfpagesuselayout{repeated 2-up}[a3paper,landscape]
+        \areaset{19cm}{29cm}
+        \pgfpagesphysicalpage{2}{}
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.25\pgfphysicalwidth}{.5\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.75\pgfphysicalwidth}{.5\pgfphysicalheight}
+        }
+    \fi
+
+    \ifneo at fourupathreemode
+        \usepackage{pgfmorepages}
+        \pgfmorepagesloadextralayouts
+        \pgfpagesuselayout{repeated 4-up}[a3paper]
+        \pgfpagesphysicalpage{4}{}
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.25\pgfphysicalwidth}{.25\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.25\pgfphysicalwidth}{.75\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.75\pgfphysicalwidth}{.25\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.75\pgfphysicalwidth}{.75\pgfphysicalheight}
+        }
+    \fi
+
+    \ifneo at simpletwoupmode
+        \usepackage{pgfmorepages}
+        \pgfmorepagesloadextralayouts
+        \pgfpagesuselayout{2 on 1}[a3paper,landscape]
+        \pgfpagesphysicalpage{2}{}
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.25\pgfphysicalwidth}{.5\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{2}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.75\pgfphysicalwidth}{.5\pgfphysicalheight}
+        }
+    \fi
+
+    \ifneo at bookletafourmode
+        \usepackage{pgfmorepages}
+        \pgfmorepagesloadextralayouts
+        \pgfpagesuselayout{4 on 2, book format}[a4paper,landscape]
+        \pgfpagesphysicalpage{4}{}
+        \pgfpageslogicalpageoptions{4}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.25\pgfphysicalwidth}{.25\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.25\pgfphysicalwidth}{.75\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{2}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.75\pgfphysicalwidth}{.25\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{3}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.75\pgfphysicalwidth}{.75\pgfphysicalheight}
+        }    \fi
+
+    \ifneo at bookletathreemode
+        \usepackage{pgfmorepages}
+        \pgfmorepagesloadextralayouts
+        \pgfpagesuselayout{4 on 2, book format}[a3paper,landscape]
+        \areaset{19cm}{29.25cm}
+        \setlength{\headheight}{27pt}
+        \setlength{\footskip}{27pt}
+        \pgfpagesphysicalpage{4}{}
+        \pgfpageslogicalpageoptions{4}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.25\pgfphysicalwidth}{.25\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{1}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.25\pgfphysicalwidth}{.75\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{2}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.75\pgfphysicalwidth}{.25\pgfphysicalheight}
+        }
+        \pgfpageslogicalpageoptions{3}{
+            resized width=.9\pgfphysicalwidth,
+            resized height=\pgfphysicalheight,
+            center=\pgfpoint{.75\pgfphysicalwidth}{.75\pgfphysicalheight}
+        }
+    \fi
+}
+
+%% ==============================================================================
+%% Box and Frame Conditions Setup
+%% ==============================================================================
+
+% Basic color definitions for tcolorbox
+\newcommand{\neo at tcbcolback}{tcbcolframe!5}
+\newcommand{\neo at tcbcolbacklower}{white}
+\newcommand{\neo at tcbcolupper}{black}
+\newcommand{\neo at tcbcoltitle}{white}
+
+% Frame options definitions
+\newcommand{\neo at framehidden}{}
+\newcommand{\neo at thmborder}{1pt}
+\newcommand{\neo at leftpadding}{1ex}
+\newcommand{\neo at rightpadding}{1ex}
+\newcommand{\neo at toppadding}{1ex}
+\newcommand{\neo at bottompadding}{1ex}
+\newcommand{\neo at titleleftpadding}{0.5em}
+\newcommand{\neo at titlerightpadding}{0.5em}
+\newcommand{\neo at titletoppadding}{3pt}
+\newcommand{\neo at titlebottompadding}{3pt}
+\newcommand{\neo at beforeskip}{0.5\baselineskip}
+\newcommand{\neo at afterskip}{0.5\baselineskip}
+
+% Handle noback option:
+% Changes background colors to white for main boxes
+\ifneo at noback
+    \renewcommand{\neo at tcbcolback}{white}
+    \colorlet{codebackColor}{white}
+    \renewcommand{\neo at tcbcolbacklower}{tcbcolframe!5}
+\fi
+
+% Handle noframe option:
+% Hides frames and adjusts title color
+\ifneo at noframe
+    \renewcommand{\neo at framehidden}{frame hidden}
+    \renewcommand{\neo at thmborder}{0pt}
+    \renewcommand{\neo at tcbcoltitle}{tcbcolframe}
+    \ifneo at noback
+        \renewcommand{\neo at leftpadding}{-2pt}
+        \renewcommand{\neo at rightpadding}{-2pt}
+        \renewcommand{\neo at toppadding}{-1pt}
+        \renewcommand{\neo at bottompadding}{-1pt}
+        \renewcommand{\neo at titleleftpadding}{-2.5pt}
+        \renewcommand{\neo at titlerightpadding}{-2.5pt}
+        \renewcommand{\neo at titletoppadding}{-2pt}
+        \renewcommand{\neo at titlebottompadding}{-2pt}
+        \renewcommand{\neo at beforeskip}{0.25\baselineskip}
+        \renewcommand{\neo at afterskip}{0.25\baselineskip}
+    \fi
+\fi
+
+% Handle nocodeframe option:
+% Hides code block frames and adjusts colors
+\ifneo at nocodeframe
+    \colorlet{codeColor}{codebackColor}
+\fi
+
+% Adjust spacing for two-column mode
+\if at twocolumn
+    \setlength{\columnsep}{1em}
+\fi
+
+%% ==============================================================================
+%% Required Packages Setup
+%% ==============================================================================
+
+%% Core packages
+\RequirePackage{iftex}                    % Engine detection
+\RequirePackage{xkeyval}                  % Extended key-value support
+\RequirePackage{xstring}                  % String manipulation
+\RequirePackage{calc}                     % Length calculations
+\RequirePackage{ifthen}                   % Boolean expression
+\RequirePackage{pdftexcmds}               % Conditionals
+\RequirePackage{environ}                  % New Environments
+
+% Hide Some Warnings
+\RequirePackage{silence}
+\WarningFilter{latexfont}{Font shape}
+\renewcommand{\@font at warning}[1]{}
+\WarningFilter{mismath}{}
+\WarningFilter{multicol}{}
+
+%% Language support
+\ifluatex
+    \RequirePackage{fontspec}
+\fi
+
+\ifneo at french
+    \RequirePackage[main=french,shorthands=off]{babel}
+\else\ifneo at german
+        \RequirePackage[main=german]{babel}
+    \else
+        \RequirePackage[main=english]{babel}
+    \fi\fi
+
+\RequirePackage{scrlayer-scrpage}        % Headers and footers
+
+\RequirePackage{multicol}                % Multiple columns
+\RequirePackage{changepage}              % Dynamic page dimensions
+\RequirePackage{needspace}               % Control page breaks
+
+%% Graphics and colors
+\RequirePackage[most]{tcolorbox}         % Colored boxes and frames
+\RequirePackage{tikz}                    % Drawing tools
+\RequirePackage{pgfplots}                % Plotting tools
+\pgfplotsset{compat=1.8}                 % Set pgfplots version
+
+%% TikZ libraries
+\usetikzlibrary{%
+    backgrounds,
+    calc,
+    decorations.shapes,
+    positioning,
+    shadows,
+    shapes.arrows,
+    shapes.geometric,
+    shapes.misc
+}
+
+\ifneoschool at faketext
+  \RequirePackage{blindtext}              % Fake Text in English and German
+  \RequirePackage{lipsum}                 % Fake Text in Latin
+\fi
+
+\ifneoschool at graphics
+  \RequirePackage{wrapfig}                 % Wrapped figures
+  \RequirePackage{graphicx}                % Images
+\fi
+
+%% Additional TikZ-related packages
+\RequirePackage{tikzsymbols}             % Additional symbols
+\RequirePackage{tikzpagenodes}           % Page coordinate system
+\RequirePackage{forest}                  % Tree diagrams
+\useforestlibrary{linguistics}
+
+%% LuaTeX specific packages
+\ifluatex
+    \usetikzlibrary{graphs,graphdrawing,quotes}
+    \usegdlibrary{circular,force,layered,routing,trees}
+    \RequirePackage{luacolor}            % Color support for LuaTeX
+    \RequirePackage{lua-ul}              % Underlining for LuaTeX
+    \RequirePackage{luacas}              % Computer algebra for LuaTeX
+\fi
+
+%% Tables and arrays
+\RequirePackage{tabularray}              % Advanced tables
+\UseTblrLibrary{%
+    amsmath,
+    booktab,
+    diagbox,
+    functional,
+    varwidth,
+    siunitx
+}
+
+\RequirePackage{adjustbox}               % Adjusting box dimensions
+
+%% Extended Math packages
+\ifneoschool at math
+  \RequirePackage[suite,taupe]{tdsfrmath}  % French Math macros
+\fi
+
+\RequirePackage{mismath}                 % Miscellaneous math macros (includes mathtools)
+
+\ifneoschool at math
+  \RequirePackage{amssymb}                 % Mathematical symbols
+  \RequirePackage{ncccomma}                % Math Comma
+\fi
+
+%% APMEP Compatibility Mode - Option 'apmep'
+
+\ifneo at apmep
+    %% APMEP required packages
+    \RequirePackage{textcomp}               % Text companion fonts
+    \RequirePackage{esvect}                 % Vector arrows
+    \RequirePackage{fourier-orns}           % Ornaments
+    \RequirePackage{tabularx}               % Extended tables
+    \RequirePackage[np]{numprint}           % Number printing
+
+    %% PSTricks suite for APMEP
+    \RequirePackage{pstricks}               % Base PSTricks
+    \RequirePackage{pst-plot}               % Plotting
+    \RequirePackage{pst-tree}               % Trees
+    \RequirePackage{pst-node}               % Nodes
+    \RequirePackage{pst-text}               % Text effects
+    \RequirePackage{pst-eucl}               % Euclidean geometry
+    \RequirePackage{pst-3dplot}             % 3D plotting
+    \undef\pscalculate
+    \RequirePackage{pst-bezier}             % Bezier curves
+    \RequirePackage{pst-all}                % Loads most PSTricks packages
+    \RequirePackage{pstricks-add}           % Additional features
+
+    %% APMEP specific commands
+    \newcommand{\euro}{\eurologo{}}
+    \newcommand{\cg}{\texttt{]}}            % Left bracket
+    \newcommand{\cd}{\texttt{[}}            % Right bracket
+    \newcommand{\pg}{\geqslant}             % Greater than or equal
+    \newcommand{\pp}{\leqslant}             % Less than or equal
+    \newcommand{\vectt}[1]{\overrightarrow{\,\mathstrut\text{#1}\,}}
+    \newcommand{\barre}[1]{\overline{\,\mathstrut#1\,}}
+    \renewcommand{\d}{\,\text{d}}           % Differential d
+    \renewcommand{\i}{\,\text{i}\,}         % Complex i
+
+    %% APMEP enumeration style
+    \renewcommand{\theenumi}{\textbf{\arabic{enumi}}}
+    \renewcommand{\labelenumi}{\textbf{\theenumi.}}
+    \renewcommand{\theenumii}{\textbf{\alph{enumii}}}
+    \renewcommand{\labelenumii}{\textbf{\theenumii.}}
+
+    %% APMEP coordinate systems
+    \def\Oij{$\left(\text{O}~;~\vect{\imath},~\vect{\jmath}\right)$}
+    \def\Oijk{$\left(\text{O}~;~\vect{\imath},~\vect{\jmath},~\vect{k}\right)$}
+    \def\Ouv{$\left(\text{O}~;~\vect{u},~\vect{v}\right)$}
+
+    %% APMEP font declaration
+    \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\fi
+
+%% Computer algebra system support
+\ifneo at mathics
+    \RequirePackage[mathics]{latexalpha2}
+    \RequirePackage{asymptote}
+\fi
+
+%% Lists and enumerations
+\RequirePackage{tasks}                     % Horizontal lists
+
+%% Utilities and tools
+\RequirePackage{cuted}                     % Abstract settings
+\RequirePackage{qrcode}                    % QR code generation
+\RequirePackage{xhfill}                    % Extended filling
+\RequirePackage{fontawesome5}              % Icons
+\RequirePackage{adforn}                    % Ornaments
+\ifx\neoschool at notes\@empty\else
+    \RequirePackage[%
+        \neo at lang,
+        textsize=scriptsize
+    ]{todonotes}                               % Todo notes
+\fi
+\RequirePackage{marginnote}                % Margin notes
+\RequirePackage{algpseudocode}             % Algorithms
+\RequirePackage{textcase}                  % Text case changing
+\RequirePackage[use-files,clear-aux]{xsim} % Exercise sheets
+\RequirePackage[normalem]{ulem}            % Underlining
+
+%% Microtype
+\AtEndOfClass{\RequirePackage{microtype}}
+
+%% Hyperref setup
+\definecolor{neo at linkcolor}{named}{\neoschool at titlecolor}
+\definecolor{neo at filecolor}{named}{\neoschool at titlecolor}
+\definecolor{neo at urlcolor}{named}{\neoschool at titlecolor}
+
+\RequirePackage{bookmark}
+\RequirePackage{lastpage}
+
+\hypersetup{%
+    colorlinks=true,
+    linkcolor=neo at linkcolor,
+    filecolor=neo at filecolor,
+    urlcolor=neo at urlcolor,
+}%
+
+%% ==============================================================================
+%% Font Settings
+%% ==============================================================================
+
+% Font variable definitions
+\edef\mainface{\expandonce{\neoschool at mainface}}
+\edef\sansface{\expandonce{\neoschool at sansface}}
+\edef\monoface{\expandonce{\neoschool at monoface}}
+\edef\mathface{\expandonce{\neoschool at mathface}}
+\edef\facefamily{\expandonce{\neoschool at facefamily}}
+
+% PdfLaTeX configuration
+\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0
+\RequirePackage[utf8]{inputenc}
+\RequirePackage[T1]{fontenc}
+
+\expandafter\ifblank\expandafter{\facefamily}{%
+    % Load individual fonts if facefamily is not defined
+    \expandafter\ifblank\expandafter{\mathface}{\ifneo at mathastext
+    \RequirePackage[italic,eulergreek]{mathastext}\else\RequirePackage{newpxmath}\fi}{\RequirePackage[\neoschool at mathfaceoptions]{\neoschool at mathface}}
+
+    \expandafter\ifblank\expandafter{\mainface}{\RequirePackage{newpxtext}}{\RequirePackage[\neoschool at mainfaceoptions]{\neoschool at mainface}}
+    \expandafter\ifblank\expandafter{\sansface}{}{\RequirePackage[\neoschool at sansfaceoptions]{\neoschool at sansface}}
+    \expandafter\ifblank\expandafter{\monoface}{}{\RequirePackage[\neoschool at monofaceoptions]{\neoschool at monoface}}
+}{
+    % Load font family if defined
+    \RequirePackage[\neoschool at facefamilyoptions]{\neoschool at facefamily}
+}
+\else
+% % LuaLaTeX configuration
+\RequirePackage{fontspec}
+
+\ifneo at scale
+  \defaultfontfeatures[\rmfamily]{Scale=1}
+  \defaultfontfeatures{Scale=MatchLowercase}
+\fi
+
+\defaultfontfeatures{Ligatures=TeX,Renderer=HarfBuzz}
+
+\expandafter\ifblank\expandafter{\mathface}{%
+    \ifneo at mathastext
+    \RequirePackage[italic,eulergreek]{mathastext}
+    \else
+    \RequirePackage{newpxmath}
+    \fi
+  }{%
+    \RequirePackage{\mathface}
+  }
+\expandafter\ifblank\expandafter{\mainface}{%
+    \setmainfont{TeX Gyre PagellaX}
+  }{%
+    \setmainfont[\neoschool at mainfaceoptions]{\neoschool at mainface}
+  }
+\expandafter\ifblank\expandafter{\sansface}{%
+    \setsansfont{TeX Gyre Heros}
+  }{%
+    \setsansfont[\neoschool at sansfaceoptions]{\neoschool at sansface}
+  }
+\expandafter\ifblank\expandafter{\monoface}{%
+    \setmonofont{Cascadia Code}
+  }{%
+    \setmonofont[\neoschool at monofaceoptions]{\neoschool at monoface}
+  }
+\fi
+
+\RequirePackage{bm} % Bold Math
+
+% Common configuration
+\ifneo at sfbody
+    \renewcommand{\familydefault}{\sfdefault}
+\fi
+
+% Advances Math Packages
+\ifneoschool at math
+  \RequirePackage{mathrsfs}                % Mathematical script font
+  \RequirePackage{annotate-equations}      % Equation annotations
+  \RequirePackage{witharrows}              % Step-by-step solutions
+  \RequirePackage[np]{numprint}            % Number printing
+  \RequirePackage{xlop}                    % Arithmetic operations
+  \RequirePackage{breqn}                   % Multiline Equations
+  \RequirePackage{tkz-euclide}             % Euclidean geometry
+  \RequirePackage{cancel}                  % Cancel an expression
+\fi
+
+\AtBeginDocument{
+    \mathcode`\;="303B
+}
+
+% Upright Capital and Greek Letters
+\ifneo at frenchmath
+    \DeclareMathSymbol{A}{\mathalpha}{operators}{65}
+    \DeclareMathSymbol{B}{\mathalpha}{operators}{66}
+    \DeclareMathSymbol{C}{\mathalpha}{operators}{67}
+    \DeclareMathSymbol{D}{\mathalpha}{operators}{68}
+    \DeclareMathSymbol{E}{\mathalpha}{operators}{69}
+    \DeclareMathSymbol{F}{\mathalpha}{operators}{70}
+    \DeclareMathSymbol{G}{\mathalpha}{operators}{71}
+    \DeclareMathSymbol{H}{\mathalpha}{operators}{72}
+    \DeclareMathSymbol{I}{\mathalpha}{operators}{73}
+    \DeclareMathSymbol{J}{\mathalpha}{operators}{74}
+    \DeclareMathSymbol{K}{\mathalpha}{operators}{75}
+    \DeclareMathSymbol{L}{\mathalpha}{operators}{76}
+    \DeclareMathSymbol{M}{\mathalpha}{operators}{77}
+    \DeclareMathSymbol{N}{\mathalpha}{operators}{78}
+    \DeclareMathSymbol{O}{\mathalpha}{operators}{79}
+    \DeclareMathSymbol{P}{\mathalpha}{operators}{80}
+    \DeclareMathSymbol{Q}{\mathalpha}{operators}{81}
+    \DeclareMathSymbol{R}{\mathalpha}{operators}{82}
+    \DeclareMathSymbol{S}{\mathalpha}{operators}{83}
+    \DeclareMathSymbol{T}{\mathalpha}{operators}{84}
+    \DeclareMathSymbol{U}{\mathalpha}{operators}{85}
+    \DeclareMathSymbol{V}{\mathalpha}{operators}{86}
+    \DeclareMathSymbol{W}{\mathalpha}{operators}{87}
+    \DeclareMathSymbol{X}{\mathalpha}{operators}{88}
+    \DeclareMathSymbol{Y}{\mathalpha}{operators}{89}
+    \DeclareMathSymbol{Z}{\mathalpha}{operators}{90}
+
+    \let\alpha\alphaup
+    \let\beta\betaup
+    \let\gamma\gammaup
+    \let\delta\deltaup
+    \let\epsilon\epsilonup
+    \let\zeta\zetaup
+    \let\eta\etaup
+    \let\theta\thetaup
+    \let\iota\iotaup
+    \let\kappa\kappaup
+    \let\lambda\lambdaup
+    \let\mu\muup
+    \let\nu\nuup
+    \let\xi\xiup
+    \let\pi\piup
+    \let\rho\rhoup
+    \let\sigma\sigmaup
+    \let\tau\tauup
+    \let\upsilon\upsilonup
+    \let\phi\phiup
+    \let\chi\chiup
+    \let\psi\psiup
+    \let\omega\omegaup
+\fi
+
+%% ==============================================================================
+%% KOMA-Script Typography
+%% ==============================================================================
+
+\newcommand{\LARGEplus}{\fontsize{15.5}{18.6}\selectfont}
+\newcommand{\LARGEhuge}{\fontsize{16.74}{20.09}\selectfont}
+\newcommand{\hugeminus}{\fontsize{18.5}{22.2}\selectfont}
+
+% Monospace font and color configuration
+\AtEndOfClass{%
+    \colorlet{verbColor}{\neoschool at titlecolor}%
+    \let\oldtexttt\texttt
+    \renewrobustcmd{\texttt}[1]{\oldtexttt{\color{verbColor}#1}}
+}
+
+\setkomafont{disposition}{\mdseries}
+
+% Header style configuration
+\setkomafont{title}{\csname\neoschool at titlestyle\endcsname\csname\neoschool at titleweight\endcsname\color{\neoschool at titlecolor}\hugeminus}
+\setkomafont{subtitle}{\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\color{subtitleColor}}
+\setkomafont{subject}{\csname\neoschool at headweight\endcsname\color{subjectColor}\large}
+\setkomafont{author}{\large}
+\setkomafont{date}{\large}
+\setkomafont{subsection}{\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\color{\neoschool at subcolor}\large}
+\setkomafont{subsubsection}{\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\color{\neoschool at subsubcolor}}
+% \renewcommand{\subsubsection}{%
+%     \@startsection{subsubsection}{3}{\z@}%
+%     {1ex plus 1ex minus .2ex}%
+%     {-2em}%
+%     {\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\color{\neoschool at subsubcolor}\itshape\secpunct}%
+% }
+% \newcommand{\secpunct}[1]{#1\hspace{-3ex}}
+\setkomafont{pagenumber}{\csname\neoschool at headstyle\endcsname\color{\neoschool at headfootcolor}}
+\setkomafont{descriptionlabel}{\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname}
+
+% Page number format
+\renewcommand*\pagemark{%
+    {\usekomafont{pagenumber}
+            \color{\neoschool at headfootcolor}
+            \csname neo at pagename\endcsname\nobreakspace\thepage\nobreakspace/\nobreakspace
+            {\hypersetup{linkcolor=\neoschool at headfootcolor}\pageref{LastPage}}
+        }
+}
+
+\newpairofpagestyles{firstpage}{%
+    \ihead{}\chead{}\ohead{}%
+    \ifoot{\@date}\cfoot{}\ofoot{\pagemark}%
+    \KOMAoptions{headsepline=0pt}
+}{%
+    \ihead{}\chead{}\ohead{}%
+    \ifoot{\@date}\cfoot{}\ofoot{\pagemark}%
+    \KOMAoptions{headsepline=0pt}
+}
+
+\newpairofpagestyles{followingpages}{%
+    \ihead{}\chead{}\ohead{}%
+    \ifoot{\@title}\cfoot{}\ofoot{\pagemark}%
+}{%
+    \ihead{}\chead{}\ohead{}%
+    \ifoot{\@title}\cfoot{}\ofoot{\pagemark}%
+}
+
+\newpairofpagestyles{pagenum}{%
+    \ihead{}\chead{}\ohead{}
+    \ifoot{}\cfoot{\pagemark}\ofoot{}
+    \KOMAoptions{headsepline=0pt,footsepline=0pt}
+}
+
+% Header font configuration
+\renewcommand*{\headfont}{%
+    \small
+    \csname\neoschool at headfootstyle\endcsname
+    \color{\neoschool at headfootcolor}
+}
+
+%% ==============================================================================
+%% Title Styles and Setting
+%% ==============================================================================
+
+% Core definitions and lengths
+\def\neo at left{left}
+\def\neo at right{right}
+\def\neo at center{center}
+\newlength{\varspace}
+\newlength{\titlespacing}
+\setlength{\titlespacing}{1.5\baselineskip}
+\newcommand\myscaleratio{0.5}
+
+% Define tight spacing commands
+\newcommand{\neo at tightspacing}{%
+    \setlength\topsep{0pt}
+    \setlength\parskip{0pt}
+}
+
+% Redefine center, flushright, and flushleft environments with tight spacing
+\let\oldcenter\center
+\let\oldendcenter\endcenter
+\renewenvironment{center}{%
+    \neo at tightspacing
+    \oldcenter
+}{%
+    \oldendcenter
+}
+
+\let\oldflushright\flushright
+\let\oldendflushright\endflushright
+\renewenvironment{flushright}{%
+    \neo at tightspacing
+    \oldflushright
+}{%
+    \oldendflushright
+}
+
+\let\oldflushleft\flushleft
+\let\oldendflushleft\endflushleft
+\renewenvironment{flushleft}{%
+    \neo at tightspacing
+    \oldflushleft
+}{%
+    \oldendflushleft
+}
+
+% Title decoration handler
+\newcommand{\neo at titledecoration}{%
+    \ifneo at titlerule
+        \vspace{1.25\titlespacing}%
+        {\color{\neoschool at titlecolor}\rule{5em}{0.4pt}}
+    \else
+        \ifneo at titlemidrule
+            \vspace{1.25\titlespacing}%
+            {\color{\neoschool at titlecolor}\rule{0.5\linewidth}{0.4pt}}
+        \else
+            \ifneo at titlefullrule
+                \vspace{1.25\titlespacing}%
+                {\color{\neoschool at titlecolor}\rule{\linewidth}{0.4pt}}%
+                \vspace{-0.75\titlespacing}%
+            \else
+                \ifneo at titleornament
+                    \vspace{1.25\titlespacing}%
+                    {\color{\neoschool at titlecolor}\scalebox{2}[1.5]{\adforn{21}\,\adforn{11}\,\adforn{49}}}
+                \fi
+            \fi
+        \fi
+    \fi
+    \vspace*{.15\baselineskip}
+}
+
+% Full title creation with all elements
+\newcommand{\createfulltitle}{%
+% Subject
+\ifx\@subject\@empty\else
+    {\usekomafont{subject}{\@subject\par}}
+    \vspace{\titlespacing}
+\fi
+
+% Main title
+{\noindent\usekomafont{title}{\@title\par}}
+
+% Subtitle
+\ifx\@subtitle\@empty\else
+    \vspace{\titlespacing}
+    {\noindent\usekomafont{subtitle}{\@subtitle\par}}
+\fi
+
+% Author
+\ifx\@author\@empty\else
+    \vspace{\titlespacing}
+    {\noindent\usekomafont{author}{\@author\par}}
+\fi
+
+% Decorative elements
+\neo at titledecoration
+\if at twocolumn\vspace{2\titlespacing}\else\vspace{\titlespacing}\fi
+}
+
+% Only title creation (no author, subject, etc.)
+\newcommand{\createonlytitle}{%
+    {\noindent\usekomafont{title}{\@title\par}}
+    \neo at titledecoration%
+}
+
+\renewcommand\maketitle{%
+    \thispagestyle{firstpage}
+    \bgroup
+    \setlength{\varspace}{\dimexpr\titlespacing+\myscaleratio\oddsidemargin}
+    \if at twocolumn
+        \twocolumn[{%
+                    \ifx\neoschool at titlealign\neo at left
+                        \begin{flushleft}
+                            \createfulltitle
+                        \end{flushleft}
+                    \else
+                        \ifx\neoschool at titlealign\neo at right
+                            \begin{flushright}
+                                \createfulltitle
+                            \end{flushright}
+                        \else
+                            \begin{center}
+                                \createfulltitle
+                            \end{center}
+                        \fi
+                    \fi
+                }]
+    \else
+        \ifx\neoschool at titlealign\neo at left
+            \begin{flushleft}
+                \createfulltitle
+            \end{flushleft}
+        \else
+            \ifx\neoschool at titlealign\neo at right
+                \begin{flushright}
+                    \createfulltitle
+                \end{flushright}
+            \else
+                \begin{center}
+                    \createfulltitle
+                \end{center}
+            \fi
+        \fi
+    \fi
+    \egroup
+}
+
+% Enhanced fancy title box with rotation
+\ifneo at fancybox
+    \newcommand{\neo at fancycolor}{exerciseColor!5!white}
+    \AtBeginDocument{%
+        \begin{tikzpicture}[remember picture,overlay]
+            % Rotated background box
+            \fill[\neo at fancycolor,rotate=-15]
+            ($(current page.north west) +(0,-1in)$)
+            rectangle ($(current page.north west) +(2.25in,2.0in)$);
+
+            % Title node with improved positioning
+            \node[anchor=west] (title) at
+            ($([xshift=-1ex,yshift=2ex]current page text area.north west)$)
+            {\LARGE\csname\neoschool at titlestyle\endcsname
+                \csname\neoschool at titleweight\endcsname
+                \csname\neoschool at titleshape\endcsname
+                \color{\neoschool at titlecolor}\@title};
+        \end{tikzpicture}
+        \vspace*{\dimexpr1.25in+\oddsidemargin\relax}\par
+        \let\maketitle\relax
+        \thispagestyle{firstpage}
+    }
+\fi
+
+% Unified handling of single-column and two-column title layouts with only title
+\newcommand{\neo at handleonlytitle}[2]{%
+    \if at twocolumn
+        \AfterEndPreamble{%
+            \twocolumn[{#1\vspace*{.5in}\par}]
+        }
+    \else
+        \AtBeginDocument{%
+            #2\vspace*{0.25in}\par
+        }
+    \fi
+    \let\maketitle\relax
+    \thispagestyle{firstpage}
+}
+
+% Left-aligned title implementation
+\ifneo at onlytitleleft
+    \neo at handleonlytitle
+    {\begin{flushleft}\createonlytitle\end{flushleft}}
+    {\begin{flushleft}\createonlytitle\end{flushleft}}
+\fi
+
+% Centered title implementation
+\ifneo at onlytitle
+    \neo at handleonlytitle
+    {\begin{center}\createonlytitle\end{center}}
+    {\begin{center}\createonlytitle\end{center}}
+\fi
+
+% Right-aligned title implementation
+\ifneo at onlytitleright
+    \neo at handleonlytitle
+    {\begin{flushright}\createonlytitle\end{flushright}}
+    {\begin{flushright}\createonlytitle\end{flushright}}
+\fi
+
+%% ==============================================================================
+%% Table of Contents
+%% ==============================================================================
+
+\addto\captionsfrench{\renewcommand{\contentsname}{Sommaire}}
+
+\DeclareTOCStyleEntry[
+    entryformat={\sffamily\csname\neoschool at headweight\endcsname\color{\neoschool at headcolor}}
+]{tocline}{section}
+
+\DeclareTOCStyleEntry[
+    entryformat={\sffamily}
+]{tocline}{subsection}
+
+\DeclareTOCStyleEntry[
+    entryformat={\sffamily}
+]{tocline}{subsubsection}
+
+%% ==============================================================================
+%% Abstract formatting
+%% ==============================================================================
+
+\if at twocolumn
+    \renewenvironment{abstract}{%
+        \begin{strip}
+            \ifx\neoschool at abstracttitle\@empty
+                \vspace{-4em}
+                \quotation
+            \else
+                \vspace{-5em}
+                \section*{\csname\neoschool at abstracttitle\endcsname}%
+                \quotation
+            \fi}
+            {\endquotation\end{strip}}
+\else
+    \renewenvironment{abstract}{%
+        \ifx\neoschool at abstracttitle\@empty
+            % \vspace{-1em}
+            \quotation
+        \else
+            \vspace{-2em}
+            \section*{\csname\neoschool at abstracttitle\endcsname}%
+            \quotation
+        \fi}
+    {\endquotation}
+\fi
+
+%% ==============================================================================
+%% Section formatting utilities
+%% ==============================================================================
+
+% Style definitions
+\def\neo at align@right{right}
+\def\neo at align@left{left}
+\def\neo at align@center{center}
+
+\def\neo at numstyle@circle{circle}
+\def\neo at numstyle@box{box}
+\def\neo at numstyle@dash{dash}
+\def\neo at numstyle@plain{plain}
+
+\def\neo at textstyle@sc{sc}
+\def\neo at textstyle@upper{upper}
+\def\neo at textstyle@lower{lower}
+
+\def\neo at style@ornaments{ornaments}
+\def\neo at style@underline{underline}
+\def\neo at style@normal{normal}
+\def\neo at style@highlighted{highlighted}
+\def\neo at style@shadedline{shadedline}
+
+% Utility command for circular number style
+\newcommand*\circled[1]{\tikz[baseline=(char.base)]{%
+        \node[shape=circle,draw,inner sep=2pt,line width=1.5pt,baseline=-1.25mm] (char) {#1};}
+    \vspace{-2pt}
+}
+
+% Check for small caps availability
+\newcommand*{\IfSCAvailableTF}{%
+    \ifcsname\f at encoding/\f at family/\f at series/sc\endcsname
+        \expandafter\@firstoftwo
+    \else
+        \expandafter\@secondoftwo
+    \fi
+}
+
+% Apply text style based on options
+\newcommand{\applytextstyle}[1]{%
+    \ifx\neoschool at sectiontextstyle\neo at textstyle@sc
+        \IfSCAvailableTF{\scshape\Large\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname #1}{\MakeUppercase{\large \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname #1}}%
+    \else
+        \ifx\neoschool at sectiontextstyle\neo at textstyle@upper
+            \MakeUppercase{\large \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname #1}%
+        \else
+            \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\Large #1%
+        \fi
+    \fi
+}
+
+% Section number formatting based on style option
+\renewcommand{\sectionformat}{%
+    \ifx\neoschool at sectionnumstyle\neo at numstyle@circle
+        \circled{{\large\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\thesection}}\enskip%
+    \else
+        \ifx\neoschool at sectionnumstyle\neo at numstyle@box
+            \raisebox{0ex}{%
+                \setlength{\fboxrule}{1.5pt}%
+                \fcolorbox{\neoschool at headcolor}{white}{%
+                    \color{\neoschool at headcolor}%
+                    \csname\neoschool at headstyle\endcsname
+                    \csname\neoschool at headweight\endcsname
+                    % \csname\neoschool at headshape\endcsname
+                    \large\thesection%
+                }%
+            }\enskip%
+        \else
+            \ifx\neoschool at sectionnumstyle\neo at numstyle@dash
+                \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\thesection\enskip\textendash\enskip
+            \else
+                \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\thesection\autodot\enskip
+            \fi
+        \fi
+    \fi
+}
+
+% Set section alignment
+\newcommand{\setsectionraggedstyle}{%
+    \ifx\neoschool at sectionalign\neo at align@right
+        \renewcommand*{\raggedsection}{\raggedleft}%
+    \else
+        \ifx\neoschool at sectionalign\neo at align@left
+            \renewcommand*{\raggedsection}{\raggedright}%
+        \else
+            \renewcommand*{\raggedsection}{\centering}%
+        \fi
+    \fi
+}
+
+% Main section format handler
+\renewcommand{\sectionlinesformat}[4]{%
+    \Ifstr{#1}{section}{%
+        % \vspace*{0.5em}%
+        \ifx\neoschool at sectionstyle\neo at style@ornaments
+            \sectionformat at ornaments{#3}{#4}%
+        \else
+            \ifx\neoschool at sectionstyle\neo at style@highlighted
+                \sectionformat at highlighted{#3}{#4}%
+            \else
+                \ifx\neoschool at sectionstyle\neo at style@shadedline
+                    \sectionformat at shadedline{#3}{#4}%
+                \else
+                    \ifx\neoschool at sectionstyle\neo at style@normal
+                        \sectionformat at normal{#2}{#3}{#4}%
+                    \else
+                        \sectionformat at other{#3}{#4}%
+                    \fi
+                \fi
+            \fi
+        \fi
+        % \vspace*{-0.15em}%
+    }{%
+        \@hangfrom{\hskip #2#3}{#4}%
+    }%
+}
+
+% Individual style implementations
+\newcommand{\sectionformat at normal}[3]{%
+    \setsectionraggedstyle
+    \parbox[t]{\linewidth}{%
+        \raggedsection
+        \@hangfrom{\color{\neoschool at headcolor}#2}{%
+            \color{\neoschool at headcolor}%
+            \applytextstyle{#3}%
+        }%
+    }%
+    \par\nobreak
+}
+
+\newcommand{\sectionformat at ornaments}[2]{%
+    \renewcommand*{\raggedsection}{\centering}%
+    \raggedsection
+    \vspace*{0.5em}%
+    \adforn{36}\enskip
+    {\color{\neoschool at headcolor}\applytextstyle{#1#2}}%
+    \enskip\adforn{36}%
+    \par\nobreak
+    \vspace*{0.2em}%
+}
+
+% Helper commands for TikZ styles
+\newcommand{\setsectiontikzalign}{%
+    \ifx\neoschool at sectionalign\neo at align@left
+        left%
+    \else
+        \ifx\neoschool at sectionalign\neo at align@right
+            right%
+        \else
+            center%
+        \fi
+    \fi
+}
+
+\newcommand{\setsectiontikzcolor}[1]{%
+    \ifx\neoschool at sectionalign\neo at align@left
+        \ifnum\pdf at strcmp{#1}{left}=0
+            \neoschool at headcolor!120
+        \else
+            \neoschool at headcolor!20
+        \fi
+    \else
+        \ifx\neoschool at sectionalign\neo at align@right
+            \ifnum\pdf at strcmp{#1}{right}=0
+                \neoschool at headcolor!120
+            \else
+                \neoschool at headcolor!20
+            \fi
+        \else
+            \neoschool at headcolor!25
+        \fi
+    \fi
+}
+
+\newcommand{\setsectiontikzmiddle}{%
+    \ifx\neoschool at sectionalign\neo at align@left
+        \neoschool at headcolor!90
+    \else
+        \ifx\neoschool at sectionalign\neo at align@right
+            \neoschool at headcolor!90
+        \else
+            \neoschool at headcolor!120
+        \fi
+    \fi
+}
+
+\newcommand{\sectionformat at highlighted}[2]{%
+    \noindent\begin{tikzpicture}[baseline]
+        \node[
+            anchor=base,
+            inner sep=3pt,
+            outer sep=0pt,
+            align=\setsectiontikzalign,
+            text width=.985\linewidth,
+            text=white,
+            line width=0.5pt,
+            left color={\setsectiontikzcolor{left}},
+            right color={\setsectiontikzcolor{right}},
+            middle color={\setsectiontikzmiddle},
+            rounded corners=0pt,
+        ] (title) {%
+            \vspace{-1pt}\hspace*{0.25em}\applytextstyle{#1#2}\hspace*{0.25em}%
+            \vspace{3pt}
+        };
+    \end{tikzpicture}%
+    \par\vspace{0.4em}%
+}
+
+\newcommand{\sectionformat at shadedline}[2]{%
+    \noindent
+    \begin{tikzpicture}[baseline]
+        \node[
+            text=\neoschool at headcolor,
+            anchor=base,
+            inner sep=0pt,
+            outer sep=0pt,
+            align=\setsectiontikzalign,
+            text width=\linewidth
+        ] (title) {%
+            \color{\neoschool at headcolor}%
+            \applytextstyle{#1#2}%
+        };
+
+        \ifx\neoschool at sectionalign\neo at align@center
+            \fill[
+                left color=\neoschool at headcolor!20,
+                right color=\neoschool at headcolor
+            ] ([yshift=-0.5em]title.south west) rectangle ++(.33\linewidth,-0.1em);
+            \fill[
+                left color=\neoschool at headcolor,
+                middle color=\neoschool at headcolor!120,
+                right color=\neoschool at headcolor
+            ] ([yshift=-0.5em]title.south west) ++(.33\linewidth,0) rectangle ([yshift=-0.6em]title.south east) ++(-0.33\linewidth,0);
+            \fill[
+                left color=\neoschool at headcolor,
+                right color=\neoschool at headcolor!20
+            ] ([yshift=-0.5em]title.south east) ++(-0.33\linewidth,0) rectangle ([yshift=-0.6em]title.south east);%
+        \else
+            \ifx\neoschool at sectionalign\neo at align@left
+                \fill[%
+                    left color=\neoschool at headcolor,
+                    right color=\neoschool at headcolor!20
+                ] ([yshift=-0.5em]title.south west) rectangle ([yshift=-0.6em]title.south east);%
+            \else
+                \fill[%
+                    left color=\neoschool at headcolor!20,
+                    right color=\neoschool at headcolor
+                ] ([yshift=-0.5em]title.south west) rectangle ([yshift=-0.6em]title.south east);%
+            \fi
+        \fi
+    \end{tikzpicture}%
+    \par\vspace{0.7em}%
+}
+
+\newcommand{\sectionformat at other}[2]{%
+    \setsectionraggedstyle
+    \ifx\neoschool at sectionstyle\neo at style@underline
+        \sectionformat at underline{#1}{#2}%
+    \else
+        \sectionformat at default{#1}{#2}%
+    \fi
+}
+
+\newcommand{\sectionformat at underline}[2]{%
+    \parbox[t]{\linewidth}{%
+        \raggedsection
+        {\color{\neoschool at headcolor}\applytextstyle{#1#2}}%
+        \par\nobreak
+        \kern-.75\ht\strutbox\color{\neoschool at headcolor!30}\rule{\linewidth}{1pt}%
+    }%
+}
+
+\newcommand{\sectionformat at default}[2]{%
+    \raggedsection
+    {\color{\neoschool at headcolor}\applytextstyle{#1#2}}%
+    \par\nobreak
+}
+
+%% ==============================================================================
+%% Header and Footer Styles and Setting
+%% ==============================================================================
+
+% Configuration defaults for header fields
+\def\neo at header@type{}
+\def\neo at header@school{}
+\def\neo at header@academy{}
+\def\neo at header@level{}
+\def\neo at header@duration{}
+\def\neo at header@calculator{false}
+\def\neo at header@leftcontent{\faBookOpen}
+\def\neo at header@rightcontent{\faSchool}
+\def\neo at header@leftcontentfill{true}
+\def\neo at header@rightcontentfill{true}
+
+\define at key[neo]{header}{type}{\def\neo at header@type{#1}}
+\define at key[neo]{header}{school}{\def\neo at header@school{#1}}
+\define at key[neo]{header}{academy}{\def\neo at header@academy{#1}}
+\define at key[neo]{header}{level}{\def\neo at header@level{#1}}
+\define at key[neo]{header}{duration}{\def\neo at header@duration{#1}}
+\define at key[neo]{header}{calculator}[false]{%
+    \def\@tempa{#1}%
+    \def\@tempb{true}\def\@tempc{false}\def\@tempd{exam}%
+    \ifx\@tempa\@tempb
+        \def\neo at header@calculator{true}%
+    \else
+        \ifx\@tempa\@tempc
+            \def\neo at header@calculator{false}%
+        \else
+            \ifx\@tempa\@tempd
+                \def\neo at header@calculator{exam}%
+            \else
+                \PackageError{neoschool}{Invalid calculator value: #1}
+                {Use 'true', 'false' or 'exam'}%
+            \fi
+        \fi
+    \fi
+}
+\define at key[neo]{header}{leftcontent}[\faBookOpen]{\def\neo at header@leftcontent{#1}}
+\define at key[neo]{header}{rightcontent}[\faSchool]{\def\neo at header@rightcontent{#1}}
+\define at key[neo]{header}{leftcontentfill}[true]{\def\neo at header@leftcontentfill{#1}}
+\define at key[neo]{header}{rightcontentfill}[true]{\def\neo at header@rightcontentfill{#1}}
+
+\newcommand{\neo at header@setkeys}{\setkeys[neo]{header}}
+
+\newcommand{\neoheader}[1]{%
+    \neo at header@setkeys{#1}%
+}
+
+% Full header configuration
+\ifneo at fullheader
+    \ihead{\neo at header@type}
+    \chead{\@title}
+    \ohead{\neo at header@level}
+    \ifoot{\@date}
+    \cfoot{\neo at header@school}
+    \ofoot{\pagemark}
+    \pagestyle{scrheadings}
+    \thispagestyle{firstpage}
+\else
+    \pagestyle{followingpages}
+    \thispagestyle{firstpage}
+\fi
+
+\ifneo at headrule
+    \KOMAoptions{headsepline=.4pt}
+\fi
+\ifneo at footrule
+    \KOMAoptions{footsepline=.4pt}
+\fi
+\ifneo at headfootrule
+    \KOMAoptions{headsepline=.4pt, footsepline=.4pt}
+\fi
+
+%% ==============================================================================
+%% Evaluation Headers and Special Styles
+%% ==============================================================================
+
+%% Dimensions and Basic Configuration
+%% ----------------------------------
+\newlength{\neo at headerheight}
+\setlength{\neo at headerheight}{35mm}
+
+\newlength{\neo at iconsize}
+\setlength{\neo at iconsize}{1.5cm}
+
+%% Colors Setup
+%% ----------------------------------
+\newcommand{\neo at setupevalcolors}{%
+    \def\neo at evalrulecolor{\neoschool at headfootcolor!25!white}%
+}
+
+%% Basic Title Components
+%% ----------------------------------
+\newcommand{\neo at completetitle}[1][]{%
+    % Main title
+    \node[
+        align=center,
+        anchor=center,
+        text width=0.85\textwidth,
+        #1
+    ] (title) at ([yshift=-24mm]current page.north) {%
+        \baselineskip=30pt
+        \Large
+        \csname\neoschool at titlestyle\endcsname
+        \csname\neoschool at titleweight\endcsname
+        \csname\neoschool at titleshape\endcsname
+        \color{\neoschool at titlecolor}\@title
+    };
+
+    % Subject (if provided)
+    \ifx\@subject\empty\else
+        \node[
+            above=1.5mm of title.north,
+            anchor=south,
+            text width=0.85\textwidth,
+            align=center,
+            font=\normalsize
+        ] {%
+            \usekomafont{subject}{\@subject}
+        };
+    \fi
+
+    % Subtitle (if provided)
+    \ifx\@subtitle\empty\else
+        \node[
+            below=1.5mm of title.south,
+            anchor=north,
+            text width=0.85\textwidth,
+            align=center,
+            font=\normalsize
+        ] {%
+            \usekomafont{subtitle}{\@subtitle}
+        };
+    \fi
+}
+
+\newcommand{\neo at completegradetitle}[1][]{%
+    % Main title
+    \node[
+        align=center,
+        anchor=center,
+        text width=0.85\textwidth,
+        #1
+    ] (title) at ([yshift=-24mm]current page.north) {%
+        \baselineskip=30pt
+        \Large
+        \csname\neoschool at titlestyle\endcsname
+        \csname\neoschool at titleweight\endcsname
+        \csname\neoschool at titleshape\endcsname
+        \color{\neoschool at titlecolor}\@title
+    };
+    % Subject (if provided)
+    \ifx\@subject\empty\else
+        \node[
+            above=1.5mm of title.north,
+            anchor=south,
+            text width=0.85\textwidth,
+            align=center,
+            font=\normalsize
+        ] {%
+            \usekomafont{subject}{\@subject}
+        };
+    \fi
+    % Subtitle (if provided)
+    \ifx\@subtitle\empty\else
+        \node[
+            below=1.5mm of title.south,
+            anchor=north,
+            text width=0.85\textwidth,
+            align=center,
+            font=\normalsize
+        ] {%
+            \usekomafont{subtitle}{\@subtitle}
+        };
+    \fi
+    % Duration
+    \node[
+        below=10mm of title.south,
+        anchor=north,
+        align=center,
+        font=\small\sffamily
+    ] {%
+        Durée : \neo at header@duration\quad\textbullet\quad\neo at calculator
+    };
+    % Name field
+    \node[
+        below=17.5mm of title.south,
+        anchor=north,
+        align=center,
+        font=\small\sffamily
+    ] {%
+        \color{\neoschool at globalcolor}Nom : \vardots[4cm]
+    };
+}
+
+%% ==============================================================================
+%% Enhanced Header without Icons
+%% ==============================================================================
+
+%% Configuration for Simple Header
+%% ----------------------------------
+\newcommand{\neo at setupheaderconfig}{%
+    \def\neo at cornershift{5mm}%
+    \def\neo at topyshift{8mm}%
+    \def\neo at topyshiftgrade{8mm}%
+    \def\neo at bottomyshift{40mm}%
+}
+
+%% Corner Text Nodes
+%% ----------------------------------
+\newcommand{\neo at cornernode}[4]{%
+    \node[
+        anchor=#1,
+        font={\color{\neoschool at headfootcolor}\small\sffamily}
+    ] at ([xshift=#2,yshift=-#3]current page.north #1) {%
+        \begingroup
+        #4%
+        \endgroup
+    };
+}
+
+%% ==============================================================================
+%% Header with Icons
+%% ==============================================================================
+
+%% Icon Node Definition
+%% ----------------------------------
+\newcommand{\neo at iconnode}[5]{%
+    % Icon node with color inversion
+    \node[
+        rectangle,
+        minimum height=\neo at iconsize,
+        minimum width=\neo at iconsize,
+        fill=white,
+        text=\neoschool at titlecolor,
+        draw=\neoschool at titlecolor,
+        line width=0.5pt,
+        anchor=center,
+        font=\normalsize,
+        rounded corners=2pt
+    ] (#1) at #2 {#3};
+
+    % Top text
+    \node[
+        above=2mm of #1,
+        anchor=south,
+        font={\color{\neoschool at headfootcolor}\small\sffamily}
+    ] (#1-top) {%
+        \begingroup
+        #4%
+        \endgroup
+    };
+
+    % Bottom text
+    \node[
+        below=2mm of #1,
+        anchor=north,
+        font={\color{\neoschool at headfootcolor}\small\sffamily}
+    ] (#1-bottom) {%
+        \begingroup
+        #5%
+        \endgroup
+    };
+}
+
+%% ==============================================================================
+%% Header Type Selection and Setup
+%% ==============================================================================
+
+\newcommand{\neo at basetitlecontent}{%
+    \begin{tikzpicture}[remember picture,overlay]
+        \neo at completetitle
+    \end{tikzpicture}%
+}
+
+%% Header without Icons
+\ifneo at eval
+    \newcommand{\neo at evaltitlecontent}{%
+        \neo at setupevalcolors
+        \neo at setupheaderconfig
+        \begin{tikzpicture}[remember picture,overlay]
+            \draw[\neo at evalrulecolor,line width=0.4pt]
+            ([yshift=-1.3\neo at headerheight]current page.north west) --
+            ([yshift=-1.3\neo at headerheight]current page.north east);
+            \neo at completetitle
+            \neo at cornernode{west}{\neo at cornershift}{\neo at topyshift}{\neo at header@type}
+            \neo at cornernode{east}{-\neo at cornershift}{\neo at topyshift}{\neo at header@school}
+            \neo at cornernode{west}{\neo at cornershift}{\neo at bottomyshift}{\neo at header@level}
+            \neo at cornernode{east}{-\neo at cornershift}{\neo at bottomyshift}{\@date}
+        \end{tikzpicture}%
+        \if at twocolumn\vspace{0.95\neo at headerheight}\else\vspace{0.85\neo at headerheight}\fi%
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at evaltitlecontent]%
+            \else
+                \neo at evaltitlecontent
+            \fi
+            \thispagestyle{pagenum}%
+        }%
+    }
+\fi
+
+
+%% Header with Icons
+\ifneo at evalicons
+    \newcommand{\neo at evaliconscontent}{%
+        \neo at setupevalcolors
+        \begin{tikzpicture}[remember picture,overlay]
+            \draw[\neo at evalrulecolor,line width=0.4pt]
+            ([yshift=-1.125\neo at headerheight]current page.north west) --
+            ([yshift=-1.125\neo at headerheight]current page.north east);
+            \neo at completetitle
+            \neo at iconnode{typeicon}
+            {([xshift=30mm,yshift=-0.575\neo at headerheight]current page.north west)}
+            {\neo at header@leftcontent}
+            {\neo at header@type}
+            {\neo at header@level}
+            \neo at iconnode{schoolicon}
+            {([xshift=-30mm,yshift=-0.575\neo at headerheight]current page.north east)}
+            {\neo at header@rightcontent}
+            {\neo at header@school}
+            {\@date}
+        \end{tikzpicture}%
+        \if at twocolumn\vspace{0.85\neo at headerheight}\else\vspace{0.75\neo at headerheight}\fi%
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at evaliconscontent]%
+            \else
+                \neo at evaliconscontent
+            \fi
+            \thispagestyle{pagenum}%
+        }%
+    }
+\fi
+
+%% Header with grading stip without Icons
+\ifneo at evalgrade
+    \newcommand{\neo at evalgradecontent}{%
+        \neo at setupevalcolors
+        \neo at setupheaderconfig
+        \begin{tikzpicture}[remember picture,overlay]
+            \neo at completegradetitle
+            % Top elements
+            \neo at cornernode{west}{\neo at cornershift}{\neo at topyshiftgrade}{\neo at header@type}
+            \neo at cornernode{east}{-\neo at cornershift}{\neo at topyshiftgrade}{\neo at header@level}
+
+            % Bottom elements
+            \node[
+                anchor=west,
+                font={\small\sffamily}
+            ] at ([xshift=5mm,yshift=9mm]current page.south west) {%
+                \color{\neoschool at headfootcolor}\@date%
+            };
+
+            \node[
+                anchor=east,
+                font={\small\sffamily}
+            ] at ([xshift=-5mm,yshift=9mm]current page.south east) {%
+                \color{\neoschool at headfootcolor}\neo at header@school%
+            };
+
+            % Page number in the center bottom
+            \node[
+                font=\small\sffamily,
+                inner sep=3mm
+            ] at ([yshift=9mm]current page.south) {%
+                \color{\neoschool at headfootcolor}\thepage
+            };
+        \end{tikzpicture}%
+
+        \if at twocolumn\vspace{\neo at headerheight}\else\vspace{0.95\neo at headerheight}\fi%
+
+        \ifx\neoschool at totalpoints\@empty\gradingstrip\else\gradingstrip[\neoschool at totalpoints]\fi
+        \vspace{1.5em}%
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at evalgradecontent]%
+            \else
+                \neo at evalgradecontent
+            \fi
+            \thispagestyle{empty}%
+        }%
+    }
+\fi
+
+%% Header with grading strip with Icons
+\ifneo at evaliconsgrade
+    \newcommand{\neo at maketitlecontent}{%
+        \begin{tikzpicture}[remember picture,overlay]
+            \neo at completegradetitle
+            \neo at iconnode{typeicon}
+            {([xshift=30mm,yshift=-0.575\neo at headerheight]current page.north west)}
+            {\neo at header@leftcontent}
+            {\neo at header@type}
+            {\neo at header@level}
+            \neo at iconnode{schoolicon}
+            {([xshift=-30mm,yshift=-0.575\neo at headerheight]current page.north east)}
+            {\neo at header@rightcontent}
+            {\neo at header@school}
+            {\@date}
+        \end{tikzpicture}%
+
+        \if at twocolumn\vspace{\neo at headerheight}\else\vspace{0.95\neo at headerheight}\fi%
+
+        \ifx\neoschool at totalpoints\@empty\gradingstrip\else\gradingstrip[\neoschool at totalpoints]\fi
+        \vspace{1.5em}%
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at maketitlecontent]%
+            \else
+                \neo at maketitlecontent
+            \fi
+            \thispagestyle{pagenum}%
+        }%
+    }
+\fi
+
+%% Calculator Notice
+%% ----------------------------------
+\newcommand{\neo at calculator}{%
+    \small L'usage de la calculatrice%
+    \ifnum\pdf at strcmp{\neo at header@calculator}{true}=0
+        \ est autorisé.%
+    \else\ifnum\pdf at strcmp{\neo at header@calculator}{exam}=0
+            \ est autorisé uniquement en mode examen.%
+        \else
+            \ n'est pas autorisé.%
+        \fi\fi
+    \par
+}
+
+%% Exam Header
+%% ----------------------------------
+%% Exam style helper commands and setup
+\newcommand{\neo at gettext}[1]{%
+    \ifneo at french
+        \ifcase#1\or Établissement\or Nom\or Classe\or Durée\or Date\or Note\or Appréciation\fi
+    \else\ifneo at german
+            \ifcase#1\or Einrichtung\or Name\or Klasse\or Dauer\or Datum\or Note\or Bewertung\fi
+        \else
+            \ifcase#1\or Institution\or Name\or Class\or Duration\or Date\or Mark\or Appreciation\fi
+        \fi\fi
+}
+
+\newcommand{\examfield}[2]{%
+    \textbf{#1}\hspace{0.5em}#2%
+}
+
+%% Exam title style
+\ifneo at exam
+    \newcommand{\neo at examcontent}{%
+        \vspace*{-2cm}%
+        \begin{tcolorbox}[%
+                enhanced,
+                frame hidden,
+                colback=white,
+                top=\baselineskip,
+                bottom=\baselineskip,
+                left=0pt,
+                right=0pt,
+                width=\textwidth,
+                after skip=0pt,
+            ]
+            {\renewcommand\arraystretch{1.25}
+                \begin{tblr}{X[4,l]X[2,c]X[3,r]}
+                    \examfield{\neo at gettext{1} :}{\neo at header@school} &  &
+                    \examfield{\neo at gettext{5} :}{\@date}                      \\
+                    \examfield{\neo at gettext{2} :}{\vardots[4cm]}               &  &
+                    \examfield{\neo at gettext{3} :}{\neo at header@level}
+                \end{tblr}
+            }
+
+            \vspace{\baselineskip}
+            \centering
+
+            \begin{minipage}[c]{\linewidth}
+                \centering
+                \neo at header@type
+            \end{minipage}\vspace{.85\baselineskip}
+
+            \LARGE\csname\neoschool at titlestyle\endcsname
+            \csname\neoschool at titleweight\endcsname
+            \csname\neoschool at titleshape\endcsname
+            \color{\neoschool at titlecolor}
+            \@title\vspace{.75\baselineskip}
+
+            \normalsize\normalfont\color{black}
+            \begin{minipage}[c]{\linewidth}
+                \centering
+                \examfield{\neo at gettext{4} :}{\neo at header@duration}\vspace{\baselineskip}
+
+                \neo at calculator
+            \end{minipage}
+        \end{tcolorbox}
+
+        \ifx\neoschool at totalpoints\@empty\gradingstrip\else\gradingstrip[\neoschool at totalpoints]\fi
+        \vspace{2em}
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at examcontent]%
+            \else
+                \neo at examcontent
+            \fi
+            \thispagestyle{pagenum}%
+        }%
+    }
+\fi
+
+%% French Exam Headers
+%% ----------------------------------
+% Common exam title commands
+\NewDocumentCommand{\neo at examtitle}{m}{%
+    {\color{\neoschool at titlecolor}
+            \csname\neoschool at titlestyle\endcsname
+            \csname\neoschool at titleweight\endcsname
+            \csname\neoschool at titleshape\endcsname
+            \LARGE\MakeUppercase{#1}\par}
+}
+
+\NewDocumentCommand{\neo at examsubtitle}{m}{%
+    {\color{\neoschool at titlecolor!85!black}
+            \csname\neoschool at titlestyle\endcsname
+            \Large #1\par}
+}
+
+\NewDocumentCommand{\neo at examinfo}{m}{%
+    {\color{\neoschool at titlecolor!75!black}
+            \csname\neoschool at titlestyle\endcsname
+            \large #1\par}
+}
+
+%% Mock exam style
+\ifneo at mockexam
+    \newcounter{mockexampages}
+    \AtEndDocument{%
+        \immediate\write\@auxout{%
+            \string\setcounter{mockexampages}{\thepage}%
+        }%
+    }
+    \newcommand{\neo at mockexamcontent}{%
+        \vspace*{1cm}%
+        \begin{center}
+            % Institution info
+            {\textsc{\neo at examinfo{\neo at header@school}}}
+            \vspace*{1cm}%
+            {\textsc{\neo at examinfo{Académie de \neo at header@academy}}}
+            \vspace*{\stretch{2.5}}%
+
+            % Title and session
+            {\LARGE\bfseries\csname\neoschool at headstyle\endcsname
+                \csname\neoschool at headweight\endcsname
+                \csname\neoschool at headshape\endcsname
+                \neo at examtitle{\neo at header@type}}
+            \vspace*{0.8cm}%
+            {\color{\neoschool at titlecolor!75!black}\itshape Session \@date}
+            \vspace*{1.5cm}%
+
+            % Subject and level
+            {\Large\csname\neoschool at headstyle\endcsname
+                \csname\neoschool at headweight\endcsname
+                \csname\neoschool at headshape\endcsname
+                \neo at examsubtitle{ÉPREUVE DE \MakeUppercase{\@subject}}}
+            \vspace*{1cm}%
+            {\neo at examinfo{\neo at header@level}}
+            \vspace*{\stretch{2}}%
+
+            % Duration
+            {\textit{Durée : \neo at header@duration}}
+            \vspace*{1.2cm}%
+
+            % Instructions
+            \begin{minipage}{0.8\textwidth}
+                \begin{center}
+                    \setlength{\baselineskip}{1.6\baselineskip}%
+                    \neo at calculator
+                    \vspace*{0.8cm}%
+                    La qualité de la rédaction et la rigueur des raisonnements
+                    seront prises en compte dans l'évaluation des copies.
+                    \vspace*{0.8cm}
+
+                    Toute tentative, même partielle ou inachevée, sera valorisée.
+                \end{center}
+            \end{minipage}
+            \vspace*{\stretch{1.5}}%
+
+            % Page count
+            {\color{\neoschool at titlecolor!65!black}%
+                Ce document comporte \arabic{mockexampages}~pages numérotées de 1/\arabic{mockexampages}  à \arabic{mockexampages}/\arabic{mockexampages}.}
+            \vspace*{1.5cm}%
+        \end{center}
+        \thispagestyle{pagenum}%
+        \clearpage\newpage
+    }
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \onecolumn
+                \neo at mockexamcontent
+                \twocolumn
+            \else
+                \neo at mockexamcontent
+            \fi
+        }%
+    }
+\fi
+
+\ifneo at shortexam
+    \newcommand{\neo at shortexamcontent}{%
+        \vspace*{-0.5cm}
+        \begin{center}
+            {\Large \csname\neoschool at headstyle\endcsname
+                \csname\neoschool at headweight\endcsname
+                \csname\neoschool at headshape\endcsname
+                \neo at examtitle{\neo at header@type}}
+
+            \vspace{3mm}
+            {\small \textit{Session \@date}}
+
+            \vspace{5mm}
+            {\large \csname\neoschool at headstyle\endcsname
+                \csname\neoschool at headweight\endcsname
+                \csname\neoschool at headshape\endcsname
+                \neo at examsubtitle{ÉPREUVE DE \MakeUppercase{\@subject}}}
+
+            \vspace{3mm}
+            {\small \neo at examinfo{\neo at header@level}}
+
+            \vspace{5mm}
+            {\small \textit{Durée : \neo at header@duration}}
+
+            \vspace{5mm}
+            \neo at calculator
+
+            \vspace{15mm}
+            {\color{\neoschool at headfootcolor}%
+                \rule{\linewidth}{0.5pt}}
+        \end{center}
+        \vspace{10mm}%
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at shortexamcontent]%
+            \else
+                \neo at shortexamcontent
+            \fi
+            \thispagestyle{pagenum}%
+        }%
+    }
+\fi
+
+%% Short Eval Header Style
+%% ----------------------------------
+\newlength{\sideWidth}
+\setlength{\sideWidth}{4.5cm}
+
+\ifneo at shorteval
+    \newcommand{\neo at shortevalcontent}{%
+        \begin{tikzpicture}[remember picture,overlay]
+            \draw[line width=0.4pt, \neoschool at headfootcolor!50!white]
+            ([yshift=-21mm]current page.north west) --
+            ([yshift=-21mm]current page.north east);
+            \path let \p1=(current page.east) in node[
+                    anchor=west,
+                    align=left,
+                    text width=\sideWidth,
+                    font=\small\sffamily,
+                    text=\neoschool at headfootcolor
+                ] at ([xshift=0.75cm,yshift=-11mm]current page.north west)
+            {Nom :\\[1mm]
+                    \neo at header@type};
+            \path let \p1=(current page.east) in node[
+                    anchor=center,
+                    align=center,
+                    text width={\dimexpr\paperwidth-2\sideWidth-2cm},
+                    font=\Large
+                ] at ([yshift=-11mm]current page.north)
+            {\color{\neoschool at titlecolor}%
+                    \csname\neoschool at titlestyle\endcsname%
+                    \csname\neoschool at titleweight\endcsname%
+                    \csname\neoschool at titleshape\endcsname%
+                    \@title};
+            \path let \p1=(current page.east) in node[
+                    anchor=east,
+                    align=right,
+                    text width=\sideWidth,
+                    font=\small\sffamily,
+                    text=\neoschool at headfootcolor
+                ] at ([xshift=-0.75cm,yshift=-11mm]current page.north east)
+            {\neo at header@school\\[1mm]
+                    \neo at header@level};
+        \end{tikzpicture}%
+        \vspace{2em}%
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at shortevalcontent]%
+            \else
+                \neo at shortevalcontent
+            \fi
+            \thispagestyle{pagenum}%
+        }%
+    }
+\fi
+
+
+%% Short Title Header Style
+%% ----------------------------------
+\ifneo at shorttitle
+    \newcommand{\neo at shorttitlecontent}{%
+        \begin{tikzpicture}[remember picture,overlay]
+            \draw[line width=0.4pt, \neoschool at headfootcolor!50!white]
+            ([yshift=-21mm]current page.north west) --
+            ([yshift=-21mm]current page.north east);
+            \path let \p1=(current page.east) in node[
+                    anchor=center,
+                    align=center,
+                    text width={\dimexpr\paperwidth-2cm},
+                    font=\LARGE
+                ] at ([yshift=-11mm]current page.north)
+            {\color{\neoschool at titlecolor}%
+                    \csname\neoschool at titlestyle\endcsname%
+                    \csname\neoschool at titleweight\endcsname%
+                    \csname\neoschool at titleshape\endcsname%
+                    \@title};
+        \end{tikzpicture}%
+        \if at twocolumn\vspace{2em}\else\vspace{1em}\fi%
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at shorttitlecontent]%
+            \else
+                \neo at shorttitlecontent
+            \fi
+            \thispagestyle{firstpage}%
+        }%
+    }
+\fi
+
+%% Short Lesson Header Style
+%% ----------------------------------
+\ifneo at shortlesson
+    \newcommand{\neo at shortlessoncontent}{%
+        \begin{tikzpicture}[remember picture,overlay]
+            % Line under the header
+            \draw[line width=0.4pt, \neoschool at headfootcolor!50!white]
+            ([yshift=-21mm]current page.north west) --
+            ([yshift=-21mm]current page.north east);
+
+            % Left side - Type
+            \path let \p1=(current page.east) in node[
+                    anchor=west,
+                    align=left,
+                    text width=\sideWidth,
+                    font=\small\sffamily,
+                    text=\neoschool at headfootcolor
+                ] at ([xshift=0.75cm,yshift=-11mm]current page.north west)
+            {\neo at header@type};
+
+            % Center - Title with dynamic width
+            \path let \p1=(current page.east) in node[
+                    anchor=center,
+                    align=center,
+                    text width={\dimexpr\paperwidth-2\sideWidth-2cm},
+                    font=\Large
+                ] at ([yshift=-11mm]current page.north)
+            {\color{\neoschool at titlecolor}%
+                    \csname\neoschool at titlestyle\endcsname%
+                    \csname\neoschool at titleweight\endcsname%
+                    \csname\neoschool at titleshape\endcsname%
+                    \@title};
+
+            % Right side - Level
+            \path let \p1=(current page.east) in node[
+                    anchor=east,
+                    align=right,
+                    text width=\sideWidth,
+                    font=\small\sffamily,
+                    text=\neoschool at headfootcolor
+                ] at ([xshift=-0.75cm,yshift=-11mm]current page.north east)
+            {\neo at header@level};
+        \end{tikzpicture}%
+        \if at twocolumn\vspace{3em}\else\vspace{1.5em}\fi%
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at shortlessoncontent]%
+            \else
+                \neo at shortlessoncontent
+            \fi
+            \thispagestyle{firstpage}%
+        }%
+    }
+\fi
+
+%% Bubbles Header
+%% ----------------------------------
+\ifneo at bubbles
+  \def\neo at bubbles@colbubbles{\neoschool at titlecolor}
+  \define at key[neo]{bubbles}{colbubbles}{\def\neo at bubbles@colbubbles{#1}}
+  \newcommand{\neo at bubbles@setkeys}{\setkeys[neo]{bubbles}}
+
+  \neo at bubbles@setkeys{%
+    colbubbles=\neoschool at titlecolor,
+  }
+
+    \newcommand{\neo at drawbubble}[5]{%
+        \pgfmathsetmacro{\opacityValue}{#1}
+        \ifneo at unicolor
+            \colorlet{currentcolor}{\neo at bubbles@colbubbles}
+        \else
+            \ifcase#2
+                \colorlet{currentcolor}{\neoschool at titlecolor}
+            \or
+                \colorlet{currentcolor}{\neoschool at headcolor}
+            \or
+                \colorlet{currentcolor}{theoremColor}
+            \or
+                \colorlet{currentcolor}{definitionColor}
+            \or
+                \colorlet{currentcolor}{methodColor}
+            \or
+                \colorlet{currentcolor}{applicationColor}
+            \fi
+        \fi
+        \colorlet{drawcolor}{currentcolor!75}
+        \fill[
+            color=currentcolor!#3!white,
+            draw=drawcolor,
+            line width=0.7pt,
+            opacity=#4
+        ] #5;
+    }
+
+    \newcommand{\neo at bubblescontent}{%
+      \begin{tikzpicture}[remember picture,overlay]
+        \def\ellipseWidth{20cm}
+        \def\ellipseHeight{5cm}
+        \def\numBubbles{500}
+        \coordinate (ellipseCenter) at ([yshift=-4cm]current page.north);
+
+        \foreach \i in {1,...,\numBubbles} {%
+          \pgfmathsetmacro{\angle}{random()*360}
+          \pgfmathsetmacro{\rawradius}{rand}
+          \pgfmathsetmacro{\radius}{pow(\rawradius, 2)}
+          \pgfmathsetmacro{\x}{\radius*\ellipseWidth/2.25*cos(\angle)}
+          \pgfmathsetmacro{\y}{\radius*\ellipseHeight/2.25*sin(\angle)}
+
+          \pgfmathrandominteger{\sizeGroup}{1}{3}
+          \ifnum\sizeGroup=1
+            \pgfmathsetmacro{\bubbleRadius}{rand*12 + 5}
+          \else\ifnum\sizeGroup=2
+              \pgfmathsetmacro{\bubbleRadius}{rand*8 + 3}
+            \else
+              \pgfmathsetmacro{\bubbleRadius}{rand*4 + 1}
+            \fi\fi
+
+          \pgfmathsetmacro{\op}{0.4 + 0.2*rand}
+
+          \pgfmathrandominteger{\col}{0}{4}
+          \pgfmathrandominteger{\p}{50}{90}
+          \neo at drawbubble{\op}{\col}{\p}{\op}
+          {([xshift=\x, yshift=\y]ellipseCenter) circle (\bubbleRadius pt)}
+        }
+
+        \node[%
+        anchor=north,
+        align=center,
+        inner sep=3mm,
+        minimum width=0.5\linewidth,
+        text opacity=1,
+        draw opacity=0.85,
+        fill=white,
+        rounded corners=2pt,
+        draw=\neoschool at headfootcolor,
+        line width=0.4pt
+        ] at ([yshift=0.5cm]ellipseCenter)
+        {\csname\neoschool at titlestyle\endcsname\csname\neoschool at titleweight\endcsname\csname\neoschool at titleshape\endcsname
+          \color{\neo at bubbles@colbubbles}\LARGE \@title};
+      \end{tikzpicture}%
+      \if at twocolumn\vspace{6cm}\else\vspace{11em}\fi%
+    }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at bubblescontent]%
+            \else
+                \neo at bubblescontent
+            \fi
+            \thispagestyle{firstpage}%
+        }%
+    }
+\fi
+
+%% Short Bubbles Header
+\ifneo at shortbubbles
+  \def\neo at bubbles@colbubbles{\neoschool at titlecolor}
+  \define at key[neo]{bubbles}{colbubbles}{\def\neo at bubbles@colbubbles{#1}}
+  \newcommand{\neo at bubbles@setkeys}{\setkeys[neo]{bubbles}}
+
+  \neo at bubbles@setkeys{%
+    colbubbles=\neoschool at titlecolor,
+  }
+
+  \newcommand{\neo at drawbubble}[5]{%
+    \pgfmathsetmacro{\opacityValue}{#1}
+    \ifneo at unicolor
+        \colorlet{currentcolor}{\neo at bubbles@colbubbles}
+    \else
+        \ifcase#2
+            \colorlet{currentcolor}{\neoschool at titlecolor}
+        \or
+            \colorlet{currentcolor}{\neoschool at headcolor}
+        \or
+            \colorlet{currentcolor}{theoremColor}
+        \or
+            \colorlet{currentcolor}{definitionColor}
+        \or
+            \colorlet{currentcolor}{methodColor}
+        \or
+            \colorlet{currentcolor}{applicationColor}
+        \fi
+    \fi
+    \colorlet{drawcolor}{currentcolor!75}
+    \fill[
+        color=currentcolor!#3!white,
+        draw=drawcolor,
+        line width=0.7pt,
+        opacity=#4
+    ] #5;
+}
+
+    \newcommand{\neo at shortbubblescontent}{%
+        \ifx\@subtitle\empty
+            \setlength{\neo at headerheight}{7em}
+        \else
+            \setlength{\neo at headerheight}{8em}
+        \fi
+
+        \begin{tikzpicture}[remember picture,overlay]
+            \def\myheight{4em}
+            % Set dimensions of the ellipse
+            \def\ellipseWidth{12cm}
+            \def\ellipseHeight{3cm}
+            \def\numBubbles{300}
+            \coordinate (ellipseCenter) at ([yshift=-.9\neo at headerheight]current page text area.north);
+
+            \foreach \i in {1,...,\numBubbles} {%
+                \pgfmathsetmacro{\angle}{random()*360}
+                \pgfmathsetmacro{\rawradius}{rand}
+                \pgfmathsetmacro{\radius}{pow(\rawradius, 2)} % Non-linear distribution
+                \pgfmathsetmacro{\x}{\radius * \ellipseWidth/2 * cos(\angle)}
+                \pgfmathsetmacro{\y}{\radius * \ellipseHeight/2 * sin(\angle)}
+
+                \pgfmathrandominteger{\sizeGroup}{1}{3}
+                \ifnum\sizeGroup=1
+                    \pgfmathsetmacro{\bubbleRadius}{rand*8 + 3}
+                \else\ifnum\sizeGroup=2
+                    \pgfmathsetmacro{\bubbleRadius}{rand*5 + 2}
+                \else
+                    \pgfmathsetmacro{\bubbleRadius}{rand*3 + 1}
+                \fi\fi
+
+                \pgfmathsetmacro{\op}{0.3 + 0.4*rand}
+
+                \pgfmathrandominteger{\col}{0}{4}
+                \pgfmathrandominteger{\p}{50}{90}
+                \neo at drawbubble{\op}{\col}{\p}{\op}
+                {([xshift=\x, yshift=\y]ellipseCenter) circle (\bubbleRadius pt)}
+            }
+
+            \node[\neoschool at titlecolor] at
+            ([yshift=0.5\myheight]current page text area.north) (title) {%
+                \LARGE\csname\neoschool at titlestyle\endcsname
+                \csname\neoschool at titleweight\endcsname
+                \csname\neoschool at titleshape\endcsname
+                \@title
+            };
+
+            \ifx\@subtitle\empty\else
+                \node[subtitleColor, below=0.3em of title] {%
+                    \large\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\@subtitle
+                };
+            \fi
+        \end{tikzpicture}%
+        \if at twocolumn
+            \vspace{1.75\neo at headerheight}%
+        \else
+            \vspace{1.5\neo at headerheight}%
+        \fi
+      }
+
+    \AtBeginDocument{%
+        \let\neo at oldmaketitle\maketitle
+        \renewcommand{\maketitle}{%
+            \if at twocolumn
+                \twocolumn[\neo at shortbubblescontent]%
+            \else
+                \neo at shortbubblescontent
+            \fi
+            \thispagestyle{firstpage}%
+        }%
+    }
+\fi
+
+
+%% ==============================================================================
+%% Box Styles and Environment
+%% ==============================================================================
+
+%% Common Style Parameters
+%% ----------------------------------
+
+%% Mathematical Boxes
+%% ----------------------------------
+% Standard math box with configurable colors%
+\NewDocumentCommand\mathbox{D<>{white}O{definitionColor}}{%
+\tcboxmath[%
+    colback=#1,
+    colframe=#2,
+    size=fbox,
+    arc=3pt,
+    boxrule=0.8pt
+]
+}
+
+% Math highlighting with size adaptation
+\newcommand{\mhl}[2][yellow]{%
+    \mathchoice
+    {\colorbox{#1}{$\displaystyle#2$}}
+    {\colorbox{#1}{$\textstyle#2$}}
+    {\colorbox{#1}{$\scriptstyle#2$}}
+    {\colorbox{#1}{$\scriptscriptstyle#2$}}
+}
+
+%% Answer Fields
+%% ----------------------------------
+% Empty box for answers
+\newcommand{\emptybox}[2]{%
+    \begin{tcolorbox}[%
+            enhanced,
+            boxrule=1pt,
+            arc=5pt,
+            boxsep=0pt,
+            width=#1,
+            height=#2,
+            colback=exerciseColor!5!white,
+            frame hidden,
+            before skip=.5\baselineskip,
+            after skip=.5\baselineskip
+        ]
+        \null
+    \end{tcolorbox}
+}
+
+% Answer field with line spacing
+\newlength{\neo at answerbaselineskip}
+\setlength{\neo at answerbaselineskip}{1.35\baselineskip}
+
+\newcommand{\answerfield}[2][.975\linewidth]{%
+    \vspace{0.25\baselineskip}%
+    \noindent
+    \colorbox{exerciseColor!5!white}{%
+        \parbox{#1}{%
+            \phantom{\rule{1pt}{#2\neo at answerbaselineskip}}
+        }
+    }
+    \vspace{0.1cm}
+}
+
+% Answer field with frame and white background
+\newcommand{\answerframe}[2][\linewidth]{%
+    \noindent\par
+    \begin{tcolorbox}[%
+            enhanced,
+            boxrule=0.8pt,
+            colframe=exerciseColor!50,
+            colback=white,
+            width=#1,
+            height=#2\neo at answerbaselineskip,
+            nobeforeafter,
+            arc=2pt,
+            boxsep=0pt,
+            left=2pt,
+            right=2pt,
+            top=2pt,
+            bottom=2pt,
+            before skip=.5\baselineskip,
+            after skip=.5\baselineskip,
+        ]
+        \phantom{\rule{1pt}{#2\neo at answerbaselineskip}}
+    \end{tcolorbox}
+}
+
+%% Solution and Application Boxes
+%% ----------------------------------
+% Solution box with fixed dimensions
+\newcommand{\solutionbox}[3][\linewidth]{%
+    \begin{tcolorbox}[%
+            enhanced,
+            boxrule=1pt,
+            fontupper=\color{\neoschool at globalcolor},
+            arc=5pt,
+            boxsep=0mm,
+            width=#1,
+            height=#2,
+            colback=solutionColor!5!white,
+            frame hidden,
+            before skip=0.5\baselineskip,
+            after skip=\baselineskip
+        ]
+        #3
+    \end{tcolorbox}
+    \par%
+}
+
+% Colored box for applications
+\newcommand{\neocolorbox}[2][applicationColor]{%
+    \begin{tcolorbox}[%
+            enhanced,
+            fontupper=\color{\neoschool at globalcolor},
+            boxrule=1pt,
+            sharpish corners,
+            width=\linewidth,
+            colback=#1!5!white,
+            frame hidden,
+            before skip=12pt plus 2pt,
+            after skip=18pt plus 2pt
+        ]
+        #2
+    \end{tcolorbox}
+}
+
+%% Inline Boxes
+%% ----------------------------------
+\NewDocumentCommand{\inlinebox}{ O{definitionColor} O{white} O{definitionColor} m }{%
+    \tcbox[%
+        enhanced,
+        nobeforeafter,
+        tcbox raise base,
+        boxrule=0.4pt,
+        top=0mm,
+        bottom=0mm,
+        right=0mm,
+        left=0mm,
+        arc=1pt,
+        boxsep=2pt,
+        colback=#1,
+        colupper=#2,
+        colframe=#3
+    ]{#4}%
+}
+
+%% General Purpose Box Environment
+%% ----------------------------------
+\NewDocumentEnvironment{neobox}{ s O{} }{%
+    \begin{tcolorbox}[%
+            \IfBooleanTF{#1}{frame hidden}{},
+            colframe=\neoschool at headcolor,
+            colback=\neo at tcbcolback,
+            enhanced,
+            breakable,
+            boxrule=1pt,
+            arc=4pt,
+            sharp corners,
+            left=0.65em,
+            right=0.65em,
+            #2
+        ]
+        }{%
+    \end{tcolorbox}
+}
+
+% Define starred version
+\ExplSyntaxOn
+\cs_new:cpn {neobox*} {\neobox*}
+\cs_new_eq:cN {endneobox*} \endneobox
+\ExplSyntaxOff
+
+%% Side-by-Side Box Environment
+%% ----------------------------------
+% Base colors for example boxes
+\colorlet{neo at examplecomp}{-exampleColor}
+\colorlet{neo at exampledark}{neo at examplecomp!50!black}
+
+% Environment definition
+\newtcolorbox{sidebyside}[1][]{%
+    sidebyside,
+    enhanced,
+    bicolor,
+    sharp corners,
+    arc=1pt,
+    colback=exampleColor!5,
+    colbacklower=exampleColor!10,
+    colframe=exampleColor!85!black,
+    left=0pt,
+    right=0pt,
+    boxrule=1pt,
+    fonttitle=\sffamily\bfseries,
+    lefttitle=1.7mm,
+    before skip=\baselineskip,
+    after skip=\baselineskip,
+    #1
+}
+
+%% ==============================================================================
+%% Listings Styles and Setting
+%% ==============================================================================
+
+%% TColorBox Styles
+%% ----------------------------------
+
+%% Base Box Parameters
+%% ----------------------------------
+\tcbset{%
+    neo at commonbox/.style={%
+            enhanced,
+            boxrule=\neo at thmborder,
+            top=0pt,
+            bottom=0pt,
+            left=2mm,
+            right=2mm,
+            fonttitle=\small\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname,
+            coltitle=\neo at tcbcolback,
+            before skip=\baselineskip,
+            after skip=\baselineskip
+        }
+}
+
+%% Box Styles
+%% ----------------------------------
+\def\neo at notitle{notitle}
+
+\tcbset{%
+    box-classic/.style={%
+            neo at commonbox,
+            colback=white,
+            colframe=codeColor,
+            frame style={opacity=0.5},
+            boxrule=0.5pt,
+            arc=0pt,
+            toptitle=2pt,
+            bottomtitle=2pt,
+            colbacktitle=white,
+            coltitle=black,
+            fonttitle=\sffamily
+        },
+    box-bottomtitle/.style={%
+            neo at commonbox,
+            enhanced,
+            frame hidden,
+            colback=white,
+            colbacktitle=white,
+            coltitle=black,
+            fonttitle=\small\sffamily,
+            attach boxed title to bottom center,
+            bottom=0pt,
+            boxed title style={%
+                    frame hidden,
+                    colframe=white,
+                    top=0pt,
+                }
+        },
+    box-bottomtitlef/.style={
+            neo at commonbox,
+            enhanced,
+            colframe=codeColor,
+            frame style={opacity=0.5},
+            boxrule=0.5pt,
+            colback=white,
+            colbacktitle=white,
+            coltitle=black,
+            fonttitle=\small\sffamily,
+            sharp corners,
+            attach boxed title to bottom center,
+            top=0pt,
+            bottom=0pt,
+            boxed title style={%
+                    frame hidden,
+                    colframe=white,
+                    top=5pt
+                }
+        },
+    box-fancy/.style={%
+            neo at commonbox,
+            colback=codebackColor,
+            colframe=codeColor,
+            arc=\neoschool at boxarc,
+            toptitle=1pt,
+            bottomtitle=2pt,
+            colbacktitle=codeColor,
+            drop fuzzy shadow
+        },
+    box-minimal/.style={%
+            neo at commonbox,
+            colback=white,
+            colframe=codeColor,
+            frame style={opacity=0.5},
+            toptitle=2pt,
+            bottomtitle=2pt,
+            boxrule=0.3pt,
+            arc=0pt,
+            colbacktitle=white,
+            coltitle=codeColor
+        },
+    box-elegant/.style={%
+            neo at commonbox,
+            colback=codebackColor,
+            colframe=codeColor,
+            toptitle=1pt,
+            bottomtitle=2pt,
+            sharp corners=all,
+            drop fuzzy shadow
+        },
+    box-diagonal/.style={%
+            neo at commonbox,
+            colback=codebackColor,
+            colframe=codeColor,
+            toptitle=1pt,
+            bottomtitle=2pt,
+            arc=\neoschool at boxarc,
+            sharp corners=southwest,
+            sharp corners=northeast
+        },
+    box-bevel/.style={%
+            neo at commonbox,
+            colback=codebackColor,
+            colframe=codeColor,
+            toptitle=1pt,
+            bottomtitle=2pt,
+            arc=\neoschool at boxarc,
+            sharp corners=southeast,
+            sharp corners=northwest
+        },
+    box-corner/.style={%
+            neo at commonbox,
+            colback=codebackColor,
+            colframe=codeColor,
+            toptitle=1pt,
+            bottomtitle=2pt,
+            sharp corners=downhill,
+            rounded corners=northeast,
+            rounded corners=northwest,
+            arc=\neoschool at boxarc
+        },
+    box-rounded/.style={%
+            neo at commonbox,
+            colback=codebackColor,
+            colframe=codeColor,
+            rounded corners,
+            toptitle=1pt,
+            bottomtitle=2pt,
+            arc=\neoschool at boxarc,
+        },
+    box-downhill/.style={%
+            neo at commonbox,
+            colback=codebackColor,
+            colframe=codeColor,
+            sharp corners=downhill,
+            arc=\neoschool at boxarc,
+            top=0mm,
+            bottom=0mm,
+            fontupper=\color{\neoschool at globalcolor},
+            attach boxed title to top right={yshift=-\tcboxedtitleheight},
+            boxed title style={%
+                    colback=codeColor,
+                    colframe=codeColor,
+                    sharp corners=downhill,
+                    arc=.2cm,
+                    top=1pt,
+                    bottom=1pt,
+                    left=2pt,
+                    right=2pt
+                },
+        }
+}
+
+\ifneo at unicolor
+    \def\neo at keywordstyle{\color{\neoschool at headcolor}\bfseries}
+    \def\neo at commentstyle{\color{alternateColor}}
+    \def\neo at stringstyle{\color{\neoschool at headcolor!85}}
+    \def\neo at emphstyle{\color{\neoschool at headcolor}\bfseries}
+\else
+    \def\neo at keywordstyle{\color{codeKeyword}\bfseries}
+    \def\neo at commentstyle{\color{codeComment}}
+    \def\neo at stringstyle{\color{codeString}}
+    \def\neo at emphstyle{\color{codeEmph}\bfseries}
+\fi
+
+\ifneo at listings
+
+    %% Base Listing Style
+    %% ----------------------------------
+    \lstdefinestyle{neo at lst@base}{%
+        basicstyle=\ttfamily\small,
+        columns=fullflexible,
+        breaklines=true,
+        keepspaces=true,
+        showstringspaces=false,
+        tabsize=4,
+        inputencoding=utf8,
+        extendedchars=true,
+        escapeinside={(*@}{@*)},
+        aboveskip=.25\baselineskip,
+        belowskip=.25\baselineskip,
+        literate={%
+                á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
+        {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
+        {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
+        {À}{{\`A}}1 {È}{{\`E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
+        {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+        {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+        {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
+        {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
+        {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
+        {ẞ}{{\SS}}1 {ç}{{\c{c}}}1 {Ç}{{\c{C}}}1 {ø}{{\o}}1 {Ø}{{\O}}1
+        {å}{{\aa}}1 {Å}{{\AA}}1 {ã}{{\~a}}1 {õ}{{\~o}}1 {Ã}{{\~A}}1
+        {Õ}{{\~O}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1 {¡}{{!`}}1
+        {°}{{\textdegree}}1 {º}{{\textordmasculine}}1 {ª}{{\textordfeminine}}1
+        {€}{{\euro}}1 {£}{{\pounds}}1 {©}{{\copyright}}1 {®}{{\textregistered}}1
+        {«}{{\guillemotleft}}1 {»}{{\guillemotright}}1 {Ð}{{\DH}}1 {ð}{{\dh}}1
+        {Ý}{{\'Y}}1 {ý}{{\'y}}1 {Þ}{{\TH}}1 {þ}{{\th}}1 {Ă}{{\u{A}}}1
+        {ă}{{\u{a}}}1 {Ą}{{\k{A}}}1 {ą}{{\k{a}}}1 {Ć}{{\'C}}1 {ć}{{\'c}}1
+        {Č}{{\v{C}}}1 {č}{{\v{c}}}1 {Ď}{{\v{D}}}1 {ď}{{\v{d}}}1 {Đ}{{\DJ}}1
+        {đ}{{\dj}}1 {Ė}{{\.{E}}}1 {ė}{{\.{e}}}1 {Ę}{{\k{E}}}1 {ę}{{\k{e}}}1
+        {Ě}{{\v{E}}}1 {ě}{{\v{e}}}1 {Ğ}{{\u{G}}}1 {ğ}{{\u{g}}}1 {Ĩ}{{\~I}}1
+        {ĩ}{{\~\i}}1 {Į}{{\k{I}}}1 {į}{{\k{i}}}1 {İ}{{\.{I}}}1 {ı}{{\i}}1
+        {Ĺ}{{\'L}}1 {ĺ}{{\'l}}1 {Ľ}{{\v{L}}}1 {ľ}{{\v{l}}}1 {Ł}{{\L{}}}1
+        {ł}{{\l{}}}1 {Ń}{{\'N}}1 {ń}{{\'n}}1 {Ň}{{\v{N}}}1 {ň}{{\v{n}}}1
+        {Ő}{{\H{O}}}1 {ő}{{\H{o}}}1 {Ŕ}{{\'{R}}}1 {ŕ}{{\'{r}}}1 {Ř}{{\v{R}}}1
+        {ř}{{\v{r}}}1 {Ś}{{\'S}}1 {ś}{{\'s}}1 {Ş}{{\c{S}}}1 {ş}{{\c{s}}}1
+        {Š}{{\v{S}}}1 {š}{{\v{s}}}1 {Ť}{{\v{T}}}1 {ť}{{\v{t}}}1 {Ũ}{{\~U}}1
+    }
+
+    \renewcommand*{\lstlistingname}{\neo at codename}
+
+    %% Common Style Elements
+    %% ----------------------------------
+
+    %% ==============================================================================
+    %% Listings Styles and Settings - Part 2
+    %% Defines specific listing styles and environments
+    %% ==============================================================================
+
+    %% Specific Listing Styles
+    %% ----------------------------------
+    % Style Colorful and variants
+    \lstdefinestyle{neo at lst@colorful}{%
+        style=neo at lst@base,
+        keywordstyle=\neo at keywordstyle,
+        commentstyle=\neo at commentstyle,
+        stringstyle=\neo at stringstyle,
+        emphstyle=\neo at emphstyle,
+        numbers=none,
+        numberstyle=\tiny\color{codeBackground},
+        frame=none
+    }
+
+    % Variants with background color
+    \lstdefinestyle{neo at lst@colorfulb}{%
+        style=neo at lst@colorful,
+        backgroundcolor=\color{codebackColor}
+    }
+
+    % Variants with line numbers
+    \lstdefinestyle{neo at lst@colorfuln}{%
+        style=neo at lst@colorful,
+        numbers=left,
+        numbersep=10pt
+    }
+
+    % Variants with line numbers and background
+    \lstdefinestyle{neo at lst@colorfulbn}{%
+        style=neo at lst@colorfulb,
+        numbers=left,
+        numbersep=10pt
+    }
+
+    % Variants with frame
+    \lstdefinestyle{neo at lst@colorfulf}{%
+        style=neo at lst@colorful,
+        frame=single
+    }
+
+    % Variants with frame and background
+    \lstdefinestyle{neo at lst@colorfulbf}{%
+        style=neo at lst@colorfulb,
+        frame=single
+    }
+
+    % Variants with frame and numbers
+    \lstdefinestyle{neo at lst@colorfulfn}{%
+        style=neo at lst@colorfuln,
+        frame=single
+    }
+
+    % Variants with all options
+    \lstdefinestyle{neo at lst@colorfulbfn}{%
+        style=neo at lst@colorfulbn,
+        frame=single
+    }
+
+    %% Minimal Style and Variants
+    %% ----------------------------------
+    \lstdefinestyle{neo at lst@minimal}{%
+        style=neo at lst@base,
+        keywordstyle=\ifneo at unicolor\color{\neoschool at headcolor}\fi\bfseries,
+        commentstyle=\ifneo at unicolor\color{\neoschool at headcolor}\fi,
+        stringstyle=\ifneo at unicolor\color{\neoschool at headcolor}\else\ttfamily\fi,
+        emphstyle=\ifneo at unicolor\color{\neoschool at headcolor}\else\bfseries\fi,
+        numbers=none,
+        frame=none,
+    }
+
+    % Define all variants using the same pattern as colorful styles
+    \lstdefinestyle{neo at lst@minimalb}{style=neo at lst@minimal,backgroundcolor=\color{codebackColor}}
+    \lstdefinestyle{neo at lst@minimaln}{style=neo at lst@minimal,numbers=left,numbersep=10pt}
+    \lstdefinestyle{neo at lst@minimalbn}{style=neo at lst@minimalb,numbers=left,numbersep=10pt}
+    \lstdefinestyle{neo at lst@minimalf}{style=neo at lst@minimal,frame=single}
+    \lstdefinestyle{neo at lst@minimalbf}{style=neo at lst@minimalb,frame=single}
+    \lstdefinestyle{neo at lst@minimalfn}{style=neo at lst@minimaln,frame=single}
+    \lstdefinestyle{neo at lst@minimalbfn}{style=neo at lst@minimalbn,frame=single}
+
+    %% Academic and Modern Styles
+    %% ----------------------------------
+    \lstdefinestyle{neo at lst@academic}{%
+        style=neo at lst@base,
+        keywordstyle=\ifneo at unicolor\color{\neoschool at headcolor}\fi\bfseries,
+        commentstyle=\ifneo at unicolor\color{\neoschool at headcolor}\fi,
+        stringstyle=\ifneo at unicolor\color{\neoschool at headcolor}\else\ttfamily\fi,
+        numbers=left,
+        numberstyle=\tiny,
+        numbersep=12pt,
+        frame=leftline,
+        framesep=3pt,
+        framexleftmargin=3pt,
+        xleftmargin=15pt
+    }
+
+    \lstdefinestyle{neo at lst@modern}{%
+        style=neo at lst@base,
+        keywordstyle=\ifneo at unicolor\color{\neoschool at headcolor}\else\color{codeKeyword}\fi\bfseries,
+        commentstyle=\ifneo at unicolor\color{\neoschool at headcolor}\else\color{codeComment}\fi,
+        stringstyle=\ifneo at unicolor\color{\neoschool at headcolor}\else\color{codeString}\fi,
+        numbers=none,
+        frame=single,
+        framerule=1pt,
+        framesep=3pt,
+        rulecolor=\ifneo at unicolor\color{\neoschool at headcolor}\else\color{codeKeyword}\fi,
+        backgroundcolor=\ifneo at unicolor\color{codebackColor}\else\color{codeKeyword!5}\fi,
+        framesep=7pt,
+        xleftmargin=1em,
+        linewidth={\dimexpr \linewidth-10pt},
+    }
+
+    %% Language-Specific Definitions
+    %% ----------------------------------
+    % JSON
+    \lstdefinelanguage{json}{%
+    keywords={true,false,null},
+    sensitive=false,
+    morestring=[b]",
+    morecomment=[l]{//},
+    morecomment=[s]{/*}{*/},
+    literate=
+    *{0}{{{\color{codeComment}0}}}{1}
+    {1}{{{\color{codeComment}1}}}{1}
+    {2}{{{\color{codeComment}2}}}{1}
+    {3}{{{\color{codeComment}3}}}{1}
+    {4}{{{\color{codeComment}4}}}{1}
+    {5}{{{\color{codeComment}5}}}{1}
+    {6}{{{\color{codeComment}6}}}{1}
+    {7}{{{\color{codeComment}7}}}{1}
+    {8}{{{\color{codeComment}8}}}{1}
+    {9}{{{\color{codeComment}9}}}{1}
+    {:}{{{\color{codeKeyword}{:}}}}{1}
+    {,}{{{\color{codeKeyword}{,}}}}{1}
+    {\{}{{{\color{codeKeyword}{\{}}}}{1}
+    {\}}{{{\color{codeKeyword}{\}}}}}{1}
+    {[}{{{\color{codeKeyword}{[}}}}{1}
+    {]}{{{\color{codeKeyword}{]}}}}{1},
+    }
+
+    % YAML
+    \lstdefinelanguage{yaml}{%
+        keywords={true,false,null,yes,no,on,off},
+        sensitive=false,
+        morestring=[b]",
+        morestring=[b]',
+        morecomment=[l]{\#},
+        literate=
+            *{:}{{{\color{codeKeyword}{:}}}}{1}
+            {-}{{{\color{codeKeyword}{-}}}}{1}
+            {>}{{{\color{codeKeyword}{>}}}}{1}
+            {|}{{{\color{codeKeyword}{|}}}}{1},
+    }
+
+    % TOML
+    \lstdefinelanguage{toml}{%
+    keywords={true,false},
+    sensitive=false,
+    morestring=[b]",
+    morestring=[b]',
+    morecomment=[l]{\#},
+    literate=
+    *{=}{{{\color{codeKeyword}{=}}}}{1}
+    {[}{{{\color{codeKeyword}{[}}}}{1}
+    {]}{{{\color{codeKeyword}{]}}}}{1}
+    {.}{{{\color{codeKeyword}{.}}}}{1},
+    }
+
+    % CSV
+    \lstdefinelanguage{csv}{%
+        sensitive=false,
+        morestring=[b]",
+        morecomment=[l]{\#},
+        literate=
+            *{,}{{{\color{codeKeyword}{,}}}}{1}
+            {;}{{{\color{codeKeyword}{;}}}}{1},
+    }
+
+    % Markdown
+    \lstdefinelanguage{markdown}{%
+    sensitive=false,
+    morecomment=[l]{\%},
+    literate=
+    *{\#}{{{\color{codeKeyword}{\#}}}}{1}
+    {-}{{{\color{codeKeyword}{-}}}}{1}
+    {*}{{{\color{codeKeyword}{*}}}}{1}
+    {>}{{{\color{codeKeyword}{>}}}}{1}
+    {`}{{{\color{codeKeyword}{`}}}}{1}
+    {|}{{{\color{codeKeyword}{|}}}}{1}
+    {[}{{{\color{codeKeyword}{[}}}}{1}
+    {]}{{{\color{codeKeyword}{]}}}}{1}
+    {(}{{{\color{codeKeyword}{(}}}}{1}
+    {)}{{{\color{codeKeyword}{)}}}}{1},
+    }
+
+    %% Language-Specific Styles
+    %% ----------------------------------
+    \lstdefinestyle{python}{%
+        language=Python,
+        style=neo at lst@\neoschool at lststyle,
+        morekeywords={%
+                @property, at classmethod, at staticmethod,
+            },
+        emph={%
+                range,int,str,list,dict,set,bool,float,
+                tuple,super,type,print,len,sum,min,max,
+                enumerate,zip,map,filter,any,all,as,assert,
+                nonlocal,with,yield,self,True,False,None,
+                lambda,raise,await,async,
+            },
+        morestring=[b]""",
+    }
+
+    \lstdefinestyle{java}{%
+        language=Java,
+        style=neo at lst@\neoschool at lststyle,
+        morekeywords={%
+                @Override, at Deprecated, at SuppressWarnings,
+                @FunctionalInterface, at SafeVarargs,
+                var,record,sealed,permits,
+                public,private,protected,static,final,
+                abstract,interface,extends,implements
+            },
+        morecomment=[s]{/*}{*/},
+        morecomment=[l]//,
+        morestring=[b]",
+    }
+
+    \lstdefinestyle{cpp}{%
+        language=C++,
+        style=neo at lst@\neoschool at lststyle,
+        morekeywords={%
+                nullptr,constexpr,override,final,
+                template,typename,concept,requires,
+                auto,decltype,noexcept,static_assert,
+                thread_local,alignas,alignof
+            },
+        morecomment=[s]{/*}{*/},
+        morecomment=[l]//,
+        morestring=[b]",
+    }
+
+    \lstdefinestyle{javascript}{%
+        language=JavaScript,
+        style=neo at lst@\neoschool at lststyle,
+        morekeywords={%
+                let,const,var,function,class,extends,
+                static,get,set,new,this,super,
+                import,export,default,from,as,
+                async,await,yield,return,
+                undefined,null,true,false
+            },
+        morecomment=[s]{/*}{*/},
+        morecomment=[l]//,
+        morestring=[b]",
+        morestring=[b]',
+        morestring=[b]`,
+    }
+
+    \lstdefinestyle{sql}{%
+        language=SQL,
+        style=neo at lst@\neoschool at lststyle,
+        morekeywords={%
+                CREATE,TABLE,INSERT,INTO,VALUES,
+                SELECT,FROM,WHERE,GROUP,BY,HAVING,
+                ORDER,LIMIT,JOIN,LEFT,RIGHT,INNER,
+                UPDATE,SET,DELETE,ALTER,DROP,
+                CONSTRAINT,PRIMARY,KEY,FOREIGN,
+                REFERENCES,CASCADE,INDEX
+            },
+        sensitive=false,
+    }
+
+    \lstdefinestyle{latex}{%
+        language=[latex]TeX,
+        style=neo at lst@\neoschool at lststyle,
+        texcsstyle=*\bfseries\color{codeKeyword},
+        moretexcs = {tableofcontents,index,footnote,sout,part,chapter,subsection,subsubsection,paragraph,maketitle,leqslant,geqslant,varnothing,includegraphics,draw,node,theoremstyle,newtcolorbox,tcbuselibrary,newtcbtheorem,SI,ang,ce,chemfig,norm,abs,deriv,R,N,Z,ProvidesPackage,color,ps,montitre,lstset,lstinline,lstinputlisting,definecolor,textcolor,colorlet,setlength,colorbox,fcolorbox,addplot,pgfplotsset,opadd,opsub,opmul,opdiv,opgcd,metre,second,squared,kelvin,coulomb,volt,per,opprint,legend,tkzDefPoint,tkzInterLL,tkzGetPoint,tkzDrawPolygon,tkzDrawSegments,tkzMarkRightAngles,tkzMarkSegments,tkzLabelPoints,boxed,boldsymbol,boldmath,multirow,addbibresource,printbibliography,bm,dfrac,meter,thead,makecell,euro,cellcolor,rowcolor,columncolor,base,repere,rog,ron,rond,derpart,drv,integrer,nuplet,anuplet,ensemble,E,V,suite,suitar,suitgeo,vect,norme,tr,rank,adj,sgn,im,di,intabfx,integrale,e,moinsinf,plusinf,sisetup,restoregeometry,newgeometry,lefttitle,righttitle,colbacklower,neoheader,neograph,textwithimage,withqrcode,positionobject,splitcontent,grid,customgrid,frenchgrid,notebook,nbminorgrid,nbmajorgrid},
+        emph={width,axis~lines,xlabel,ylabel,xmin,ymin,grid,domain,samples,displayshiftintermediary,colback,colframe,colbacktitle,coltitle,enhanced,,fonttitle,margin,leftmargin,publisher,year,carrysub,lastcarry,locale,xmax,ymax,coordinates,mark,style,hmargin,vmargin,top,bottom,left,right,showframe,includeheadfoot,opacity,fill,above,},
+        morecomment=[l]{\%},
+        morestring=[b]",
+        sensitive=true
+    }
+
+    \lstdefinestyle{bash}{%
+        language=bash,
+        style=neo at lst@\neoschool at lststyle,
+        morekeywords={%
+                source, alias, bg, bind, break, builtin, cd, command, compgen,
+                complete, continue, declare, dirs, disown, echo, enable, eval,
+                exec, exit, export, fc, fg, getopts, hash, help, history, jobs,
+                kill, let, local, logout, mapfile, popd, printf, pushd, pwd,
+                read, readarray, readonly, return, set, shift, shopt, suspend,
+                test, times, trap, type, typeset, ulimit, umask, unalias,
+                unset, wait
+            },
+        morestring=[b]",
+        morestring=[b]',
+        morestring=[b]\`,
+        morecomment=[l]{\#},
+        literate=
+            *{\$}{{{\color{codeKeyword}{\$}}}}{1}
+            {|}{{{\color{codeKeyword}{|}}}}{1}
+            {>}{{{\color{codeKeyword}{>}}}}{1}
+            {<}{{{\color{codeKeyword}{<}}}}{1}
+            {&}{{{\color{codeKeyword}{\&}}}}{1},
+    }
+
+    \lstdefinestyle{assembly}{%
+    language=[x86]Assembler,
+    style=neo at lst@\neoschool at lststyle,
+    morekeywords={%
+            section, global, extern
+        },
+    morecomment=[l]{;},
+    morecomment=[l]{\#},
+    literate=
+    *{,}{{{\color{codeKeyword}{,}}}}{1}
+    {:}{{{\color{codeKeyword}{:}}}}{1}
+    {[}{{{\color{codeKeyword}{[}}}}{1}
+    {]}{{{\color{codeKeyword}{]}}}}{1}
+    {\$}{{{\color{codeKeyword}{\$}}}}{1}
+    {\%}{{{\color{codeKeyword}{\%}}}}{1},
+    }
+
+    \lstdefinestyle{lisp}{%
+        language=Lisp,
+        style=neo at lst@\neoschool at lststyle,
+        morekeywords={%
+                setq, setf, loop, do, progn, when, unless
+            },
+        literate=
+            *{(}{{{\color{codeKeyword}{(}}}}{1}
+            {)}{{{\color{codeKeyword}{)}}}}{1}
+            {'}{{{\color{codeKeyword}{'}}}}{1}
+            {`}{{{\color{codeKeyword}{`}}}}{1}
+            {,}{{{\color{codeKeyword}{,}}}}{1},
+    }
+
+    \lstdefinestyle{json}{%
+        style=neo at lst@\neoschool at lststyle,
+        language=json,
+    }
+
+    \lstdefinestyle{yaml}{%
+        style=neo at lst@\neoschool at lststyle,
+        language=yaml,
+    }
+
+    \lstdefinestyle{toml}{%
+        style=neo at lst@\neoschool at lststyle,
+        language=toml,
+    }
+
+    \lstdefinestyle{csv}{%
+        style=neo at lst@\neoschool at lststyle,
+        language=csv,
+    }
+
+    \lstdefinestyle{markdown}{%
+        style=neo at lst@\neoschool at lststyle,
+        language=markdown,
+    }
+
+    %% Environment Definitions
+    %% ----------------------------------
+    % Counter for code listings
+    \newcounter{lstcode}
+
+    % Code listing environment
+    \NewTCBListing[use counter=lstcode]{code}{ O{} m !O{} !O{} }{%
+        listing only,
+        enhanced,
+        breakable,
+        listing options={%
+                style=#2,
+                #1
+            },
+        code={%
+                \IfEqCase{#4}{%
+                    {}{\tcbset{%
+                                standard jigsaw,
+                                opacityback=0,
+                                opacityframe=0,
+                                frame hidden,
+                                boxrule=0pt,
+                                left=0pt,
+                                right=0pt,
+                                top=0pt,
+                                bottom=0pt,
+                                title={},
+                                notitle
+                            }}
+                        {box-minimal}{\tcbset{box-minimal}}
+                        {box-fancy}{\tcbset{box-fancy}}
+                        {box-classic}{\tcbset{box-classic}}
+                        {box-elegant}{\tcbset{box-elegant}}
+                        {box-diagonal}{\tcbset{box-diagonal}}
+                        {box-bevel}{\tcbset{box-bevel}}
+                        {box-corner}{\tcbset{box-corner}}
+                        {box-rounded}{\tcbset{box-rounded}}
+                        {box-downhill}{\tcbset{box-downhill}}
+                        {box-bottomtitle}{\tcbset{box-bottomtitle}}
+                        {box-bottomtitlef}{\tcbset{box-bottomtitlef}}
+                }[\PackageError{code}{Style not found: #4}{}]
+                \ifx\relax#3\relax\else
+                    \tcbset{title={\lstlistingname~\thelstcode~~\textemdash{}~~#3},\neoschool at boxtitle}
+                \fi
+            }
+    }
+
+    % Style selector command
+    \newcommand{\setcodestyle}[1]{%
+        \renewcommand{\neoschool at lststyle}{#1}
+    }
+
+    % Default style
+    \AtBeginDocument{%
+        \ifneo at listings
+            \lstset{style=neo at lst@\neoschool at lststyle}
+        \else
+            \PackageWarning{neoschool}{The 'listings' package is not enabled, lststyle option will be ignored.}
+        \fi
+    }
+
+    % Inline code
+    \newcommand{\codeinline}[2][]{%
+        \lstinline[style=#1]{#2}
+    }
+
+    % Language detection
+    \newcommand{\DetectLanguage}[1]{%
+        \filename at parse{#1}
+        \ifthenelse{\equal{\filename at ext}{py}}{python}{%
+            \ifthenelse{\equal{\filename at ext}{java}}{java}{%
+                \ifthenelse{\equal{\filename at ext}{tex}}{latex}{text}
+            }
+        }
+    }
+
+    % Code input
+    \NewTCBInputListing{\codeinput}{ O{} m m !O{} !O{} }{%
+        listing file={#3},
+        listing only,
+        boxrule=0pt,
+        enhanced,
+        breakable,
+        listing file={#3},
+        listing options={%
+                style={#2},
+                #1
+            },
+        frame hidden,
+        colback=codebackColor,
+        boxrule=0pt,
+        left=0pt,
+        right=0pt,
+        top=0pt,
+        bottom=0pt,
+        code={%
+                \IfEqCase{#5}{%
+                    {}{\tcbset{%
+                                standard jigsaw,
+                                opacityback=0,
+                                opacityframe=0,
+                                frame hidden,
+                                boxrule=0pt,
+                                left=0pt,
+                                right=0pt,
+                                top=0pt,
+                                bottom=0pt,
+                                title={},
+                                notitle
+                            }}
+                        {box-minimal}{\tcbset{box-minimal}}
+                        {box-fancy}{\tcbset{box-fancy}}
+                        {box-classic}{\tcbset{box-classic}}
+                        {box-elegant}{\tcbset{box-elegant}}
+                        {box-diagonal}{\tcbset{box-diagonal}}
+                        {box-bevel}{\tcbset{box-bevel}}
+                        {box-corner}{\tcbset{box-corner}}
+                        {box-rounded}{\tcbset{box-rounded}}
+                        {box-downhill}{\tcbset{box-downhill}}
+                        {box-bottomtitle}{\tcbset{box-bottomtitle}}
+                        {box-bottomtitlef}{\tcbset{box-bottomtitlef}}
+                }[\PackageError{code}{Style not found: #5}{}]
+                \ifx\relax#4\relax\else
+                    \tcbset{title={\neo at codename~\thelstcode~~\textemdash{}~~#4},\neoschool at boxtitle}
+                \fi
+            }
+    }
+
+    %% Side-by-Side Code Environment
+    %% ----------------------------------
+    \newtcblisting{codeside}[2][]{%
+        standard jigsaw,
+        enhanced,
+        breakable,
+        opacityback=0,
+        opacityframe=0,
+        fonttitle=\sffamily\bfseries,
+        listing only,
+        arc=1pt,
+        colback=codebackColor,
+        colframe=codeColor,
+        left=0pt,
+        right=0pt,
+        lefttitle=1.7mm,
+        width=\linewidth,
+        listing options={%
+                style=#2,
+                #1
+            }
+    }
+
+\else\ifneo at minted
+
+        %% Environment Definitions
+        %% ----------------------------------
+        \newcounter{mintcode}
+
+        % Define the minted style
+        \setminted{
+            style=vs,
+            fontsize=\small,
+            breaklines=true,
+            autogobble,
+            frame=none,
+            linenos=false,
+            tabsize=4,
+        }
+
+        % Code listing environment
+        \NewTCBListing[use counter=mintcode]{code}{ O{} m !O{} !O{} }{%
+            listing engine=minted,
+            minted language=#2,
+            listing only,
+            enhanced,
+            breakable,
+            minted options={#1},
+            code={%
+                    \IfEqCase{#4}{%
+                        {}{\tcbset{%
+                                    standard jigsaw,
+                                    opacityback=0,
+                                    opacityframe=0,
+                                    frame hidden,
+                                    boxrule=0pt,
+                                    left=0pt,
+                                    right=0pt,
+                                    top=0pt,
+                                    bottom=0pt,
+                                    title={},
+                                    notitle
+                                }}
+                            {box-minimal}{\tcbset{box-minimal}}
+                            {box-fancy}{\tcbset{box-fancy}}
+                            {box-classic}{\tcbset{box-classic}}
+                            {box-elegant}{\tcbset{box-elegant}}
+                            {box-diagonal}{\tcbset{box-diagonal}}
+                            {box-bevel}{\tcbset{box-bevel}}
+                            {box-corner}{\tcbset{box-corner}}
+                            {box-rounded}{\tcbset{box-rounded}}
+                            {box-downhill}{\tcbset{box-downhill}}
+                            {box-bottomtitle}{\tcbset{box-bottomtitle}}
+                            {box-bottomtitlef}{\tcbset{box-bottomtitlef}}
+                    }[\PackageError{code}{Style not found: #4}{}]
+                    \ifx\relax#3\relax\else
+                        \tcbset{title={\neo at codename~\themintcode~~\textemdash{}~~#3},\neoschool at boxtitle}
+                    \fi
+                }
+        }
+
+        % Inline code command
+        \newcommand{\codeinline}[2][text]{%
+            \mintinline[style=vs,fontsize=\small,breaklines,autogobble]{#1}{#2}
+        }
+
+        % Code input from file
+        \NewTCBInputListing{\codeinput}{ O{} m m !O{} !O{} }{%
+            listing engine=minted,
+            minted language={#2},
+            enhanced,
+            breakable,
+            listing file={#3},
+            listing only,
+            minted options={#1},
+            frame hidden,
+            colback=codebackColor,
+            boxrule=0pt,
+            code={%
+                    \IfEqCase{#5}{%
+                        {}{\tcbset{%
+                                    standard jigsaw,
+                                    opacityback=0,
+                                    opacityframe=0,
+                                    frame hidden,
+                                    boxrule=0pt,
+                                    left=0pt,
+                                    right=0pt,
+                                    top=0pt,
+                                    bottom=0pt,
+                                    title={},
+                                    notitle
+                                }}
+                            {box-minimal}{\tcbset{box-minimal}}
+                            {box-fancy}{\tcbset{box-fancy}}
+                            {box-classic}{\tcbset{box-classic}}
+                            {box-elegant}{\tcbset{box-elegant}}
+                            {box-diagonal}{\tcbset{box-diagonal}}
+                            {box-bevel}{\tcbset{box-bevel}}
+                            {box-corner}{\tcbset{box-corner}}
+                            {box-rounded}{\tcbset{box-rounded}}
+                            {box-downhill}{\tcbset{box-downhill}}
+                            {box-bottomtitle}{\tcbset{box-bottomtitle}}
+                            {box-bottomtitlef}{\tcbset{box-bottomtitlef}}
+                    }[\PackageError{code}{Style not found: #5}{}]
+                    \ifx\relax#4\relax\else
+                        \tcbset{title={\neo at codename~\themintcode~~\textemdash{}~~#4},\neoschool at boxtitle}
+                    \fi
+                }
+        }
+
+        % Side-by-Side Code Environment
+        \newtcblisting{codeside}[2][]{%
+            standard jigsaw,
+            listing engine=minted,
+            enhanced,
+            breakable,
+            opacityback=0,
+            opacityframe=0,
+            fonttitle=\sffamily\bfseries,
+            minted language=#2,
+            arc=1pt,
+            colback=codebackColor,
+            colframe=codeColor,
+            left=0pt,
+            right=0pt,
+            lefttitle=1.7mm,
+            width=\linewidth,
+            minted options={#1}
+        }
+
+    \fi
+\fi
+
+%% ==============================================================================
+%% Algorithm and Pseudocode Environments
+%% ==============================================================================
+
+%% Algorithm Keywords Translation
+%% ----------------------------------
+\algrenewcommand\algorithmicwhile{\textbf{tant que}}
+\algrenewcommand\algorithmicdo{\textbf{faire}}
+\algrenewcommand\algorithmicfor{\textbf{pour}}
+\algrenewcommand\algorithmicif{\textbf{si}}
+\algrenewcommand\algorithmicthen{\textbf{alors}}
+\algrenewcommand\algorithmicelse{\textbf{sinon}}
+\algrenewcommand\algorithmicend{\textbf{fin}}
+\algrenewcommand\algorithmicreturn{\textbf{retourner}}
+\algrenewcommand\algorithmicfunction{\textbf{fonction}}
+\algrenewcommand\algorithmicrequire{\textbf{entrée}}
+\algrenewcommand\algorithmicensure{\textbf{sortie}}
+\algrenewcommand\algorithmicprocedure{\textbf{procédure}}
+
+%% Additional Algorithm Commands
+%% ----------------------------------
+\newcommand{\To}{\textbf{ à }}
+\newcommand{\Gets}{\ensuremath{\leftarrow}}
+
+%% Pseudocode Box Style
+%% ----------------------------------
+\tcbset{%
+    pseudocode/.style={%
+            enhanced,
+            breakable,
+            colback=white,
+            colframe=\ifneo at unicolor\neoschool at headcolor\else\neoschool at headcolor!50\fi,
+            boxrule=0.5pt,
+            arc=0pt,
+            top=3mm,
+            bottom=3mm,
+            left=3mm,
+            right=3mm,
+            colbacktitle=white,
+            coltitle=black,
+            fonttitle=\sffamily\bfseries,
+            before upper={\begin{algorithmic}},
+                        after upper={\end{algorithmic}},
+            breakable
+        }
+}
+
+%% Pseudocode Environment
+%% ----------------------------------
+\newtcolorbox[use counter=lstcode]{pseudocode}[2][]{%
+    pseudocode,
+    title={\csname neo at algorithmname\endcsname~\thelstcode~~\textemdash{}~~#2},
+    #1
+}
+
+%% ==============================================================================
+%% Base Definitions and Styles for Theorems and Exercises
+%% ==============================================================================
+
+% Common Styles
+\tcbset{
+    common at base/.style={
+            enhanced,
+            breakable,
+            separator sign={},
+            before skip=\baselineskip,
+            after skip=\baselineskip,
+            colupper=\neo at tcbcolupper,
+            colframe=\neoschool at headcolor,
+            colbacklower=\neo at tcbcolbacklower
+        },
+    common at title@base/.style={
+            fonttitle={\normalshape\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname},
+        },
+}
+
+%% ==============================================================================
+%% Shared Box Styles for Theorems and Exercises
+%% ==============================================================================
+\ExplSyntaxOn
+\tl_new:N \l__custom_tcb_title_tl
+\tl_new:N \l__custom_tcb_label_tl
+\tl_new:N \l__custom_tcb_options_tl
+
+\newcommand{\getCustomSlantedTitle}{%
+    \tl_if_empty:NTF \l__custom_tcb_title_tl
+    {\,}
+    {\tl_use:N \enskip(\l__custom_tcb_title_tl)\;}
+}
+
+\newcommand{\getCustomBoxedTitle}{%
+    \tl_if_empty:NTF \l__custom_tcb_title_tl
+    {}
+    {\tl_use:N \,(\l__custom_tcb_title_tl)\,}
+}
+\ExplSyntaxOff
+
+\def\neo at getbackcolor{%
+    \ifneo at noback
+        white%
+    \else
+        \neo at tcbcolback%
+    \fi
+}
+
+\def\neo at getframestyle{%
+    \ifneo at noframe
+        frame hidden%
+    \else\fi
+}
+
+\tcbset{
+    neo at shared@base/.style args={#1}{%
+            common at base,
+            colframe=#1,
+            colback=\neo at getbackcolor,
+            boxrule=\neo at thmborder,
+            \neo at getframestyle
+        },
+    neo at shared@elegant/.style args={#1}{%
+            neo at shared@base={#1},
+            common at title@base,
+            skin=bicolor,
+            sharp corners,
+            detach title,
+            left=1em,
+            right=1em,
+            top=\neo at toppadding,
+            bottom=\neo at bottompadding,
+            borderline west={4pt}{0pt}{#1},
+            before upper={\tcbtitle\enskip}
+        },
+    neo at shared@shaded/.style 2 args={%
+            neo at shared@base={#1},
+            common at title@base,
+            left=\neo at leftpadding,
+            right=\neo at rightpadding,
+            after skip=\neo at afterskip,
+            before skip=\neo at beforeskip,
+            attach boxed title to top left,
+            boxed title style={
+                    empty,
+                    top=\neo at titletoppadding,
+                    left=\neo at titleleftpadding,
+                    right=\neo at titlerightpadding,
+                    bottom=\neo at titlebottompadding,
+                },
+            detach title,
+            underlay boxed title={%
+                    \path[draw=\csname neo at titledrawcolor@#2\endcsname,line width=1pt,
+                        rounded corners, fill=\neo at tcbcolback]
+                    ([xshift=.17mm]frame.west) |- ([xshift=-2.5mm]title.north east)
+                    to[out=0, in=180] ([xshift=7.5mm, yshift=-.18mm]title.south east);
+                }
+        },
+    neo at shared@slanted/.style args={#1}{%
+            neo at shared@base={#1},
+            common at title@base,
+            skin=bicolor,
+            separator sign={},
+            coltitle=white,
+            left=\neo at leftpadding,
+            right=\neo at rightpadding,
+            after skip=\neo at afterskip,
+            before skip=\neo at beforeskip,
+            detach title
+        },
+    neo at shared@sober/.style args={#1}{%
+            neo at shared@base={#1},
+            common at title@base,
+            skin=bicolor,
+            detach title,
+            left=1ex,
+            right=1ex,
+            separator sign={},
+            terminator sign=,
+        },
+    neo at shared@classic/.style args={#1}{%
+            neo at shared@base={#1},
+            common at title@base,
+            skin=bicolor,
+            coltitle=white,
+            colbacktitle=tcbcolframe,
+            boxrule=1pt,
+            toptitle=1mm,
+            bottomtitle=1mm,
+            left=1ex,
+            right=1ex,
+        },
+    neo at shared@classy/.style args={#1}{%
+            neo at shared@base={#1},
+            common at title@base,
+            skin=bicolor,
+            left=1ex,
+            right=1ex,
+            attach boxed title to top left={
+                    yshift*=-\tcboxedtitleheight
+                },
+            boxed title style={
+                    sharp corners,
+                    rounded corners=northwest,
+                    colback=tcbcolframe,
+                    boxrule=0pt
+                },
+            underlay boxed title={
+                    \path[fill=tcbcolframe]
+                    (title.south west)--(title.south east)
+                    to[out=0, in=180] ([xshift=5mm]title.east)--
+                    (title.center-|frame.east)
+                    [rounded corners=\kvtcb at arc] |-
+                    (frame.north) -| cycle;
+                }
+        },
+    neo at shared@boxed/.style 2 args={%
+            neo at box@base,
+            sharp corners,
+            \neo at framehidden,
+            coltitle=white,
+            colframe=#1,
+            colback=\neo at tcbcolback,
+            left=\neo at leftpadding,
+            right=\neo at rightpadding,
+            after skip=\neo at afterskip,
+            before skip=\neo at beforeskip,
+            detach title,
+            before upper*={%
+                    \tcbox[enhanced,
+                        colupper=white,
+                        colback=#1,                        fontupper=\normalshape\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname,
+                        size=small,
+                        baseline=3pt,
+                        top=0pt,
+                        bottom=0pt,
+                        left=0pt,
+                        right=0pt,
+                        nobeforeafter,
+                        frame code={%
+                                \path[fill=tcbcolback]
+                                (frame.north west) --
+                                (frame.north east) {[rounded corners=5pt]--
+                                    (frame.south east)} --
+                                (frame.south west) --
+                                cycle;
+                            }]%
+                    {#2~\thetcbcounter}%
+                }
+                {\normalshape\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\color{#1}\getCustomBoxedTitle}
+        }
+}
+
+%% ==============================================================================
+%% Custom Newtcbtheorem Implementation
+%% ==============================================================================
+
+\ExplSyntaxOn
+\NewDocumentCommand{\mynewtcbtheorem}{O{}mmmm}{%
+    \newtcbtheorem[#1]{#2inner}{#3}{#4}{#5}
+    \NewDocumentEnvironment{#2}{O{}}{%
+        \keys_set:nn { custom/tcb } { ##1 }
+        \tl_if_empty:NTF \l__custom_tcb_options_tl {%
+            \use:x {
+                \exp_not:N \begin{#2inner}
+                {\tl_if_empty:NTF \l__custom_tcb_title_tl
+                    { }
+                    { (\exp_not:V \l__custom_tcb_title_tl) }
+                }
+                {\exp_not:V \l__custom_tcb_label_tl}
+            }
+        }{%
+            \use:x {
+                \exp_not:N \begin{#2inner}
+                [\exp_not:V \l__custom_tcb_options_tl]
+                {\tl_if_empty:NTF \l__custom_tcb_title_tl
+                    { }
+                    { (\exp_not:V \l__custom_tcb_title_tl) }
+                }
+                {\exp_not:V \l__custom_tcb_label_tl}
+            }
+        }
+    }{%
+        \end{#2inner}
+    }
+
+    \NewDocumentEnvironment{#2*}{O{}}{%
+        \keys_set:nn { custom/tcb } { ##1 }
+        \tl_if_empty:NTF \l__custom_tcb_options_tl {%
+            \use:x {
+                \exp_not:N \begin{#2inner*}
+                {\tl_if_empty:NTF \l__custom_tcb_title_tl
+                    { }
+                    { (\exp_not:V \l__custom_tcb_title_tl) }
+                }
+                {}
+            }
+        }{%
+            \use:x {
+                \exp_not:N \begin{#2inner*}
+                [\exp_not:V \l__custom_tcb_options_tl]
+                {\tl_if_empty:NTF \l__custom_tcb_title_tl
+                    { }
+                    { (\exp_not:V \l__custom_tcb_title_tl) }
+                }
+                {}
+            }
+        }
+    }{%
+        \end{#2inner*}
+    }
+    \cs_if_exist:cF { c@#5} { \newcounter{#5} }
+}
+
+\keys_define:nn { custom/tcb } {
+    title .tl_set:N = \l__custom_tcb_title_tl,
+    label .tl_set:N = \l__custom_tcb_label_tl,
+    colback .code:n = \tl_put_right:Nx \l__custom_tcb_options_tl { colback=#1, },
+    colframe .code:n = \tl_put_right:Nx \l__custom_tcb_options_tl { colframe=#1, },
+    coltitle .code:n = \tl_put_right:Nx \l__custom_tcb_options_tl { coltitle=#1, },
+    fonttitle .code:n = \tl_put_right:Nx \l__custom_tcb_options_tl { fonttitle=#1, },
+    line~width .code:n = \tl_put_right:Nx \l__custom_tcb_options_tl { line~width=#1, },
+    frame~style .code:n = \tl_put_right:Nx \l__custom_tcb_options_tl { frame~style=#1, },
+    arc .code:n = \tl_put_right:Nx \l__custom_tcb_options_tl { arc=#1, },
+    frame~hidden .code:n = \tl_put_right:Nn \l__custom_tcb_options_tl { frame~hidden, },
+    sharp~corners .code:n = \tl_put_right:Nn \l__custom_tcb_options_tl { sharp~corners, },
+    rounded~corners .code:n = \tl_put_right:Nn \l__custom_tcb_options_tl { rounded~corners, },
+    unknown .code:n = \tl_put_right:Nx \l__custom_tcb_options_tl { #1, },
+}
+\ExplSyntaxOff
+
+% Title Content Formatters
+\NewDocumentCommand{\neo at theorem@title}{mm}{%
+    \csname\neoschool at headstyle\endcsname
+    \csname\neoschool at headweight\endcsname
+    \color{#1}#2~\thetcbcounter
+}
+
+\NewDocumentCommand{\neo at exercise@title}{}{%
+    \sffamily\GetExerciseName~\GetExerciseProperty{counter}%
+    \IfExercisePropertySetT{level}{%
+        \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+    }%
+    \IfExercisePropertySetT{subtitle}{\enskip\GetExerciseProperty{subtitle}}%
+    \IfExercisePropertySetT{points}{%
+        \enskip(\GetExerciseProperty{points}%
+        \IfExerciseGoalSingularTF{points}{\XSIMtranslate{point}}{\XSIMtranslate{points}})%
+    }%
+}
+
+\AtBeginDocument{%
+    \ifneo at french
+        \DeclareExerciseTranslation{french}{point}{point}
+        \DeclareExerciseTranslation{french}{points}{points}
+        \DeclareExerciseTranslation{french}{point-short}{pt}
+        \DeclareExerciseTranslation{french}{points-short}{pts}
+    \else\ifneo at german
+            \DeclareExerciseTranslation{german}{point}{Punkt}
+            \DeclareExerciseTranslation{german}{points}{Punkte}
+            \DeclareExerciseTranslation{german}{point-short}{Pkt}
+            \DeclareExerciseTranslation{german}{points-short}{Pkt}
+        \else
+            \DeclareExerciseTranslation{english}{point}{point}
+            \DeclareExerciseTranslation{english}{points}{points}
+            \DeclareExerciseTranslation{english}{point-short}{pt}
+            \DeclareExerciseTranslation{english}{points-short}{pts}
+        \fi\fi
+}
+
+%% ==============================================================================
+%% Theorem Types Implementation
+%% ==============================================================================
+
+\NewDocumentCommand{\neweleganttheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    neo at shared@elegant={#4},
+    coltitle=#4,
+    fontupper={#7},
+    before lower={#6},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newslantedtheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    neo at shared@slanted={#4},
+    before upper*={%
+            \hspace*{-1.5mm}
+            \tcbox[enhanced,
+                colupper=white,
+                colback=#4,
+                fontupper=\normalshape\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname,
+                size=small,
+                baseline=3pt,
+                left=0pt,
+                right=0pt,
+                bottom=0pt,
+                nobeforeafter,
+                frame code={%
+                        \path[fill=tcbcolback] (frame.north west)
+                        -- ([xshift=2mm]frame.north east)
+                        -- (frame.south east)
+                        -- (frame.south west)
+                        -- (frame.north west)
+                        [sharp corners]-- cycle;
+                    }]
+            {#3~\thetcbcounter}
+            {\normalshape\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\color{#4}\getCustomSlantedTitle}
+        },
+    fontupper={#7},
+    before lower={#6},
+    #8,
+}{#5}
+}
+
+\NewDocumentCommand{\newshadedtheorem}{O{}mmmmmmO{}}{%
+\expandafter\def\csname neo at titledrawcolor@#2\endcsname{#4}
+\ifneo at noframe\expandafter\def\csname neo at titledrawcolor@#2\endcsname{white}\fi
+\mynewtcbtheorem[#1]{#2}{\vspace*{0.35em}#3}{%
+    neo at shared@shaded={#4}{#2},
+    coltitle=#4,
+    fontupper={#7},
+    before lower={#6},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newsobertheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    neo at shared@sober={#4},
+    before upper={\tcbtitle\enskip},
+    coltitle=#4,
+    fontupper={#7},
+    before lower={#6},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newclassictheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    neo at shared@classic={#4},
+    title={#3},
+    fontupper={#7},
+    before lower={#6},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newclassytheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    neo at shared@classy={#4},
+    title={#3},
+    fontupper={#7},
+    before lower={#6},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newboxedtheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    neo at shared@boxed={#4}{#3},
+    fontupper={#7},
+    before lower={#6},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newamstheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    enhanced,
+    breakable,
+    frame hidden,
+    colback=white,
+    coltitle={#4},
+    left=0pt, right=0pt,
+    top=0pt, bottom=0pt,
+    boxsep=0pt,
+    detach title,
+    separator sign={},
+    before upper={\tcbtitle\enskip},
+    before skip=\baselineskip,
+    after skip=\baselineskip,
+    fontupper={#7},
+    fonttitle={\normalshape\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname},
+    before lower={#6},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newamsremarktheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    enhanced,
+    breakable,
+    frame hidden,
+    colback=white,
+    coltitle={#4},
+    left=0pt, right=0pt,
+    top=0pt, bottom=0pt,
+    boxsep=0pt,
+    detach title,
+    before upper={{\color{remarkColor}\csname\neoschool at headweight\endcsname\itshape\csname\neoschool at headstyle\endcsname\csname\neoschool at headshape\endcsname #3\enskip\textemdash}\enskip},
+    before skip=.5\baselineskip,
+    after skip=.5\baselineskip,
+    fontupper={#7},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newamsremarkstheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    enhanced,
+    breakable,
+    frame hidden,
+    colback=white,
+    coltitle={#4},
+    left=0pt, right=0pt,
+    top=0pt, bottom=0pt,
+    boxsep=0pt,
+    detach title,
+    before upper={{\color{remarkColor}\csname\neoschool at headweight\endcsname\itshape\csname\neoschool at headstyle\endcsname\csname\neoschool at headshape\endcsname #3}\enskip},
+    before skip=.5\baselineskip,
+    after skip=.5\baselineskip,
+    fontupper={#7},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newamsexampletheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    enhanced,
+    breakable,
+    frame hidden,
+    colback=white,
+    coltitle={#4},
+    left=0pt, right=0pt,
+    top=0pt, bottom=0pt,
+    boxsep=0pt,
+    detach title,
+    separator sign={},
+    before upper={\tcbtitle\enskip},
+    before skip=.5\baselineskip,
+    after skip=.5\baselineskip,
+    fontupper={#7},
+    fonttitle={\normalshape\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname},
+    before lower={#6},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\newamsexamplestheorem}{O{}mmmmmmO{}}{%
+\mynewtcbtheorem[#1]{#2}{#3}{%
+    enhanced,
+    breakable,
+    frame hidden,
+    colback=white,
+    coltitle={#4},
+    left=0pt, right=0pt,
+    top=0pt, bottom=0pt,
+    boxsep=0pt,
+    detach title,
+    before upper={{\color{exampleColor}\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname #3}\enskip},
+    before skip=.5\baselineskip,
+    after skip=.5\baselineskip,
+    fontupper={#7},
+    #8
+}{#5}
+}
+
+\NewDocumentCommand{\neo at declarespecialtheorem}{m m}{%
+    \ifstrequal{#1}{remark}{%
+        \newamsremarktheorem{#1}{\csname neo@#1name\endcsname}{#2}{#1}{}{\normalfont}
+    }{%
+        \ifstrequal{#1}{remarks}{%
+            \newamsremarkstheorem{#1}{\csname neo@#1name\endcsname}{#2}{#1}{}{\normalfont}
+        }{%
+            \ifstrequal{#1}{examples}{%
+                \newamsexamplestheorem{#1}{\csname neo@#1name\endcsname}{#2}{#1}{}{\normalfont}
+            }{%
+                \ifneoschool at sectionthmcounter
+                    \ifneoschool at sharedthmcounter
+                        \newamsexampletheorem[number within=section, use counter = thmcounter]{#1}{\csname neo@#1name\endcsname}{#2}{#1}{}{\normalfont}
+                    \else
+                        \newamsexampletheorem[number within=section]{#1}{\csname neo@#1name\endcsname}{#2}{#1}{}{\normalfont}
+                    \fi
+                \else
+                    \ifneoschool at sharedthmcounter
+                        \newamsexampletheorem[use counter = thmcounter]{#1}{\csname neo@#1name\endcsname}{#2}{#1}{}{\normalfont}
+                    \else
+                        \newamsexampletheorem{#1}{\csname neo@#1name\endcsname}{#2}{#1}{}{\normalfont}
+                    \fi
+                \fi
+            }%
+        }%
+    }%
+}
+
+\neo at declarespecialtheorem{remark}{remarkColor}
+\neo at declarespecialtheorem{remarks}{remarkColor}
+\neo at declarespecialtheorem{example}{exampleColor}
+\neo at declarespecialtheorem{examples}{exampleColor}
+
+%% ==============================================================================
+%% Theorem Declaration Command
+%% ==============================================================================
+
+\NewDocumentCommand{\neo at declaretheorem}{O{}mmmmmmO{}}{%
+% #1 = additional options
+% #2 = environment name (theorem, definition, etc.)
+% #3 = title (\neo at theoremname, etc.)
+% #4 = color
+% #5 = reference name (thm, def, etc.)
+% #6 = text before proof
+% #7 = text style (\itshape or not)
+% #8 = additional options
+
+% Handle options
+\def\neo at thmoptions{#1}
+
+% Section numbering
+\ifneoschool at sectionthmcounter
+    \edef\neo at thmoptions{number within=section,\neo at thmoptions}
+\fi
+
+% Counter handling
+\ifneoschool at sharedthmcounter
+    \edef\neo at thmoptions{use counter=thmcounter,\neo at thmoptions}
+\else
+    \ifneoschool at thmgroupcounter
+        \ifboolexpr{
+            test {\ifstrequal{#2}{theorem}} or
+            test {\ifstrequal{#2}{lemma}} or
+            test {\ifstrequal{#2}{proposition}} or
+            test {\ifstrequal{#2}{corollary}} or
+            test {\ifstrequal{#2}{property}}
+        }{%
+            \edef\neo at thmoptions{use counter=thmcounter,\neo at thmoptions}
+        }{%
+            \edef\neo at thmoptions{\neo at thmoptions}
+        }
+    \else
+        \edef\neo at thmoptions{\neo at thmoptions}
+    \fi
+\fi
+
+% Style selection based on class options
+\ifneo at slantedthm
+    \expandafter\newslantedtheorem\expandafter[\neo at thmoptions]{#2}{#3}{#4}{#5}{#6}{#7}[#8]%
+\else
+    \ifneo at soberthm
+        \expandafter\newsobertheorem\expandafter[\neo at thmoptions]{#2}{#3}{#4}{#5}{#6}{#7}[#8]%
+    \else
+        \ifneo at elegantthm
+            \expandafter\neweleganttheorem\expandafter[\neo at thmoptions]{#2}{#3}{#4}{#5}{#6}{#7}[#8]%
+        \else
+            \ifneo at shadedthm
+                \expandafter\newshadedtheorem\expandafter[\neo at thmoptions]{#2}{#3}{#4}{#5}{#6}{#7}[#8]%
+            \else
+                \ifneo at classicthm
+                    \expandafter\newclassictheorem\expandafter[\neo at thmoptions]{#2}{#3}{#4}{#5}{#6}{#7}[#8]%
+                \else
+                    \ifneo at classythm
+                        \expandafter\newclassytheorem\expandafter[\neo at thmoptions]{#2}{#3}{#4}{#5}{#6}{#7}[#8]%
+                    \else
+                        \ifneo at boxedthm
+                            \expandafter\newboxedtheorem\expandafter[\neo at thmoptions]{#2}{#3}{#4}{#5}{#6}{#7}[#8]%
+                        \else
+                            \ifneo at amslikethm
+                                \expandafter\newamstheorem\expandafter[\neo at thmoptions]{#2}{#3}{#4}{#5}{#6}{#7}[#8]%
+                            \fi
+                        \fi
+                    \fi
+                \fi
+            \fi
+        \fi
+    \fi
+\fi
+}
+
+%% ==============================================================================
+%% Theorem Environment Declarations
+%% ==============================================================================
+
+\newcounter{thmcounter}
+
+% Standard theorems
+\neo at declaretheorem{theorem}{\neo at theoremname}{theoremColor}{thm}{}{\itshape\color{\neoschool at globalcolor}}
+\neo at declaretheorem{definition}{\neo at definitionname}{definitionColor}{def}{}{\color{\neoschool at globalcolor}}
+\neo at declaretheorem{lemma}{\neo at lemmaname}{lemmaColor}{lem}{}{\itshape\color{\neoschool at globalcolor}}
+\neo at declaretheorem{proposition}{\neo at propositionname}{propositionColor}{propo}{}{\itshape\color{\neoschool at globalcolor}}
+\neo at declaretheorem{corollary}{\neo at corollaryname}{corollaryColor}{cor}{}{\itshape\color{\neoschool at globalcolor}}
+\neo at declaretheorem{conjecture}{\neo at conjecturename}{\neo at conjecturecolor}{conj}{}{\itshape\color{\neoschool at globalcolor}}
+\neo at declaretheorem{property}{\neo at propertyname}{propertyColor}{prop}{}{\itshape\color{\neoschool at globalcolor}}
+
+% Activity-related theorems
+\neo at declaretheorem{activity}{\neo at activityname}{activityColor}{act}{}{\color{\neoschool at globalcolor}}
+\neo at declaretheorem{method}{\neo at methodname}{methodColor}{meth}{}{\color{\neoschool at globalcolor}}
+\neo at declaretheorem{application}{\neo at applicationname}{applicationColor}{appl}{}{\color{\neoschool at globalcolor}}
+
+%% ==============================================================================
+%% Exercise Common Elements
+%% ==============================================================================
+
+% QCM Environment Setup
+\DeclareExerciseEnvironmentTemplate{item}
+{\description\item[\GetExerciseProperty{counter}]}
+{\enddescription}
+
+% Multiple Choice Elements
+\DeclareRobustCommand{\neocolorcirc}[2]{%
+    \begin{tikzpicture}[baseline=-1.25mm]
+        \draw[#1,fill=#2] (0.5,0) circle (.75ex);
+    \end{tikzpicture}
+}
+
+\newcommand{\neocheckbox}{$\square$}
+\newcommand{\neochecksol}{$\blacksquare$}
+\newcommand{\neocheckcirc}{\neocolorcirc{black}{white}}
+
+% Task Environments
+\NewTasksEnvironment[%
+    label = \neocheckcirc,
+    label-width = 12pt,
+    item-indent = 3.5em,
+]{choices}[\choice]
+
+\NewTasksEnvironment[%
+    label = \neocheckbox,
+    label-width = 12pt,
+    item-indent = 3.5em,
+]{checkboxes}[\checkbox]
+
+% Shuffle Implementation for Tasks
+\ifneo at shuffle
+    \ExplSyntaxOn
+    \cs_set_protected:Npn \tasks_environment:nnnn #1#2#3#4
+    {
+        \bool_if:NT \l__tasks_debug_bool { \dim_set:Nn \fboxsep {0pt} }
+        \seq_set_split:Nnn \l__tasks_seq {#3} {#4}
+        \seq_pop_left:NN \l__tasks_seq \l__tasks_tmpa_tl
+        \seq_shuffle:N \l__tasks_seq
+        \tl_if_blank:VF \l__tasks_tmpa_tl
+        { \msg_warning:nnVn {tasks}{no-item} \l__tasks_tmpa_tl {#3} }
+        \int_gset:Nn \g__tasks_total_items_int
+        { \seq_count:N \l__tasks_seq }
+        \UseInstance {tasks} {#1}
+        { \g__tasks_total_items_int }
+        {#2}
+        { }
+        \seq_clear:N \l__tasks_seq
+    }
+    \ExplSyntaxOff
+\fi
+
+% Correct Answer Command
+\NewDocumentCommand{\correct}{s}{%
+    \IfBooleanTF#1
+    {\ifneoschool at answers\neochecksol\else\neocheckbox\fi}
+    {\ifneoschool at answers\neocolorcirc{black}{black}\else\neocheckcirc\fi}%
+}
+
+%% ==============================================================================
+%% Exercise Base Box Styles
+%% ==============================================================================
+
+% Base box style
+\tcbset{%
+    neo at base/.style={%
+            enhanced,
+            breakable,
+            fontupper=\color{\neoschool at globalcolor},
+            before skip=\baselineskip,
+            after skip=\baselineskip,
+            colupper=\neo at tcbcolupper,
+            colframe=\neoschool at headcolor,
+            colbacklower=\neo at tcbcolbacklower
+        },
+    % Title base style
+    neo at title@base/.style={%
+            title={\sffamily\GetExerciseName~\GetExerciseProperty{counter}
+                    \IfExercisePropertySetT{level}
+                    {\enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}
+                    \IfExercisePropertySetT{subtitle}{ \GetExerciseProperty{subtitle}}
+                    \IfExercisePropertySetT{points}{%
+                        \enskip(%
+                        \GetExerciseProperty{points}
+                        \IfExerciseGoalSingularTF{points}
+                        {~\XSIMtranslate{point}}
+                        {~\XSIMtranslate{points}}
+                        )
+                    }
+                }
+        }
+}
+
+%% Box Appearance Styles
+\tcbset{%
+    % Basic box style
+    neo at box@base/.style={%
+            enhanced,
+            breakable,
+            fontupper=\color{\neoschool at globalcolor},
+            colupper=\neo at tcbcolupper,
+            colframe=\neoschool at headcolor,
+            colbacklower=\neo at tcbcolbacklower,
+            before skip=\baselineskip,
+            after skip=\baselineskip,
+            left=1mm,
+            right=1mm
+        },
+    % Basic title style
+    neo at title@basic/.style={%
+            title={\neo at boxtitle@content},
+            fonttitle=\bfseries\sffamily
+        },
+    % Colored title style
+    neo at title@colored/.style={%
+            neo at title@basic,
+            coltitle=white,
+            colbacktitle=tcbcolframe
+        },
+    % Basic frame style
+    neo at frame@basic/.style={%
+            colframe=exerciseColor,
+            colback=\neo at tcbcolback
+        },
+    % Hidden frame style
+    neo at frame@hidden/.style={%
+            frame hidden,
+            colframe=exerciseColor!12,
+            colback=white
+        }
+}
+
+%% Corner Styles
+\tcbset{%
+    % Sharp corners
+    neo at corners@sharp/.style={%
+            sharp corners
+        },
+    % Rounded corners
+    neo at corners@rounded/.style={%
+            rounded corners,
+            arc=\neoschool at boxarc
+        }
+}
+
+%% Background Styles
+\tcbset{%
+    % Light background
+    neo at bg@light/.style={%
+            colback=white,
+            colbacktitle=exerciseColor!12
+        },
+    % Shaded background
+    neo at bg@shaded/.style={%
+            colback=exerciseColor!5!white,
+            colbacktitle=exerciseColor!12
+        },
+    % Gradient background
+    neo at bg@gradient/.style={%
+            interior style={%
+                    top color=white,
+                    bottom color=exerciseColor!5!white
+                }
+        }
+}
+
+%% Title Position Styles
+\tcbset{%
+    % Attached title
+    neo at title@attached/.style={%
+            attach boxed title to top left={
+                    yshift*=-\tcboxedtitleheight
+                },
+            boxed title style={%
+                    sharp corners,
+                    rounded corners=northwest,
+                    colback=tcbcolframe,
+                    boxrule=0pt
+                }
+        },
+    % Detached title
+    neo at title@detached/.style={%
+            detach title,
+            before upper={\tcbtitle\enskip}
+        }
+}
+
+%% Special Elements
+\tcbset{%
+    % Left rule
+    neo at rule@left/.style={%
+            leftrule=3mm
+        },
+    % Basic border
+    neo at border@basic/.style={%
+            boxrule=0.5pt
+        },
+    % Colored border
+    neo at border@colored/.style 2 args={%
+            borderline west={#1}{#2}{tcbcolframe}
+        },
+    % Shadow effect
+    neo at effect@shadow/.style={%
+            drop fuzzy shadow
+        }
+}
+
+%% Color Schemes
+\tcbset{%
+    % Standard color scheme
+    neo at colors@standard/.style={%
+            colframe=exerciseColor,
+            colback=white,
+            colbacktitle=exerciseColor
+        }
+}
+
+%% Solution Style Setup
+\NewDocumentCommand\neo at box@solution{}{%
+    {\csname\neoschool at headstyle\endcsname
+            \csname\neoschool at headweight\endcsname
+            \color{tcbcolframe}\neo at solutionname~\neo at solutiongaptext}\enskip
+}
+
+\tcbset{%
+    neo at solution@basic/.style={%
+            before lower={\neo at box@solution}
+        }
+}
+
+%% Box Title Content
+\newcommand{\neo at boxtitle@content}{%
+    \sffamily\GetExerciseName~\GetExerciseProperty{counter}
+    \IfExercisePropertySetT{level}{%
+        \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]
+    }
+    \IfExercisePropertySetT{subtitle}{ \GetExerciseProperty{subtitle}}\enskip
+    \IfExercisePropertySetT{points}{%
+        (\GetExerciseProperty{points}
+        \IfExerciseGoalSingularTF{points}
+        {~\XSIMtranslate{point}}
+        {~\XSIMtranslate{points}})
+    }
+}
+
+%% Exercise Properties and Tagging
+\ExplSyntaxOn
+\newcommand*\neo at replicate{\prg_replicate:nn}
+\ExplSyntaxOff
+
+\DeclareExerciseTagging{level}
+\DeclareExerciseTagging{grade}
+\DeclareExerciseTagging{topic}
+\DeclareExerciseTagging{subject}
+
+%% ==============================================================================
+%% Basic Exercise Box Templates
+%% ==============================================================================
+
+\DeclareExerciseProperty{icon}
+
+\newcommand{\neo at exerciseicon}{%
+    \ifneo at exerciseicons
+        \IfExercisePropertySetTF{icon}{%
+            \faIcon{\GetExerciseProperty{icon}}\hspace{5pt}%
+        }{%
+            \faIcon{book}\hspace{5pt}%
+        }%
+    \fi
+}
+
+% Standard Box Template
+\DeclareExerciseEnvironmentTemplate{box}{%
+    \begin{tcolorbox}[%
+            neo at box@base,
+            skin=bicolor,
+            neo at frame@basic,
+            neo at corners@sharp,
+            neo at rule@left,
+            neo at title@basic
+        ]
+        {%
+            \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\color{exerciseColor}
+            {\small\neo at exerciseicon}\enskip
+            \MakeUppercase{%
+                \XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}
+                \IfExercisePropertySetT{level}{%
+                    \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]
+                }
+            }
+            \GetExercisePropertyT{subtitle}{\;(\textit{#1})}
+            {\color{exerciseColor}
+                \IfExercisePropertySetT{points}{\enskip%
+                    \GetExerciseProperty{points}
+                    \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]\;}
+                    \IfExerciseGoalSingularTF{points}
+                    {~\XSIMtranslate{point}}
+                    {~\XSIMtranslate{points}}
+                    \enskip\enskip\textemdash{}
+                }
+            }
+        }
+        \enskip
+        }{\end{tcolorbox}}
+
+% No Frame Box Template
+\DeclareExerciseEnvironmentTemplate{noframe-box}{%
+    \begin{tcolorbox}[%
+            neo at box@base,
+            neo at frame@hidden,
+            neo at title@basic
+        ]
+        }{\end{tcolorbox}}
+
+%% ==============================================================================
+%% Advanced Box Templates
+%% ==============================================================================
+
+% Elegant Box Template
+\DeclareExerciseEnvironmentTemplate{elegant-box}{%
+    \begin{tcolorbox}[
+            neo at shared@elegant={exerciseColor},
+            title={%
+                    \csname\neoschool at headstyle\endcsname
+                    \csname\neoschool at headweight\endcsname
+                    \color{exerciseColor}
+                    {\small\neo at exerciseicon}%
+                    \XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}%
+                    \IfExercisePropertySetT{level}{%
+                        \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+                    }%
+                    \IfExercisePropertySetT{subtitle}{{\itshape\enskip\GetExerciseProperty{subtitle}}}%
+                    \IfExercisePropertySetT{points}{%
+                        \enskip(\GetExerciseProperty{points}%
+                        \IfExerciseGoalSingularTF{points}{~\XSIMtranslate{point}}{~\XSIMtranslate{points}})%
+                    }%
+                }
+        ]
+        }{\end{tcolorbox}}
+
+% Shaded Box Template
+\DeclareExerciseEnvironmentTemplate{shaded-box}{%
+    \expandafter\def\csname neo at titledrawcolor@exercise\endcsname{exerciseColor}
+    \ifneo at noframe
+        \expandafter\def\csname neo at titledrawcolor@exercise\endcsname{white}
+    \fi
+    \begin{tcolorbox}[
+            neo at shared@shaded={exerciseColor}{exercise},
+            left=0.65em,
+            right=0.65em,
+            coltitle=exerciseColor,
+            title={%
+                    \vspace*{0.35em}%
+                    \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\color{exerciseColor}%
+                    {\small\neo at exerciseicon}%
+                    \XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}%
+                    \IfExercisePropertySetT{level}{%
+                        \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+                    }%
+                    \IfExercisePropertySetT{subtitle}{{\itshape\enskip\GetExerciseProperty{subtitle}}}%
+                    \IfExercisePropertySetT{points}{%
+                        \enskip(\GetExerciseProperty{points}%
+                        \IfExerciseGoalSingularTF{points}{~\XSIMtranslate{point}}{~\XSIMtranslate{points}})%
+                    }%
+                }
+        ]
+        }{\end{tcolorbox}}
+
+% Slanted Box Template
+\DeclareExerciseEnvironmentTemplate{slanted-box}{%
+    \begin{tcolorbox}[
+        neo at shared@slanted={exerciseColor},
+        before upper*={%
+                \hspace*{-1.5mm}
+                \tcbox[enhanced,
+                    colupper=white,
+                    colback=exerciseColor,
+                    fontupper=\upshape\bfseries,
+                    size=small,
+                    baseline=3pt,
+                    after skip=1em,
+                    top=0pt,
+                    left=0pt,
+                    right=0pt,
+                    bottom=0pt,
+                    nobeforeafter,
+                    frame code={%
+                            \path[fill=tcbcolback] (frame.north west)
+                            -- ([xshift=2mm]frame.north east)
+                            -- (frame.south east)
+                            -- (frame.south west)
+                            -- (frame.north west)
+                            [sharp corners]-- cycle;
+                        }
+                ]{\csname\neoschool at headstyle\endcsname
+                    \csname\neoschool at headweight\endcsname
+                    \csname\neoschool at headshape\endcsname
+                    {\small\neo at exerciseicon}%
+                    \XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}%
+                }
+            }
+        ]
+        {\csname\neoschool at headstyle\endcsname
+        \csname\neoschool at headweight\endcsname
+        \csname\neoschool at headshape\endcsname
+        \color{exerciseColor}
+        \IfExercisePropertySetT{level}{%
+        \;[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+        }%
+        \IfExercisePropertySetT{subtitle}{{\enskip\GetExerciseProperty{subtitle}}}%
+        \IfExercisePropertySetT{points}{%
+            \enskip(\GetExerciseProperty{points}%
+            \IfExerciseGoalSingularTF{points}{~\XSIMtranslate{point}}{~\XSIMtranslate{points}})%
+        }%
+        }\;%
+        }{\end{tcolorbox}}
+
+% Sober Box Template
+\DeclareExerciseEnvironmentTemplate{sober-box}{%
+    \begin{tcolorbox}[
+            neo at shared@sober={exerciseColor},
+            before upper={\tcbtitle\enskip},
+            coltitle=exerciseColor,
+            title={%
+                    \csname\neoschool at headstyle\endcsname
+                    \csname\neoschool at headweight\endcsname
+                    {\small\neo at exerciseicon}%
+                    \XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}%
+                    \IfExercisePropertySetT{level}{%
+                        \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+                    }%
+                    \IfExercisePropertySetT{subtitle}{{\itshape\enskip\GetExerciseProperty{subtitle}}}%
+                    \IfExercisePropertySetT{points}{%
+                        \enskip(\GetExerciseProperty{points}%
+                        \IfExerciseGoalSingularTF{points}{~\XSIMtranslate{point}}{~\XSIMtranslate{points}})%
+                    }%
+                }
+        ]
+        }{\end{tcolorbox}}
+
+% Classic Box Template
+\DeclareExerciseEnvironmentTemplate{classic-box}{%
+    \begin{tcolorbox}[
+            neo at shared@classic={exerciseColor},
+            title={%
+                    \csname\neoschool at headstyle\endcsname
+                    \csname\neoschool at headweight\endcsname
+                    \color{white}
+                    {\small\neo at exerciseicon}%
+                    \XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}%
+                    \IfExercisePropertySetT{level}{%
+                        \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+                    }%
+                    \IfExercisePropertySetT{subtitle}{{\itshape\enskip\GetExerciseProperty{subtitle}}}%
+                    \IfExercisePropertySetT{points}{%
+                        \enskip(\GetExerciseProperty{points}%
+                        \IfExerciseGoalSingularTF{points}{~\XSIMtranslate{point}}{~\XSIMtranslate{points}})%
+                    }%
+                }
+        ]
+        }{\end{tcolorbox}}
+
+% Classy Box Template
+\DeclareExerciseEnvironmentTemplate{classy-box}{%
+    \begin{tcolorbox}[
+            neo at shared@classy={exerciseColor},
+            title={%
+                    \csname\neoschool at headstyle\endcsname
+                    \csname\neoschool at headweight\endcsname
+                    \color{white}
+                    {\small\neo at exerciseicon}%
+                    \XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}%
+                    \IfExercisePropertySetT{level}{%
+                        \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+                    }%
+                    \IfExercisePropertySetT{subtitle}{{\itshape\enskip\GetExerciseProperty{subtitle}}}%
+                    \IfExercisePropertySetT{points}{%
+                        \enskip(\GetExerciseProperty{points}%
+                        \IfExerciseGoalSingularTF{points}{~\XSIMtranslate{point}}{~\XSIMtranslate{points}})%
+                    }%
+                }
+        ]
+        }{\end{tcolorbox}}
+
+% Rect and Num box Templates
+\DeclareExerciseEnvironmentTemplate{rect-box}{%
+    \begin{tcolorbox}[
+        enhanced,
+        skin=bicolor,
+        sharp corners,
+        \neo at framehidden,
+        coltitle=white,
+        colframe=exerciseColor,
+        colback=\neo at tcbcolback,
+        colupper=\neoschool at globalcolor,
+        fonttitle=\csname\neoschool at headweight\endcsname,
+        fontupper=\color{\neoschool at globalcolor},
+        left=\neo at leftpadding,
+        right=\neo at rightpadding,
+        after skip=\neo at afterskip,
+        before skip=\neo at beforeskip,
+        before upper*={%
+                \tcbox[enhanced,
+                    colupper=white,
+                    colback=exerciseColor,
+                    fontupper=\csname\neoschool at headweight\endcsname,
+                    size=small,
+                    baseline=3pt,
+                    top=0pt,
+                    bottom=0pt,
+                    left=0pt,
+                    right=0pt,
+                    nobeforeafter,
+                    frame code={%
+                            \path[fill=tcbcolback]
+                            (frame.north west) --
+                            (frame.north east) {[rounded corners=5pt]--
+                                (frame.south east)} --
+                            (frame.south west) --
+                            cycle;
+                        }]%
+                {%
+                    \csname\neoschool at headstyle\endcsname
+                    \csname\neoschool at headweight\endcsname
+                    \csname\neoschool at headshape\endcsname
+                    {\small\neo at exerciseicon}%
+                    \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}%
+                }%
+            }
+        ]%
+        {
+        \csname\neoschool at headstyle\endcsname
+        \csname\neoschool at headweight\endcsname
+        \csname\neoschool at headshape\endcsname
+        \color{exerciseColor}
+        \IfExercisePropertySetT{level}
+        {\;[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+        \IfExercisePropertySetT{subtitle}{{\enskip\GetExerciseProperty{subtitle}}}%
+        \IfExercisePropertySetT{points}{%
+            \enskip(\GetExerciseProperty{points}%
+            \IfExerciseGoalSingularTF{points}{\,point}{\,points})\;%
+        }%
+        }
+        \!%
+        }{\end{tcolorbox}}
+
+\DeclareExerciseEnvironmentTemplate{rect-box-outlined}{%
+    \begin{tcolorbox}[
+            enhanced,
+            skin=bicolor,
+            sharp corners,
+            \neo at framehidden,
+            coltitle=exerciseColor,
+            colframe=exerciseColor,
+            colback=white,
+            colupper=\neoschool at globalcolor,
+            fonttitle=\csname\neoschool at headweight\endcsname,
+            fontupper=\color{\neoschool at globalcolor},
+            left=\neo at leftpadding,
+            right=\neo at rightpadding,
+            after skip=\neo at afterskip,
+            before skip=\neo at beforeskip,
+            before upper*={%
+                    \tcbox[enhanced,
+                        colupper=exerciseColor,
+                        colback=white,
+                        colframe=exerciseColor,
+                        fontupper=\csname\neoschool at headweight\endcsname,
+                        size=small,
+                        baseline=3pt,
+                        top=0pt,
+                        bottom=0pt,
+                        left=1pt,
+                        right=1pt,
+                        nobeforeafter,
+                    ]%
+                    {%
+                        \csname\neoschool at headstyle\endcsname
+                        \csname\neoschool at headweight\endcsname
+                        \csname\neoschool at headshape\endcsname
+                        {\small\neo at exerciseicon}%
+                        \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}%
+                    }%
+                }
+        ]%
+        {  \csname\neoschool at headstyle\endcsname
+            \csname\neoschool at headweight\endcsname
+            \csname\neoschool at headshape\endcsname
+            \color{exerciseColor}
+            \IfExercisePropertySetT{level}
+            {\enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+            \IfExercisePropertySetT{subtitle}{{\enskip\GetExerciseProperty{subtitle}}}%
+            \IfExercisePropertySetT{points}{%
+                \enskip(\GetExerciseProperty{points}%
+                \IfExerciseGoalSingularTF{points}{\,point-short}{\,points-short})%
+            }%
+        }\enskip
+        }{\end{tcolorbox}}
+
+\DeclareExerciseEnvironmentTemplate{num-box}{%
+    \begin{tcolorbox}[
+            enhanced,
+            skin=bicolor,
+            sharp corners,
+            before skip=-.25\baselineskip,
+            after skip=-.25\baselineskip,
+            frame hidden,
+            colframe=\neoschool at headcolor,
+            colback=white,
+            colupper=\neoschool at globalcolor,
+            fontupper=\color{\neoschool at globalcolor},
+            enlarge left by=-.5\leftmargin,
+            enlarge right by=-.5\rightmargin,
+            width=\textwidth+\leftmargin+\rightmargin,
+            before upper*={%
+                    \tcbox[enhanced,
+                        colupper=white,
+                        colback=\neoschool at headcolor,
+                        fontupper=\csname\neoschool at headweight\endcsname,
+                        size=small,
+                        baseline=4pt,
+                        top=1pt,
+                        bottom=1pt,
+                        left=1pt,
+                        right=1pt,
+                        nobeforeafter,
+                        frame code={%
+                                \path[fill=tcbcolback] (frame.north west) -- (frame.north east)
+                                -- (frame.south east) -- (frame.south west) -- cycle;
+                            }]%
+                    {%
+                        \csname\neoschool at headstyle\endcsname
+                        \csname\neoschool at headweight\endcsname
+                        {\small\neo at exerciseicon}%
+                        \GetExerciseProperty{counter}%
+                    }%
+                }
+        ]%
+        {\csname\neoschool at headstyle\endcsname
+            \csname\neoschool at headweight\endcsname
+            \color{exerciseColor}
+            \IfExercisePropertySetT{level}
+            {\enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+            \IfExercisePropertySetT{subtitle}{{\itshape\enskip\GetExerciseProperty{subtitle}}}%
+            \IfExercisePropertySetT{points}{%
+                \;(\GetExerciseProperty{points}%
+                \IfExerciseGoalSingularTF{points}{\,point-short}{\,points-short})%
+            }%
+        }%
+        \enskip
+        }{\end{tcolorbox}}
+
+\DeclareExerciseEnvironmentTemplate{num-box-outlined}{%
+    \begin{tcolorbox}[
+            enhanced,
+            skin=bicolor,
+            sharp corners,
+            before skip=-.25\baselineskip,
+            after skip=-.25\baselineskip,
+            colframe=exerciseColor,
+            colback=white,
+            colupper=\neoschool at globalcolor,
+            fontupper=\color{\neoschool at globalcolor},
+            enlarge left by=-.5\leftmargin,
+            enlarge right by=-.5\rightmargin,
+            width=\textwidth+\leftmargin+\rightmargin,
+            before upper*={%
+                    \tcbox[enhanced,
+                        colupper=exerciseColor,
+                        colback=white,
+                        colframe=exerciseColor,
+                        fontupper=\csname\neoschool at headweight\endcsname,
+                        size=small,
+                        baseline=4pt,
+                        top=1pt,
+                        bottom=1pt,
+                        left=1pt,
+                        right=1pt,
+                        nobeforeafter,
+                    ]%
+                    {%
+                        \csname\neoschool at headstyle\endcsname
+                        \csname\neoschool at headweight\endcsname
+                        {\small\neo at exerciseicon}%
+                        \GetExerciseProperty{counter}%
+                    }%
+                }
+        ]%
+        {\csname\neoschool at headstyle\endcsname
+            \csname\neoschool at headweight\endcsname
+            \color{exerciseColor}
+            \IfExercisePropertySetT{level}
+            {\enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+            \IfExercisePropertySetT{subtitle}{{\itshape\enskip\GetExerciseProperty{subtitle}}}%
+            \IfExercisePropertySetT{points}{%
+                \;(\GetExerciseProperty{points}%
+                \IfExerciseGoalSingularTF{points}{\,point-short}{\,points-short})%
+            }%
+        }%
+        \enskip
+        }{\end{tcolorbox}}
+
+\DeclareExerciseEnvironmentTemplate{ex-num-box}{%
+    \begin{tcolorbox}[
+            enhanced,
+            skin=bicolor,
+            sharp corners,
+            before skip=-.25\baselineskip,
+            after skip=-.25\baselineskip,
+            frame hidden,
+            colframe=\neoschool at headcolor,
+            colback=white,
+            colupper=\neoschool at globalcolor,
+            fontupper=\color{\neoschool at globalcolor},
+            enlarge left by=-.5\leftmargin,
+            enlarge right by=-.5\rightmargin,
+            width=\textwidth+\leftmargin+\rightmargin,
+            before upper*={%
+                    \tcbox[enhanced,
+                        colupper=white,
+                        colback=\neoschool at headcolor,
+                        fontupper=\csname\neoschool at headweight\endcsname,
+                        size=small,
+                        baseline=4pt,
+                        top=1pt,
+                        bottom=1pt,
+                        left=1pt,
+                        right=1pt,
+                        nobeforeafter,
+                        frame code={%
+                                \path[fill=tcbcolback] (frame.north west) -- (frame.north east)
+                                -- (frame.south east) -- (frame.south west) -- cycle;
+                            }]%
+                    {%
+                        \csname\neoschool at headstyle\endcsname
+                        \csname\neoschool at headweight\endcsname
+                        {\small\neo at exerciseicon}%
+                        Ex.~\GetExerciseProperty{counter}%
+                    }%
+                }
+        ]%
+        {\csname\neoschool at headstyle\endcsname
+            \csname\neoschool at headweight\endcsname
+            \color{exerciseColor}
+            \IfExercisePropertySetT{level}
+            {\enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+            \IfExercisePropertySetT{subtitle}{{\itshape\enskip\GetExerciseProperty{subtitle}}}%
+            \IfExercisePropertySetT{points}{%
+                \;(\GetExerciseProperty{points}%
+                \IfExerciseGoalSingularTF{points}{\,point-short}{\,points-short})%
+            }%
+        }%
+        \enskip
+        }{\end{tcolorbox}}
+
+\DeclareExerciseEnvironmentTemplate{ex-num-box-outlined}{%
+    \begin{tcolorbox}[
+            enhanced,
+            skin=bicolor,
+            sharp corners,
+            before skip=-.25\baselineskip,
+            after skip=-.25\baselineskip,
+            colframe=exerciseColor,
+            colback=white,
+            colupper=\neoschool at globalcolor,
+            fontupper=\color{\neoschool at globalcolor},
+            enlarge left by=-.5\leftmargin,
+            enlarge right by=-.5\rightmargin,
+            width=\textwidth+\leftmargin+\rightmargin,
+            before upper*={%
+                    \tcbox[enhanced,
+                        colupper=exerciseColor,
+                        colback=white,
+                        colframe=exerciseColor,
+                        fontupper=\csname\neoschool at headweight\endcsname,
+                        size=small,
+                        baseline=4pt,
+                        top=1pt,
+                        bottom=1pt,
+                        left=1pt,
+                        right=1pt,
+                        nobeforeafter,
+                    ]%
+                    {%
+                        \csname\neoschool at headstyle\endcsname
+                        \csname\neoschool at headweight\endcsname
+                        {\small\neo at exerciseicon}%
+                        Ex.~\GetExerciseProperty{counter}%
+                    }%
+                }
+        ]%
+        {\csname\neoschool at headstyle\endcsname
+            \csname\neoschool at headweight\endcsname
+            \color{exerciseColor}
+            \IfExercisePropertySetT{level}
+            {\enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+            \IfExercisePropertySetT{subtitle}{{\itshape\enskip\GetExerciseProperty{subtitle}}}%
+            \IfExercisePropertySetT{points}{%
+                \;(\GetExerciseProperty{points}%
+                \IfExerciseGoalSingularTF{points}{\,point-short}{\,points-short})%
+            }%
+        }%
+        \enskip
+        }{\end{tcolorbox}}
+
+%%% Chevrons for Rules
+
+\newcommand{\lchevrons}{%
+    \begin{tikzpicture}[scale=0.1, baseline=0.2mm, line width=1.2pt]
+        \draw (0,0) -- (-1,1.25) -- (0,2.5);
+        \draw (2,0) -- (1,1.25) -- (2,2.5);
+        \draw (4,0) -- (3,1.25) -- (4,2.5);
+    \end{tikzpicture}%
+}
+
+\newcommand{\lcircle}{%
+    \begin{tikzpicture}[scale=1, baseline=-1mm, line width=1.2pt]
+        \draw (0,0) circle (3pt);
+    \end{tikzpicture}%
+}
+
+%%% Horizontal Rule with Boxed Title
+
+\DeclareExerciseEnvironmentTemplate{box-hrule}{%
+    \par\vspace{3.25ex plus 1ex minus .2ex}
+    \Needspace*{3\baselineskip}%
+    \noindent
+    {\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname
+        \tcbox[on line,boxsep=-2pt,boxrule=0.4pt,left=7pt,right=7pt,colframe=exerciseColor,colback=exerciseColor,sharp corners, rounded corners = southeast]{\color{white}{\small\neo at exerciseicon}\XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}}%
+        \color{exerciseColor}
+        \IfExercisePropertySetT{level}
+        {\enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+        \IfInsideSolutionF{%
+            \GetExercisePropertyT{subtitle}{{\itshape\enskip{\PropertyValue}\enskip}}%
+        }%
+        \hspace{-1pt}\xrfill[.085cm]{1.2pt}[exerciseColor]\hspace{-1pt}%
+        {\color{exerciseColor}\footnotesize\lchevrons}%
+        {%
+            \IfExercisePropertySetT{points}{\bfseries\color{exerciseColor}\enskip%
+                \GetExerciseProperty{points}
+                \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]\;}%
+                \IfExerciseGoalSingularTF{points}
+                {\XSIMtranslate{point}}
+                {\XSIMtranslate{points}}%
+            }%
+        }%
+    }%
+    \par\vspace{1.5ex plus .2ex}
+    \@afterindentfalse\@afterheading
+}{}
+
+%%% Horizontal Rule with Boxed Title - Outlined
+
+\DeclareExerciseEnvironmentTemplate{box-hrule-out}{%
+    \par\vspace{3.25ex plus 1ex minus .2ex}
+    \Needspace*{3\baselineskip}%
+    {\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\tcbox[on line,boxsep=-2pt,boxrule=1.2pt,left=7pt,right=7pt,colframe=exerciseColor,colback=white,sharp corners,
+            rounded corners = east,arc=5pt
+        ]{\color{exerciseColor}{\small\neo at exerciseicon}\XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}}%
+        \color{exerciseColor}%
+        \IfExercisePropertySetT{level}
+        {\enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+        \IfInsideSolutionF{%
+            \GetExercisePropertyT{subtitle}{{\itshape\enskip{\PropertyValue}}}%
+        }%
+        \hspace{-1pt}\xrfill[.085cm]{1.2pt}[exerciseColor]\hspace{-1pt}%
+        % \!\!{\color{exerciseColor}\small\lcircle}%
+        {\color{exerciseColor}\footnotesize\lchevrons}%
+        {\bfseries\color{exerciseColor}%
+            \IfExercisePropertySetT{points}{\enskip%
+                \GetExerciseProperty{points}
+                \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]\;}%
+                \IfExerciseGoalSingularTF{points}
+                {\XSIMtranslate{point}}
+                {\XSIMtranslate{points}}%
+            }%
+        }%
+    }%
+    \par\vspace{1.5ex plus .2ex}
+    \@afterindentfalse\@afterheading
+}{}
+
+\DeclareExerciseEnvironmentTemplate{box-hrule-in}{%
+    \par\vspace{3.25ex plus 1ex minus .2ex}
+    \Needspace*{3\baselineskip}%
+    \noindent
+    {\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\color{exerciseColor}%
+        \tcbox[on line,boxsep=-2pt,boxrule=1.2pt,left=7pt,right=7pt,colframe=exerciseColor,colback=white,sharp corners,
+            rounded corners = west,arc=5pt
+        ]{\color{exerciseColor}{\small\neo at exerciseicon}\XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}}%
+        \color{exerciseColor}
+        \IfExercisePropertySetT{level}
+        {\enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+        \IfInsideSolutionF{%
+            \GetExercisePropertyT{subtitle}{{\itshape\enskip{\PropertyValue}}}%
+        }%
+        \hspace{-1pt}\xrfill[.085cm]{1.2pt}[exerciseColor]\hspace{-1pt}%
+        {\color{exerciseColor}\small\lcircle}%
+        {\bfseries\color{exerciseColor}%
+            \IfExercisePropertySetT{points}{\enskip%
+                \GetExerciseProperty{points}
+                \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]\;}%
+                \IfExerciseGoalSingularTF{points}
+                {\XSIMtranslate{point}}
+                {\XSIMtranslate{points}}%
+            }}}%
+    \par\vspace{1.5ex plus .2ex}
+    \@afterindentfalse\@afterheading
+}{}
+
+%%% Boxed Title
+
+\DeclareExerciseEnvironmentTemplate{boxed}{%
+    \par\vspace{2ex plus .5ex minus .1ex}%
+    \noindent
+    {\csname\neoschool at headstyle\endcsname
+        \csname\neoschool at headweight\endcsname
+        \csname\neoschool at headshape\endcsname
+        \tcbox[
+            on line,
+            boxsep=-3pt,
+            left=7pt,
+            right=7pt,
+            colframe=exerciseColor,
+            colback=exerciseColor,
+            sharp corners,
+            rounded corners = southeast,
+        ]{%
+            \color{white}{\small\neo at exerciseicon}%
+            \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}%
+        }%
+    }%
+    {%
+        \csname\neoschool at headstyle\endcsname
+        \csname\neoschool at headweight\endcsname
+        \csname\neoschool at headshape\endcsname
+        \color{exerciseColor}
+        \IfExercisePropertySetT{level}
+        {\hspace{5pt}[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+        \IfExercisePropertySetT{subtitle}{{\enskip\GetExerciseProperty{subtitle}}}%
+        \IfExercisePropertySetT{points}{%
+            \enskip(\GetExerciseProperty{points}%
+            \IfExerciseGoalSingularTF{points}{\,point}{\,points})%
+        }%
+    }%
+    \hspace{2pt}
+}{}
+
+%%% Boxed Title - Outlined
+
+\DeclareExerciseEnvironmentTemplate{boxed-out}{%
+    \par\vspace{2ex plus .5ex minus .1ex}%
+    \noindent
+    {\csname\neoschool at headstyle\endcsname
+        \csname\neoschool at headweight\endcsname
+        \csname\neoschool at headshape\endcsname
+        \tcbox[
+            on line,
+            boxrule=0.8pt,
+            boxsep=-3pt,
+            left=7pt,
+            right=7pt,
+            colframe=exerciseColor,
+            colback=white,
+            sharp corners,
+            rounded corners = southeast,
+        ]{%
+            \color{exerciseColor}{\small\neo at exerciseicon}%
+            \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}%
+        }%
+    }%
+    {%
+        \csname\neoschool at headstyle\endcsname
+        \csname\neoschool at headweight\endcsname
+        \csname\neoschool at headshape\endcsname
+        \color{exerciseColor}
+        \IfExercisePropertySetT{level}
+        {\hspace{5pt}[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]}%
+        \IfExercisePropertySetT{subtitle}{{\enskip\GetExerciseProperty{subtitle}}}%
+        \IfExercisePropertySetT{points}{%
+            \enskip(\GetExerciseProperty{points}%
+            \IfExerciseGoalSingularTF{points}{\,point}{\,points})%
+        }%
+    }%
+    \hspace{2pt}
+}{}
+
+
+%% ==============================================================================
+%% Simple Style Templates
+%% ==============================================================================
+
+%% Common Style Settings
+\newcommand{\neo at startsection}[1]{%
+    \@startsection{paragraph}{4}{\z@}{0.25\baselineskip}{-1em}
+    {\csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname\color{#1}}
+}
+
+%% Inline Style
+%% ----------------------------------
+\DeclareExerciseEnvironmentTemplate{inline}{%
+    \neo at startsection{exerciseColor}
+    {%
+        {\small\neo at exerciseicon}%
+        \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}%
+        \IfExercisePropertySetT{level}{\enskip%
+            [\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]
+        }%
+        \GetExercisePropertyT{subtitle}{{\enskip\normalfont\rmfamily\itshape\csname\neoschool at headweight\endcsname\PropertyValue}}%
+        \IfExercisePropertySetT{points}{\enskip(%
+            \GetExerciseProperty{points}%
+            \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]}%
+            \IfExerciseGoalSingularTF{points}
+            {\;\XSIMtranslate{point})\!}
+        {\;\XSIMtranslate{points})\!}
+    }
+}
+\color{\neoschool at globalcolor}\hspace{-1em}
+}{\par\vspace{0.5\baselineskip}}
+
+
+%% Section Style
+%% ----------------------------------
+\DeclareExerciseEnvironmentTemplate{section}{%
+    \section*{%
+        {\small\neo at exerciseicon}%
+        \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}%
+        \IfExercisePropertySetT{level}{\enskip%
+            [\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]
+        }%
+        \GetExercisePropertyT{subtitle}{{\:\itshape\PropertyValue}}%
+        \IfExercisePropertySetT{points}{\enskip(%
+            \GetExerciseProperty{points}%
+            \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]}%
+            \IfExerciseGoalSingularTF{points}
+            {\;\XSIMtranslate{point})\!}
+            {\;\XSIMtranslate{points})\!}
+        }%
+    }%
+    \color{\neoschool at globalcolor}%
+}{\par\vspace{0.5\baselineskip}}
+
+% %% Terminal Style
+\DeclareExerciseEnvironmentTemplate{terminal}{%
+    \neo at startsection{exerciseColor}
+    {%
+        {\small\neo at exerciseicon}%
+        \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}
+        \enskip{\small\faTerminal}
+        \IfExercisePropertySetT{level}{%
+            \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]
+        }
+        \GetExercisePropertyT{subtitle}{{\enskip\PropertyValue}}
+        \IfExercisePropertySetT{points}{\enskip(%
+            \GetExerciseProperty{points}
+            \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]\;}
+            \IfExerciseGoalSingularTF{points}
+            {~\XSIMtranslate{point})\!}
+        {~\XSIMtranslate{points})\!}
+    }
+}
+\color{\neoschool at globalcolor}\hspace{-2em}
+}{\par}
+
+%% Subsection Style
+\DeclareExerciseEnvironmentTemplate{subsection}{%
+  \subsection*{%
+        {\small\neo at exerciseicon}%
+        \XSIMmixedcase{\GetExerciseName}\nobreakspace
+        \GetExerciseProperty{counter}
+        \IfExercisePropertySetT{level}{%
+            ~[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]
+        }
+        \IfInsideSolutionF{%
+            \GetExercisePropertyT{subtitle}
+            {{~\normalfont\csname\neoschool at headweight\endcsname\itshape\PropertyValue}}
+        }{%
+            \IfExercisePropertySetT{points}{%
+                \GetExerciseProperty{points}
+                \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]\;}
+                \IfExerciseGoalSingularTF{points}
+                {\hfill\XSIMtranslate{point}}
+                {\hfill\XSIMtranslate{points}}
+            }
+          }
+      }%
+}{\par}
+
+%% Block Style
+\DeclareExerciseEnvironmentTemplate{block}{%
+  \subsection*{%
+        {\small\neo at exerciseicon}%
+        \XSIMmixedcase{\GetExerciseName}\nobreakspace
+        \GetExerciseProperty{counter}
+        \IfExercisePropertySetT{level}{%
+            ~[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]
+        }
+        \IfInsideSolutionF{%
+            \GetExercisePropertyT{subtitle}
+            {{~\normalfont\csname\neoschool at headweight\endcsname\itshape\PropertyValue}}
+        }{%
+            \IfExercisePropertySetT{points}{%
+                \GetExerciseProperty{points}
+                \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]\;}
+                \IfExerciseGoalSingularTF{points}
+                {\hfill\XSIMtranslate{point}}
+                {\hfill\XSIMtranslate{points}}
+            }
+          }
+  }%
+  \vspace{-0.5em}
+}{%
+  \vspace{-1em}
+}
+
+%% ==============================================================================
+%% Horizontal Rule Style
+%% ==============================================================================
+
+\ifneo at amslikethm
+    \DeclareExerciseEnvironmentTemplate{hrule}{%
+        \par\vspace{2ex plus 0.5ex minus .1ex}
+        \Needspace*{3\baselineskip}
+        \noindent
+        \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname
+        {\small\neo at exerciseicon}%
+        \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}\enskip
+        \IfExercisePropertySetT{level}{%
+            [\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]\enskip
+        }
+        \IfInsideSolutionF{%
+            \GetExercisePropertyT{subtitle}{{{\normalfont\PropertyValue}\enskip}}
+        }
+        \xrfill[.075cm]{0.4pt}[exerciseColor]
+        {\color{exerciseColor}
+            \IfExercisePropertySetT{points}{\enskip
+                \GetExerciseProperty{points}
+                \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]\;}
+                \IfExerciseGoalSingularTF{points}
+                {~\XSIMtranslate{point}}
+                {~\XSIMtranslate{points}}
+            }
+        }
+        \par\vspace{1ex plus .1ex}
+        \@afterindentfalse\@afterheading
+    }{\par}
+\else
+    \DeclareExerciseEnvironmentTemplate{hrule}{%
+        \par\vspace{2ex plus 0.5ex minus .1ex}
+        \Needspace*{3\baselineskip}
+        \noindent
+        \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname
+        {\small\neo at exerciseicon}%
+        \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}\enskip
+        \IfExercisePropertySetT{level}{%
+            [\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]\enskip
+        }
+        \IfInsideSolutionF{%
+            \GetExercisePropertyT{subtitle}{{({\PropertyValue})\enskip}}
+        }
+        \xrfill[.075cm]{1.2pt}[exerciseColor]
+        {\color{exerciseColor}
+            \IfExercisePropertySetT{points}{\enskip
+                \GetExerciseProperty{points}
+                \GetExercisePropertyT{bonus-points}{[+\printgoal{\PropertyValue}]\;}
+                \IfExerciseGoalSingularTF{points}
+                {~\XSIMtranslate{point}}
+                {~\XSIMtranslate{points}}
+            }
+        }
+        \par\vspace{1ex plus .1ex}
+        \@afterindentfalse\@afterheading
+    }{\par}
+\fi
+
+%% ==============================================================================
+%% Solution Box Configuration
+%% ==============================================================================
+
+% Solution box template
+\DeclareExerciseEnvironmentTemplate{sol-box}{%
+    \begin{tcolorbox}[%
+            enhanced,
+            breakable,
+            frame hidden,
+            before skip=0.5\baselineskip,
+            after skip=0.5\baselineskip,
+            left=0.75em,
+            right=0.5em,
+            boxsep=1ex,
+            colframe=solutionColor,
+            colback=solutionColor!5,
+        ]
+        {\color{solutionColor}
+            \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname
+            \XSIMmixedcase{\GetExerciseName}
+            \csname neo at solutiongaptext\endcsname
+            \GetExerciseProperty{counter}
+        }
+        }{\end{tcolorbox}}
+
+%% ==============================================================================
+%% Smart Boxes
+%% ==============================================================================
+\DeclareExerciseProperty{answer-type}
+
+\DeclareExerciseEnvironmentTemplate{smart-box}{%
+    \begin{tcolorbox}[%
+            neo at box@base,
+            neo at frame@basic,
+            neo at title@colored,
+            title={%
+                    \raisebox{0pt}{\textcolor{white}{\small\neo at exerciseicon}}%
+                    \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname
+                    \XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}%
+                    \IfExercisePropertySetT{level}{%
+                        \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+                    }%
+                    \IfExercisePropertySetT{subtitle}{\enskip\GetExerciseProperty{subtitle}}%
+                    \IfExercisePropertySetT{points}{%
+                        \enskip(\GetExerciseProperty{points}%
+                        \IfExerciseGoalSingularTF{points}{~point}{~points})%
+                    }%
+                }%
+        ]%
+        }{\end{tcolorbox}}
+
+\DeclareExerciseEnvironmentTemplate{minimal-ams}{%
+    \par\vspace{2ex plus 0.5ex minus .1ex}
+    \Needspace*{3\baselineskip}
+    \noindent
+    {%
+        {\small\neo at exerciseicon}
+        \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname
+        \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}%
+        \IfExercisePropertySetT{level}{%
+            \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+        }%
+        \IfExercisePropertySetT{subtitle}{%
+            \enskip{\itshape\GetExerciseProperty{subtitle}}%
+        }%
+        \IfExercisePropertySetT{points}{%
+            \enskip(%
+            \GetExerciseProperty{points}%
+            \IfExerciseGoalSingularTF{points}%
+            {~point}%
+            {~points}%
+            )%
+        }%
+        \enskip
+    }%
+}{\par\vspace{1ex plus .5ex}}
+
+\DeclareExerciseEnvironmentTemplate{rule-ams}{%
+    \par\vspace{2ex plus 0.5ex minus .1ex}
+    \Needspace*{3\baselineskip}
+    \noindent
+    {%
+        {\small\neo at exerciseicon}
+        \csname\neoschool at headstyle\endcsname\csname\neoschool at headweight\endcsname\csname\neoschool at headshape\endcsname
+        \XSIMmixedcase{\GetExerciseName}\nobreakspace\GetExerciseProperty{counter}%
+        \IfExercisePropertySetT{level}{%
+            \enskip[\raisebox{0.5pt}{$\neo at replicate{\GetExerciseProperty{level}}{{\star}}$}]%
+        }%
+        \IfExercisePropertySetT{subtitle}{%
+            \enskip{\itshape\GetExerciseProperty{subtitle}}%
+        }%
+        \IfExercisePropertySetT{points}{%
+            \enskip(%
+            \GetExerciseProperty{points}%
+            \IfExerciseGoalSingularTF{points}%
+            {~point}%
+            {~points}%
+            )%
+        }%
+        \enskip
+    }%
+    \par\nobreak\vspace{.4ex}%
+    \noindent\hspace*{2em}%
+    \tikz[baseline]{\draw[line width=0.4pt, exerciseColor!20] (0,0) -- (\linewidth-4em,0);}%
+    \par\vspace{.8ex}%
+    \@afterindentfalse\@afterheading
+}{\par\vspace{1ex plus .5ex}}
+
+%% ==============================================================================
+%% Exercise Configuration
+%% ==============================================================================
+
+% Enable solutions if answers option is active
+\ifneoschool at answers
+    \xsimsetup{%
+        solution/print=true
+    }
+\fi
+
+% Base exercise setup
+\ifneoschool at sectionthmcounter
+    \ifneoschool at sharedexcounter
+        \xsimsetup{%
+            exercise/within = section,
+            exercise/name = {\neo at exercisename},
+            solution/name = {\neo at solutionname},
+            solution/template = sol-box
+        }
+        \renewcommand*{\theexercise}{\thesection.\arabic{thmcounter}}
+        \AtBeginEnvironment{exercise}{\stepcounter{thmcounter}\addtocounter{exercise}{-1}}
+    \else
+        \xsimsetup{%
+            exercise/within = section,
+            exercise/name = {\neo at exercisename},
+            solution/name = {\neo at solutionname},
+            solution/template = sol-box
+        }
+    \fi
+\else
+    \ifneoschool at sharedexcounter
+        \xsimsetup{%
+            exercise/name = {\neo at exercisename},
+            solution/name = {\neo at solutionname},
+            solution/template = sol-box
+        }
+        \renewcommand*{\theexercise}{\arabic{thmcounter}}
+        \AtBeginEnvironment{exercise}{\stepcounter{thmcounter}\addtocounter{exercise}{-1}}
+    \else
+        \xsimsetup{%
+            exercise/name = {\neo at exercisename},
+            solution/name = {\neo at solutionname},
+            solution/template = sol-box
+        }
+    \fi
+\fi
+
+%% Style selection based on class options
+\ifneo at amslikethm
+    \xsimsetup{exercise/template=inline}
+\fi
+
+\ifneo at classythm
+    \xsimsetup{exercise/template=classy-box}
+\fi
+
+\ifneo at classicthm
+    \xsimsetup{exercise/template=classic-box}
+\fi
+
+\ifneo at soberthm
+    \xsimsetup{exercise/template=sober-box}
+\fi
+
+\ifneo at elegantthm
+    \xsimsetup{exercise/template=elegant-box}
+\fi
+
+\ifneo at shadedthm
+    \xsimsetup{exercise/template=shaded-box}
+\fi
+
+\ifneo at slantedthm
+    \xsimsetup{exercise/template=slanted-box}
+\fi
+
+\ifneo at boxedthm
+    \xsimsetup{exercise/template=rect-box}
+\fi
+
+%% ==============================================================================
+%% Referencing an exercise
+%% ==============================================================================
+
+\ExplSyntaxOn
+\NewDocumentCommand \exercisenumber {m}
+  {
+    \xsim_get_property:nxn
+      {exercise}
+      { \xsim_get_id_for_property:nn {ID} {#1} }
+      {counter}
+  }
+\cs_generate_variant:Nn \xsim_get_property:nnn {nx}
+\ExplSyntaxOff
+
+%% ==============================================================================
+%% Utility Commands for Exercises
+%% ==============================================================================
+
+% Print exercises by level
+\NewDocumentCommand\printlevelexid{m}{%
+    \noindent {\bfseries \csname neo at pathname\endcsname\space#1 :}
+    \ForEachUsedExerciseByType{%
+        \def\ExerciseType{##1}
+        \def\ExerciseID{##2}
+        \IfExercisePropertySetT{level}{%
+            \ifnum\GetExerciseProperty{level}=#1
+                \fbox{\GetExerciseProperty{id}}\hspace*{2mm}
+            \else
+                \hspace*{5mm}
+            \fi
+        }
+    }
+}
+
+%% ==============================================================================
+%% Final Configuration Commands
+%% ==============================================================================
+
+% Dynamic grid fill command
+\newlength{\neo at gridwidth}
+\NewDocumentCommand\gridfill{ s O{\neoschool at titlecolor} O{5mm} O{5mm} }{%
+    \pgfmathsetmacro{\neo at gridwidth}{floor(\linewidth/1cm)}
+    \edef\neo at gridwidth{\neo at gridwidth cm}
+    \vspace*{\fill}
+    \IfBooleanTF#1
+    {{\noindent\centering
+                \frenchgrid[#2]{\neo at gridwidth}{\dimexpr\textheight-\pagetotal-2\baselineskip\relax}}
+    }
+    {{\noindent\centering
+                \customgrid[#2][#3][#4]{\neo at gridwidth}{\dimexpr\textheight-\pagetotal-2\baselineskip\relax}}
+    }
+}
+
+% Solution text formatting
+\NewDocumentCommand\neo at solution@text{}{%
+    {\csname\neoschool at headstyle\endcsname
+            \csname\neoschool at headweight\endcsname
+            \color{tcbcolframe}
+            \ifx\neo at solutiongaptext\empty
+                \neo at solutionname
+            \else
+                \neo at solutionname~\neo at solutiongaptext
+            \fi
+        }
+}
+
+%% ==============================================================================
+%% Utilities
+%% ==============================================================================
+
+%% Core Document Settings
+%% ----------------------------------
+% Table styling
+\setlength{\arrayrulewidth}{0.5pt}
+% \arrayrulecolor{\neoschool at titlecolor}
+\renewcommand{\arraystretch}{1.15}
+
+% Document color management
+\newcommand{\documentcolor}[1]{%
+    \color{#1}\global\let\default at color\current at color
+}
+
+% Initialize document settings
+\AtBeginDocument{%
+    \documentcolor{\neoschool at globalcolor}
+    \DeclareGraphicsExtensions{.pdf,.PDF,.eps,.EPS,.png,.PNG,.tif,.TIF,.jpg,.JPG,.jpeg,.JPEG}
+}
+
+%% Font Settings
+%% ----------------------------------
+\ifneo at sfall
+    \renewcommand{\neoschool at headstyle}{sffamily}
+    \renewcommand{\neoschool at titlestyle}{sffamily}
+    \renewcommand{\familydefault}{\sfdefault}
+\fi
+
+\ifneo at sfbody
+    \renewcommand{\familydefault}{\sfdefault}
+\fi
+
+%% Graphics Rules
+%% ----------------------------------
+\ifpdf
+    \DeclareGraphicsRule{*}{mps}{*}{}
+\fi
+
+%% Layout and Drawing Tools
+%% ----------------------------------
+% Absolute positioning on page
+\newcommand{\positionobject}[4]{%
+    \begin{tikzpicture}[remember picture, overlay]
+        \node[inner sep=0pt, outer sep=0pt] at ($([xshift=#1,yshift=-#2]current page.north west)$) {%
+            \adjustbox{scale=#3}{#4}
+        };
+    \end{tikzpicture}
+}
+
+% Advanced customizable grid
+\NewDocumentCommand{\customgrid}{ O{\neoschool at titlecolor} O{5mm} O{5mm} m m }{%
+    \tikzset{%
+        gridlines/.style={%
+                draw=#1,
+                opacity=0.5
+            },
+        majorgrid/.style={%
+                gridlines,
+                line width=0.35pt
+            },
+        minorgrid/.style={%
+                gridlines,
+                line width=0.35pt
+            }
+    }
+    \medskip\noindent\begin{tikzpicture}[inner sep=0, outer sep=0]
+        % Calculate dimensions
+        \pgfmathsetmacro\mywidth{#4}
+        \pgfmathsetmacro\myheight{#5}
+        \pgfmathsetmacro\incx{#2}
+        \pgfmathsetmacro\incy{#3}
+
+        % Vertical grid lines
+        \pgfmathsetmacro\numx{int(\mywidth/\incx)}
+        \foreach \x in {0,...,\numx}{%
+                \pgfmathparse{mod(\x,5)==0 ? "majorgrid" : "minorgrid"}
+                \edef\gridstyle{\pgfmathresult}
+                \draw[\gridstyle]
+                (\x * \incx pt, 0) -- (\x * \incx pt, \myheight pt);
+            }
+
+        % Horizontal grid lines
+        \pgfmathsetmacro\numy{int(\myheight/\incy)}
+        \foreach \y in {0,...,\numy}{%
+                \pgfmathparse{mod(\y,5)==0 ? "majorgrid" : "minorgrid"}
+                \edef\gridstyle{\pgfmathresult}
+                \draw[\gridstyle]
+                (0, \y * \incy pt) -- (\mywidth pt, \y * \incy pt);
+            }
+    \end{tikzpicture}
+    \ignorespaces
+    \par\vspace{7pt}
+}
+
+% Legacy grid command for backwards compatibility
+\NewDocumentCommand{\grid}{ O{\neoschool at titlecolor} m m }{%
+    \customgrid[#1][5mm][5mm]{#2}{#3}
+}
+
+\NewDocumentCommand{\frenchgrid}{ s O{\neoschool at titlecolor!75} O{\neoschool at titlecolor!50} m m }{%
+    \tikzset{%
+        fine lines/.style={draw={#3},very thin},
+        thick lines/.style={draw={#2}},
+    }
+    \IfBooleanTF{#1}{%
+        {\noindent\centering}
+    }{%
+        \noindent
+    }
+    \begin{tikzpicture}[inner sep=0,outer sep=0]
+        \pgfmathsetmacro\mywidth{#4}
+        \pgfmathsetmacro\myheight{#5}
+        \pgfmathsetmacro\incx{8mm}
+        \pgfmathsetmacro\incypetits{2mm}
+        \pgfmathsetmacro\incygrands{8mm}
+
+        % Adjust the width to be an exact multiple of incx
+        \pgfmathsetmacro\numx{floor(\mywidth/\incx)} % Number of full columns
+        \pgfmathsetmacro\adjwidth{\numx * \incx} % Adjusted width
+
+        % Adjust the height to be an exact multiple of incypetits
+        \pgfmathsetmacro\numypetits{floor(\myheight/\incypetits)} % Number of fine lines
+        \pgfmathsetmacro\numygrands{floor(\myheight/\incygrands)} % Number of thick lines
+        \pgfmathsetmacro\adjheight{\numypetits * \incypetits} % Adjusted height
+
+        % Draw vertical lines
+        \foreach \x in {0,...,\numx}{%
+                \draw[fine lines]
+                (\x * \incx pt,0) -- (\x * \incx pt,\adjheight pt);
+            }
+        % Draw thin horizontal lines
+        \foreach \y in {0,...,\numypetits}{%
+                \draw[fine lines]
+                (0,\y * \incypetits pt) -- (\adjwidth pt,\y * \incypetits pt);
+            }
+        % Draw thick horizontal lines
+        \foreach \y in {0,...,\numygrands}{%
+                \draw[thick lines]
+                (0,\y * \incygrands pt) -- (\adjwidth pt,\y * \incygrands pt);
+            }
+    \end{tikzpicture}
+}
+
+%% Notebook-Style Pages
+%% ----------------------------------
+% Simple lined notebook page
+\newcommand{\notebook}{%
+    \begin{tikzpicture}[remember picture,overlay]
+        \foreach \i in {3,...,27}{%
+                \draw[teal] ($(current page.north west)+(0,-\i)$) --
+                ($(current page.north east)+(0,-\i)$);
+            }
+        \draw [thick,red] ($(current page.north west)+(4,0)$) --
+        ($(current page.south west)+(4,0)$);
+    \end{tikzpicture}
+}
+
+% Minor grid notebook page
+\newcommand{\nbminorgrid}{%
+    \begin{tikzpicture}[remember picture,overlay]
+        \foreach \i in {0.5,1,...,30}{%
+                \draw[teal!50] ($(current page.north west)+(0,-\i)$) --
+                ($(current page.north east)+(0,-\i)$);
+            }
+        \foreach \i in {0.5,1,...,21}{%
+                \draw [thick,teal!50] ($(current page.north west)+(\i,0)$) --
+                ($(current page.south west)+(\i,0)$);
+            }
+    \end{tikzpicture}
+}
+
+% Major grid notebook page
+\newcommand{\nbmajorgrid}{%
+    \begin{tikzpicture}[remember picture,overlay]
+        \foreach \i in {2,2.8,...,30}{%
+                \draw[teal!50] ($(current page.north west)+(0,-\i)$) --
+                ($(current page.north east)+(0,-\i)$);
+            }
+        \foreach \i in {2,2.2,...,30}{%
+                \draw[teal!25] ($(current page.north west)+(0,-\i)$) --
+                ($(current page.north east)+(0,-\i)$);
+            }
+        \foreach \i in {4.0,4.8,...,21}{%
+                \draw [thick,teal!50] ($(current page.north west)+(\i,0)$) --
+                ($(current page.south west)+(\i,0)$);
+            }
+        \draw [thick,red] ($(current page.north west)+(4,0)$) --
+        ($(current page.south west)+(4,0)$);
+    \end{tikzpicture}
+}
+
+%% Horizontally Split Content
+%% ----------------------------------
+\NewDocumentCommand{\splitcontent}{ O{0.5} O{0.02} m m }{%
+    % #1 : Width of the first section (default: 50%)
+    % #2 : Horizontal gap between sections (default: 2%)
+    % #3 : Content of the first section
+    % #4 : Content of the second section
+    \noindent
+    \begin{minipage}{#1\linewidth}
+        #3
+    \end{minipage}%
+    \hspace*{#2\linewidth}
+    \begin{minipage}{\dimexpr\linewidth-#1\linewidth-#2\linewidth\relax}
+        #4
+    \end{minipage}%
+}
+
+%% Text With Image Layout
+%% ----------------------------------
+\NewDocumentCommand{\textwithimage}{s m m m m}{%
+    \noindent
+    \IfBooleanTF{#1}{%
+        \par\begin{minipage}{#2\linewidth}
+            \centering\includegraphics[width=#3\linewidth]{#5}
+        \end{minipage}
+        \hfill
+        \begin{minipage}{\dimexpr\linewidth-#2\linewidth-1em\relax}
+            #4
+        \end{minipage}
+    }{%
+        \par\begin{minipage}{\dimexpr\linewidth-#2\linewidth-1em\relax}
+            #4
+        \end{minipage}%
+        \hfill%
+        \begin{minipage}{#2\linewidth}
+            \begin{center}
+                \centering\includegraphics[width=#3\linewidth]{#5}
+            \end{center}
+        \end{minipage}
+    }
+}
+
+%% QR Code Integration
+%% ----------------------------------
+\NewDocumentCommand{\withqrcode}{ s O{2cm} m m }{%
+    \qrset{hyperlink,height=#2}%
+    \noindent%
+    \IfBooleanTF{#1}{%
+        \par\begin{tblr}{%
+            width={.975\linewidth},
+            colspec={X[j,m]Q[c,m]Q[c,m]}
+            }
+            {{{#4}}} &  & \centering\qrcode{#3}
+        \end{tblr}%
+    }{%
+        \par\begin{tblr}{%
+            width={.975\linewidth},
+            colspec={Q[c,m]Q[c,m]X[j,m]}
+            }
+            \centering\qrcode{#3} &  & {{{#4}}}
+        \end{tblr}%
+    }%
+}
+
+%% Assessment Tools
+%% ----------------------------------
+% Point markers
+\NewDocumentCommand{\mrks}{s O{} m}{%
+    \IfBooleanTF{#1}
+    {\reversemarginpar}
+    {\normalmarginpar}%
+    \marginnote{\small (#3 pts)\ifx\empty#2\empty\else\\\small#2\fi}[0em]\ignorespaces}
+
+\NewDocumentCommand{\mrk}{s O{} m}{%
+    \IfBooleanTF{#1}
+    {\reversemarginpar}
+    {\normalmarginpar}%
+    \marginnote{\small (#3 pt)\ifx\empty#2\empty\else\\\small#2\fi}[0em]\ignorespaces}
+
+% Answer lines
+\NewDocumentCommand{\lines}{ O{.} O{1.65em} m }{%
+    \par
+    \foreach \n in {1,...,#3}{%
+            \noindent\parbox[t][#2][t]{\linewidth}{%
+                \ifstrequal{#1}{.}{%
+                    \dotfill
+                }{%
+                    \ifstrequal{#1}{-}{%
+                        \hrulefill
+                    }{%
+                        \leaders\hbox{#1}\hfill\kern0pt
+                    }
+                }
+            }
+            \par
+        }
+}
+
+% Dotted line with variable length
+\newcommand\vardots[1][\linewidth]{%
+    \noindent\begin{tikzpicture}
+        \draw[densely dotted, semithick, line cap=round] (0,0) -- ({#1},0);
+    \end{tikzpicture}
+}
+
+%% Task Lists
+%% ----------------------------------
+\newcommand{\cmark}{%
+    \ifneo at unicolor
+        {\color{\neoschool at headcolor}\ding{51}}%
+    \else
+        \ifneo at print
+            \ding{51}%
+        \else
+            {\color{definitionColor}\ding{51}}%
+        \fi
+    \fi
+}
+
+\newcommand{\xmark}{%
+    \ifneo at unicolor
+        {\color{\neoschool at headcolor}\ding{55}}%
+    \else
+        \ifneo at print
+            \ding{55}%
+        \else
+            {\color{theoremColor}\ding{55}}%
+        \fi
+    \fi
+}
+
+\newcommand{\unchecked}{%
+    \item[\rlap{$\square$}\hspace{.7em}]%
+}
+
+\newcommand{\done}{%
+    \item[\rlap{$\square$}{%
+                    \raisebox{1pt}{\large\hspace{1pt}\cmark}\hspace{-2.5pt}}]%
+}
+
+\newcommand{\wontfix}{%
+    \item[\rlap{$\square$}{\large\hspace{1pt}\xmark}]%
+}
+
+%% Margin
+%% ----------------------------------
+
+\ifx\neoschool at margin\@empty\else
+    \AtEndPreamble{%
+        \newlength{\neo at originalwidth}%
+        \setlength{\neo at originalwidth}{18cm}%
+        \addtolength{\evensidemargin}{\neoschool at margin}%
+        \addtolength{\oddsidemargin}{\neoschool at margin}%
+        \setlength{\marginparwidth}{\dimexpr\neoschool at margin-0.5cm\relax}%
+        \setlength{\marginparsep}{0.5cm}%
+        \areaset{\dimexpr\neo at originalwidth-\neoschool at margin\relax}{\dimexpr29cm-\neoschool at margin}%
+        % \recalctypearea
+    }
+\fi
+
+%% Margin Notes
+%% ----------------------------------
+
+\newtoggle{lmargin}
+
+\newcommand{\alternatingtodo}[2][]{%
+    \iftoggle{lmargin}
+    {\normalmarginpar \todo[#1]{#2} \togglefalse{lmargin}}
+    {\reversemarginpar \todo[#1]{#2} \toggletrue{lmargin}}
+    \ignorespaces
+}
+
+\newif\ifmarginnotesactive
+\ifx\neoschool at notes\@empty
+    \marginnotesactivefalse
+\else
+    \marginnotesactivetrue
+    \AtEndPreamble{%
+        \newlength{\neo at originalwidth}
+        \setlength{\neo at originalwidth}{18cm}
+        \addtolength{\evensidemargin}{\neoschool at notes}
+        \addtolength{\oddsidemargin}{\neoschool at notes}
+        \setlength{\marginparwidth}{\dimexpr\neoschool at notes-0.5cm\relax}
+        \setlength{\marginparsep}{0.5cm} \areaset{\dimexpr\neo at originalwidth-\neoschool at notes\relax}{\dimexpr29cm-\neoschool at notes}
+    }
+    % \recalctypearea
+\fi
+
+\newcommand{\tdnote}[2][]{%
+    \ifmarginnotesactive
+        \alternatingtodo[%
+            bordercolor=\ifneo at unicolor\neoschool at headcolor\else ForestGreen\fi,
+            linecolor=\ifneo at unicolor\neoschool at headcolor\else ForestGreen\fi,
+            backgroundcolor=\ifneo at unicolor\neoschool at headcolor!10\else Gold\fi,
+            #1%
+        ]{#2}%
+    \fi
+}
+
+\newsavebox{\todobox}
+\newcounter{tdnotecounter}
+
+\newcommand{\boxnote}[2][inNote]{%
+    \stepcounter{tdnotecounter}
+    \iftoggle{lmargin}%
+    {%
+        \normalmarginpar
+        \marginpar{%
+            \savebox\todobox{\tdnote[inline]{#2}}%
+            \begin{tikzpicture}[remember picture, overlay]
+                \coordinate (#1-\thetdnotecounter) at (0pt,0.5\ht\todobox);
+            \end{tikzpicture}%
+            \usebox\todobox%
+        }%
+        \togglefalse{lmargin}
+    }%
+    {%
+        \reversemarginpar
+        \marginpar{%
+            \savebox\todobox{\tdnote[inline]{#2}}%
+            \begin{tikzpicture}[remember picture, overlay]
+                \coordinate (#1-\thetdnotecounter) at (\marginparwidth,0.5\ht\todobox);
+            \end{tikzpicture}%
+            \usebox\todobox%
+        }%
+        \toggletrue{lmargin}
+    }%
+}
+
+\newcommand{\tdmark}[1][inNote]{%
+    \ifmarginnotesactive
+        \tikz[remember picture, overlay]{%
+            \iftoggle{lmargin}{%
+                \draw[thick,color=\ifneo at unicolor\neoschool at headcolor\else ForestGreen\fi]
+                (#1-\thetdnotecounter) -- ++(0.25cm,0) |- (0pt,\lineskip-\dp\strutbox)%
+            }{%
+                \draw[thick,color=\ifneo at unicolor\neoschool at headcolor\else ForestGreen\fi]
+                (#1-\thetdnotecounter) -- ++(-0.25cm,0) |- (0pt,\lineskip-\dp\strutbox)%
+            }
+        }%
+    \fi
+}
+
+%% Exam-style grading strip
+%% ----------------------------------
+\newcommand{\neo at mark@text}{%
+    \ifneo at french
+        Note%
+    \else\ifneo at german
+            Note%
+        \else
+            Mark%
+        \fi\fi
+}
+
+\newcommand{\neo at appreciation@text}{%
+    \ifneo at french
+        Appréciation%
+    \else\ifneo at german
+            Bewertung%
+        \else
+            Comments%
+        \fi\fi
+}
+
+\newcommand{\smallstrut}{\rule[-0.5ex]{0pt}{1.8ex}}
+
+\NewDocumentCommand{\gradingstrip}{ O{} }{%
+    \vspace*{1em}
+    \noindent
+    \begin{minipage}[t]{0.2\textwidth}
+        \begin{tcolorbox}[%
+                enhanced,
+                colback=white,
+                colbacktitle=white,
+                colframe=\neoschool at globalcolor,
+                sharp corners,
+                boxrule=0.5pt,
+                height=2.5cm,
+                title={\smallstrut\textmd{\color{\neoschool at globalcolor}\neo at mark@text}},
+                center title,
+                overlay={%
+                    \ifblank{#1}{}{%
+                        \coordinate (start) at ([xshift=-0.1mm,yshift=-0.575cm]frame.north east);
+                        \coordinate (end) at ([xshift=0.1mm,yshift=0.1mm]frame.south west);
+                        \draw[line width=0.4pt] (start) -- (end);
+                        \node[anchor=south east]
+                            at ([xshift=-0.4cm,yshift=0.4cm]end -| start) {#1};
+                    }%
+                }
+        ]
+            \ifblank{#1}{%
+                \vspace{2\baselineskip}
+            }{}
+        \end{tcolorbox}
+    \end{minipage}%
+    \hspace{.1cm}%
+    \begin{minipage}[t]{0.79\textwidth}
+        \begin{tcolorbox}[%
+                enhanced,
+                colback=white,
+                colbacktitle=white,
+                colframe=\neoschool at globalcolor,
+                sharp corners,
+                boxrule=0.5pt,
+                height=2.5cm,
+                title={\smallstrut\textmd{\color{\neoschool at globalcolor}\neo at appreciation@text}},
+                center title
+            ]
+            \vspace{2\baselineskip}
+        \end{tcolorbox}
+    \end{minipage}
+    \vspace*{1em}
+}
+
+%% Skill Assessment Table
+%% ----------------------------------
+\newcommand{\competencies}[1]{%
+    \bigskip
+    % \colorlet{tempcolor}{\neoschool at titlecolor}
+    \colorlet{tempcolor}{\neoschool at globalcolor}
+    \ifneo at unicolor
+        \def\iconcolorA{\neoschool at titlecolor!5}%
+        \def\iconcolorB{\neoschool at titlecolor!5}%
+        \def\iconcolorC{\neoschool at titlecolor!5}%
+        \def\iconcolorD{\neoschool at titlecolor!5}%
+    \else
+        \def\iconcolorA{Tomato}%
+        \def\iconcolorB{orange}%
+        \def\iconcolorC{yellow}%
+        \def\iconcolorD{green}%
+    \fi
+    \begin{center}
+        \begin{tblr}{%
+            colspec={|[0.5pt,tempcolor]t{.5\linewidth}|[0.5pt,tempcolor]
+            Q[c,b]|[0.5pt,tempcolor]Q[c,b]|[0.5pt,tempcolor]
+            Q[c,b]|[0.5pt,tempcolor]Q[c,b]|[0.5pt,tempcolor]},
+            hlines = {0.5pt, tempcolor},
+            row{1} = {abovesep=5pt},
+            }
+            \SetCell{cmd=\bfseries} \raisebox{0.25em}{\neo at competencies} &
+            \dSadey[1.5][\iconcolorA]                                    & \dNeutrey[1.5][\iconcolorB]    &
+            \dSmiley[1.5][\iconcolorC]                                   & \dChangey[1.5][\iconcolorD]{2}   \\
+            #1                                                                                              \\
+        \end{tblr}
+    \end{center}
+    \medskip
+}
+
+%% Tree and Graph Structure Support
+%% ----------------------------------
+% Forest settings for trees
+\forestset{
+    w/.style = {
+            edge label={
+                    node[midway, fill=white, text=black] {$#1$}
+                }
+        }
+}
+
+\environbodyname\neotreebody
+\bracketset{action character=@}
+\NewEnviron{neotree}[1][]{%
+\forest
+for tree={%
+grow'=0,
+l=2.5cm,
+s sep=1.5cm,
+anchor=parent,
+math content,
+#1
+},
+[@\neotreebody]
+\endforest
+}
+
+% Graph settings (LuaTeX only)
+\ifluatex
+    \tikzset{%
+        graphs/simpleer/.style={%
+                nodes={%
+                        draw,
+                        circle,
+                        fill=white,
+                        text=black,
+                        inner sep=1pt,
+                        minimum size=2em
+                    },
+                node distance=2.5cm
+            }
+    }
+
+    \newcommand{\neograph}[2][]{%
+        \tikz \graph[%
+            simpleer,
+            simple necklace layout,
+            edge quotes mid,
+            edges={%
+                    rounded corners,
+                    nodes={%
+                            font=\scriptsize,
+                            fill=white,
+                            #1,
+                            inner sep=1pt,
+                            align=center
+                        }
+                },
+            nodes={circle,draw}
+        ]{#2};
+    }
+\fi
+
+% Math Grid Environment
+\newcounter{neomathline}
+\newcounter{neomathcol}[neomathline]
+
+\newenvironment{mathgrid}[1]
+{%
+    \def\mcols{#1}%
+    \setcounter{neomathline}{0}%
+    \par\noindent%
+}
+{\bigskip}
+
+\newcommand{\neoline}{%
+    \ifnum\value{neomathcol}>0\\\fi%
+    \stepcounter{neomathline}%
+    \setcounter{neomathcol}{0}%
+}
+
+\newcommand{\neocol}[2][1]{%
+    \stepcounter{neomathcol}%
+    \ifnum\value{neomathcol}>1\quad\fi%
+    \begin{minipage}[t]{\dimexpr\linewidth * #1 / \mcols - 2\columnsep}
+        \setlength{\abovedisplayskip}{5pt}%
+        \setlength{\belowdisplayskip}{5pt}%
+        \begin{align*}
+            #2
+        \end{align*}
+    \end{minipage}%
+    \ignorespaces%
+}
+
+% Math color
+
+\ifneo at unicolor
+    \colorlet{mathColor}{\neoschool at headcolor}
+\else
+    \colorlet{mathColor}{Maroon}
+\fi
+
+\newcommand*{\mc}[2][mathColor]{{\color{#1}#2}}
+
+%% ==============================================================================
+%% Admonition Boxes - Multilingual Version
+%% ==============================================================================
+
+%% Color Definitions for Admonition Boxes
+\ifneo at unicolor
+    \colorlet{noteColor}{\neoschool at headcolor}
+    \colorlet{infoColor}{\neoschool at headcolor}
+    \colorlet{warningColor}{\neoschool at headcolor}
+    \colorlet{importantColor}{\neoschool at headcolor}
+    \colorlet{tipColor}{\neoschool at headcolor}
+    \colorlet{reminderColor}{\neoschool at headcolor}
+    \colorlet{summaryColor}{\neoschool at headcolor}
+    \colorlet{toolboxColor}{\neoschool at headcolor}
+\else\ifx\neoschool at theme\neo at cyprus
+        \colorlet{noteColor}{methodColor}
+        \colorlet{infoColor}{theoremColor}
+        \colorlet{warningColor}{titleColor}
+        \colorlet{importantColor}{definitionColor}
+        \colorlet{tipColor}{codeColor}
+        \colorlet{reminderColor}{applicationColor}
+        \colorlet{summaryColor}{remarkColor}
+        \colorlet{toolboxColor}{alternateColor}
+    \else\ifx\neoschool at theme\neo at kassio
+            \colorlet{noteColor}{definitionColor}
+            \colorlet{infoColor}{applicationColor}
+            \colorlet{warningColor}{methodColor}
+            \colorlet{importantColor}{theoremColor}
+            \colorlet{tipColor}{codeColor}
+            \colorlet{reminderColor}{titleColor}
+            \colorlet{summaryColor}{remarkColor}
+            \colorlet{toolboxColor}{alternateColor}
+        \else\ifx\neoschool at theme\neo at frost
+                \colorlet{noteColor}{methodColor}
+                \colorlet{infoColor}{definitionColor}
+                \colorlet{warningColor}{titleColor}
+                \colorlet{importantColor}{theoremColor}
+                \colorlet{tipColor}{applicationColor}
+                \colorlet{reminderColor}{codeColor}
+                \colorlet{summaryColor}{remarkColor}
+                \colorlet{toolboxColor}{alternateColor}
+            \else\ifx\neoschool at theme\neo at spring
+                    \colorlet{noteColor}{methodColor}
+                    \colorlet{infoColor}{theoremColor}
+                    \colorlet{warningColor}{applicationColor}
+                    \colorlet{importantColor}{titleColor}
+                    \colorlet{tipColor}{definitionColor}
+                    \colorlet{reminderColor}{codeColor}
+                    \colorlet{summaryColor}{remarkColor}
+                    \colorlet{toolboxColor}{alternateColor}
+                \else\ifx\neoschool at theme\neo at arbutus
+                        \colorlet{noteColor}{codeColor}
+                        \colorlet{infoColor}{titleColor}
+                        \colorlet{warningColor}{methodColor}
+                        \colorlet{importantColor}{theoremColor}
+                        \colorlet{tipColor}{applicationColor}
+                        \colorlet{reminderColor}{definitionColor}
+                        \colorlet{summaryColor}{remarkColor}
+                        \colorlet{toolboxColor}{alternateColor}
+                    \else\ifx\neoschool at theme\neo at duo
+                            \colorlet{noteColor}{titleColor}
+                            \colorlet{infoColor}{applicationColor}
+                            \colorlet{warningColor}{theoremColor}
+                            \colorlet{importantColor}{methodColor}
+                            \colorlet{tipColor}{definitionColor}
+                            \colorlet{reminderColor}{codeColor}
+                            \colorlet{summaryColor}{remarkColor}
+                            \colorlet{toolboxColor}{alternateColor}
+                        \else\ifx\neoschool at theme\neo at navy
+                                \colorlet{noteColor}{titleColor}
+                                \colorlet{infoColor}{definitionColor}
+                                \colorlet{warningColor}{methodColor}
+                                \colorlet{importantColor}{theoremColor}
+                                \colorlet{tipColor}{applicationColor}
+                                \colorlet{reminderColor}{codeColor}
+                                \colorlet{summaryColor}{remarkColor}
+                                \colorlet{toolboxColor}{alternateColor}
+                            \else\ifx\neoschool at theme\neo at royal
+                                    \colorlet{noteColor}{titleColor}
+                                    \colorlet{infoColor}{definitionColor}
+                                    \colorlet{warningColor}{methodColor}
+                                    \colorlet{importantColor}{theoremColor}
+                                    \colorlet{tipColor}{applicationColor}
+                                    \colorlet{reminderColor}{codeColor}
+                                    \colorlet{summaryColor}{remarkColor}
+                                    \colorlet{toolboxColor}{alternateColor}
+                                \fi\fi\fi\fi\fi\fi\fi\fi\fi
+
+%% Multilingual Support
+\newcommand{\neo at admonition@note}{%
+    \ifneo at french
+        Note%
+    \else\ifneo at german
+            Notiz%
+        \else
+            Note%
+        \fi\fi
+}
+
+\newcommand{\neo at admonition@info}{%
+    \ifneo at french
+        Information%
+    \else\ifneo at german
+            Information%
+        \else
+            Information%
+        \fi\fi
+}
+
+\newcommand{\neo at admonition@warning}{%
+    \ifneo at french
+        Attention%
+    \else\ifneo at german
+            Achtung%
+        \else
+            Warning%
+        \fi\fi
+}
+
+\newcommand{\neo at admonition@important}{%
+    \ifneo at french
+        Important%
+    \else\ifneo at german
+            Wichtig%
+        \else
+            Important%
+        \fi\fi
+}
+
+\newcommand{\neo at admonition@tip}{%
+    \ifneo at french
+        Conseil%
+    \else\ifneo at german
+            Tipp%
+        \else
+            Tip%
+        \fi\fi
+}
+
+\newcommand{\neo at admonition@reminder}{%
+    \ifneo at french
+        À retenir%
+    \else\ifneo at german
+            Merken%
+        \else
+            Remember%
+        \fi\fi
+}
+
+\newcommand{\neo at admonition@summary}{%
+    \ifneo at french
+        Résumé%
+    \else\ifneo at german
+            Zusammenfassung%
+        \else
+            Summary%
+        \fi\fi
+}
+
+\newcommand{\neo at admonition@toolbox}{%
+    \ifneo at french
+        Boîte à outils%
+    \else\ifneo at german
+            Werkzeugkasten%
+        \else
+            Toolbox%
+        \fi\fi
+}
+
+%% Base Style Configuration
+\newtcolorbox{admonitionbase}[4][]{%
+    enhanced,
+    before skip=0.5\baselineskip,
+    after skip=.5\baselineskip,
+    colback=#2!5,
+    colframe=#2,
+    boxrule=1pt,
+    frame style={opacity=0.5},
+    \neo at framehidden,
+    arc=2pt,
+    left=10pt,
+    right=5pt,
+    top=3pt,
+    bottom=3pt,
+    breakable,
+    fonttitle=\sffamily\bfseries,
+    title={%
+        \hspace*{-2mm}%
+        \raisebox{-2pt}{\textcolor{#2}{\Large#3}}%
+        \hspace{5pt}%
+        \textcolor{#2}{\textbf{#4}}%
+    },
+    attach title to upper,
+    after title={\par\vspace{0.5em}},
+    #1
+}
+
+% Note Box
+\NewDocumentEnvironment{note}{O{\neo at admonition@note} O{\faEdit} +b}{%
+    \begin{admonitionbase}{noteColor}{#2}{#1}%
+        #3%
+    \end{admonitionbase}%
+}{}
+
+% Info Box
+\NewDocumentEnvironment{info}{O{\neo at admonition@info} O{\faInfoCircle} +b}{%
+    \begin{admonitionbase}{infoColor}{#2}{#1}%
+        #3%
+    \end{admonitionbase}%
+}{}
+
+% Warning Box
+\@ifundefined{warning}{%
+    \NewDocumentEnvironment{warning}{O{\neo at admonition@warning} O{\faExclamationTriangle} +b}{%
+        \begin{admonitionbase}{warningColor}{#2}{#1}%
+            #3%
+        \end{admonitionbase}%
+    }{}
+}{}
+
+% Important Box
+\NewDocumentEnvironment{important}{O{\neo at admonition@important} O{\faExclamationCircle} +b}{%
+    \begin{admonitionbase}{importantColor}{#2}{#1}%
+        #3%
+    \end{admonitionbase}%
+}{}
+
+% Tip Box
+\NewDocumentEnvironment{tip}{O{\neo at admonition@tip} O{\faLightbulb} +b}{%
+    \begin{admonitionbase}{tipColor}{#2}{#1}%
+        #3%
+    \end{admonitionbase}%
+}{}
+
+% Reminder Box
+\NewDocumentEnvironment{reminder}{O{\neo at admonition@reminder} O{\faBookmark} +b}{%
+    \begin{admonitionbase}{reminderColor}{#2}{#1}%
+        #3%
+    \end{admonitionbase}%
+}{}
+
+% Summary Box
+\NewDocumentEnvironment{summary}{O{\neo at admonition@summary} O{\faClipboardList} +b}{%
+    \begin{admonitionbase}{summaryColor}{#2}{#1}%
+        #3%
+    \end{admonitionbase}%
+}{}
+
+% Toolbox Box
+\NewDocumentEnvironment{toolbox}{O{\neo at admonition@toolbox} O{\faTools} +b}{%
+    \begin{admonitionbase}{toolboxColor}{#2}{#1}%
+        #3%
+    \end{admonitionbase}%
+}{}
+
+%% ==============================================================================
+%% Compact Mode Adjustments
+%% ==============================================================================
+
+\ifneo at compact
+
+    \neo at fullheaderfalse
+
+    \PassOptionsToPackage{singlespacing}{setspace}
+
+    \renewcommand{\arraystretch}{1.05}
+
+    \settasks{%
+        item-indent=2em,
+        column-sep=0.5em,
+        label-width=12pt,
+        label-offset=0.3em,
+        before-skip=0pt,
+        after-skip=0pt,
+        after-item-skip=0pt
+    }
+
+    \AtBeginDocument{
+        \setlength{\abovedisplayskip}{3pt}
+        \setlength{\belowdisplayskip}{3pt}
+        \setlength{\abovedisplayshortskip}{0pt}
+        \setlength{\belowdisplayshortskip}{0pt}
+    }
+
+    \setlength{\parindent}{1em}
+    \setlength{\parskip}{0pt plus 0.1pt}
+
+    \tcbset{
+        before skip=0.5\baselineskip,
+        after skip=0.5\baselineskip,
+    }
+
+    \RedeclareSectionCommand[
+        % beforeskip=-0.25\baselineskip,
+        afterskip=0.5\baselineskip
+    ]{section}
+
+    \RedeclareSectionCommand[
+        % beforeskip=-0.25\baselineskip,
+        afterskip=0.5\baselineskip
+    ]{subsection}
+
+    \setlength{\floatsep}{5pt plus 2pt minus 2pt}
+    \setlength{\textfloatsep}{5pt plus 2pt minus 2pt}
+    \setlength{\intextsep}{5pt plus 2pt minus 2pt}
+
+    \tcbset{
+        neo at shared@base/.style args={#1}{
+                common at base,
+                colframe=#1,
+                colback=\neo at getbackcolor,
+                boxrule=\neo at thmborder,
+                \neo at getframestyle,
+                before skip=0.5\baselineskip,
+                after skip=0.5\baselineskip,
+                top=3pt,
+                bottom=3pt,
+                left=5pt,
+                right=5pt
+            }
+    }
+
+    \tcbset{
+        neo at commonbox/.style={
+                enhanced,
+                top=3pt,
+                bottom=3pt,
+                left=2mm,
+                right=2mm,
+                coltitle=white,
+                fonttitle=\small\sffamily,
+                before skip=0.5\baselineskip,
+                after skip=0.5\baselineskip
+            }
+    }
+
+    \setlength{\titlespacing}{0.8\baselineskip}
+
+    \renewcommand{\createfulltitle}{%
+    \ifx\@subject\@empty\else
+        {\usekomafont{subject}{\@subject\par}}
+        \vspace{0.5\titlespacing}
+    \fi
+
+    {\noindent\usekomafont{title}{\@title\par}}
+
+    \ifx\@subtitle\@empty\else
+        \vspace{0.5\titlespacing}
+        {\noindent\usekomafont{subtitle}{\@subtitle\par}}
+    \fi
+
+    \ifx\@author\@empty\else
+        \vspace{0.5\titlespacing}
+        {\noindent\usekomafont{author}{\@author\par}}
+    \fi
+
+    \neo at titledecoration
+    \if at twocolumn\vspace{\titlespacing}\else\vspace{0.5\titlespacing}\fi
+    }
+
+    \renewcommand{\neo at titledecoration}{%
+        \ifneo at titlerule
+            \vspace{0.75\titlespacing}%
+            {\color{\neoschool at titlecolor}\rule{4em}{0.4pt}}
+        \else
+            \ifneo at titlemidrule
+                \vspace{0.75\titlespacing}%
+                {\color{\neoschool at titlecolor}\rule{0.4\linewidth}{0.4pt}}
+            \else
+                \ifneo at titlefullrule
+                    \vspace{0.75\titlespacing}%
+                    {\color{\neoschool at titlecolor}\rule{\linewidth}{0.4pt}}%
+                    \vspace{-0.5\titlespacing}%
+                \else
+                    \ifneo at titleornament
+                        \vspace{0.75\titlespacing}%
+                        {\color{\neoschool at titlecolor}\scalebox{1.5}[1.2]{\adforn{21}\,\adforn{11}\,\adforn{49}}}
+                    \fi
+                \fi
+            \fi
+        \fi
+        \vspace*{.1\baselineskip}
+    }
+
+\fi
+
+%% ==============================================================================
+%% End of Class
+%% ==============================================================================


Property changes on: trunk/Master/texmf-dist/tex/latex/neoschool/neoschool.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2025-01-08 21:11:53 UTC (rev 73373)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2025-01-08 21:13:05 UTC (rev 73374)
@@ -615,7 +615,7 @@
     navigator navydocs
     ncclatex ncctools nchairx ncntrsbk
     nddiss ndsu-thesis ndsu-thesis-2022
-    needspace nestquot neuralnetwork nevelok
+    needspace neoschool nestquot neuralnetwork nevelok
     newcastle-bst newcommand newcomputermodern newenviron newfile newfloat
     newlfm newpax newpx
     newsletr newspaper

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2025-01-08 21:11:53 UTC (rev 73373)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2025-01-08 21:13:05 UTC (rev 73374)
@@ -1846,6 +1846,7 @@
  'mptopdf'		=> '&POSTmptopdf',
  'musixtex'		=> '&POSTmusixtex',
  'musixtnt'		=> '&POSTmusixtnt',
+ 'neoschool'		=> '&POST_onelevel',
  'niceframe'		=> '&POST_rmsymlink',
  'nodepthtext'		=> '&POST_onelevel',
  'non-decimal-units'	=> '&POST_onelevel',

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2025-01-08 21:11:53 UTC (rev 73373)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2025-01-08 21:13:05 UTC (rev 73374)
@@ -993,6 +993,7 @@
 depend ncclatex
 depend ncctools
 depend needspace
+depend neoschool
 depend nestquot
 depend newcommand
 depend newenviron

Added: trunk/Master/tlpkg/tlpsrc/neoschool.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.