\usepackage{color}
\usepackage{xcolor}
\usepackage{xspace}
\usepackage{array}
\usepackage{stackengine}

%==============================
% global theme
\usetheme[]{PaloAlto}
\usecolortheme[]{frigatebird}
% % • hideallsubsections causes only sections to be shown in the sidebar. This is useful, if you need to save space.
% % • hideothersubsections causes only the subsections of the current section to be shown. This is useful, if you need to save space.
% % • left puts the sidebar on the left (default).
% % • right puts the sidebar on the right.
% % • width=⟨dimension⟩ sets the width of the sidebar. If set to zero, no sidebar is created.
\useoutertheme[left,width=50pt]{sidebarwithminiframes}
\beamer@headheight = 1.25\baselineskip

\setbeamertemplate{title page}[default][colsep=-4bp,rounded=false,shadow=false,left]
\setbeamertemplate{blocks}[rounded][shadow=false]
\newcommand\xrowht[2][0]{\addstackgap[.5\dimexpr#2\relax]{\vphantom{#1}}}

%==============================
% Page numbers
\addtobeamertemplate{footline}
{%
   \usebeamercolor[fg]{author in sidebar}
   \vskip-1cm\hskip10pt
   \insertframenumber\,/\,\inserttotalframenumber\kern1em\vskip2pt%
}

%==============================
% Colors
\definecolor{colbg}{HTML}{282828}

\setbeamercolor{palette primary}{bg=colbg}
\setbeamercolor{palette tertiary}{fg=red}

%==============================
% Fix bullet points
\setbeamertemplate{itemize items}[default]
\setbeamertemplate{enumerate items}[default]

%==============================
% cfa macros used in the document
\newcommand{\CFAIcon}{\textsf{C}\raisebox{\depth}{\rotatebox{180}{\textsf{A}}}\xspace} % Cforall symbolic name
\newcommand{\CFA}{\protect\CFAIcon}		% safe for section/caption

%==============================
% add option to disable miniframes
\makeatletter
\let\beamer@writeslidentry@miniframeson=\beamer@writeslidentry
\def\beamer@writeslidentry@miniframesoff{%
  \expandafter\beamer@ifempty\expandafter{\beamer@framestartpage}{}% does not happen normally
  {%else
    \clearpage\beamer@notesactions%
  }
}
\newcommand*{\miniframeson}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframeson}
\newcommand*{\miniframesoff}{\let\beamer@writeslidentry=\beamer@writeslidentry@miniframesoff}
\makeatother
