/*
:filename: wexa_statics/css/wexa.css
:author: Brigitte Bigi
:contact: contact@sppas.org
:summary: a CSS framework to make nice accessible web content

-------------------------------------------------------------------------

This file is part of Whakerexa: https://whakerexa.sf.net/

Copyright (C) 2023-2024 Brigitte Bigi, CNRS
Laboratoire Parole et Langage, Aix-en-Provence, France

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

This banner notice must not be removed.

-------------------------------------------------------------------------

*/

/* =======================================================================
                              FONTS DEFINITIONS

  See here: https://v-fonts.com/licenses/open-source for a list of open
  source variable fonts.

  Most of the time, the font size is calculated with the global --font-size
  variable. For example, this CSS is defining:
        font-size: calc(1.7 * var(--font-size));
  because when using "font-size: 1.7rem;" instead, the size of the font is
  not changed when switching to the contrast view.

  ======================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Commissioner:wght@100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Noto+Sans+Mono:wght@100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900');

@font-face {
    font-family: SansFont;
    src: url('../fonts/Commissioner.ttf') format('truetype');
}

@font-face {
    font-family: SerifFont;
    src: url('../fonts/SourceSerifPro.ttf') format('truetype');
}

@font-face {
    font-family: MonoFont;
    src: url('../fonts/FiraCode.ttf') format('truetype');
}

@font-face {
    font-family: PreFont;
    src: url('../fonts/NotoSansMono.ttf') format('truetype');
}

@font-face {
    font-family: ContrastFont;
    src: url("../fonts/AccessibleDfA-Regular.woff2");
    font-style: normal;
    font-weight: normal;
}

@font-face {
    font-family: ContrastFont;
    src: url("../fonts/AccessibleDfA-Italic.woff2");
    font-weight: normal;
    font-style: italic;
}

@font-face {
    font-family: ContrastFont;
    src: url("../fonts/AccessibleDfA-Bold.woff2");
    font-style: normal;
    font-weight: bold;
}

/* =======================================================================
                              OTHER DEFINITIONS
  ========================================================================
 */

@keyframes slideInFromLeft {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(0);
    }
}
@keyframes slideInFromRight {
    0% {
        transform: translateX(100%);
    }
    100% {
        transform: translateX(0);
    }
}
@keyframes slideInFromTop {
    0% {
        transform: translateY(-100%);
    }
    100% {
        transform: translateX(0);
    }
}
@keyframes slideInFromBottom {
    0% {
        transform: translateY(100%);
    }
    100% {
        transform: translateX(0);
    }
}
@keyframes animDisabled {
    100% {
        transform: none;
    }
}

@keyframes fadeIn {
    0% {
        opacity: 0;
        transform: scaleY(0);
        display: none;
    }

    100% {
        opacity: 1;
        transform: scaleY(1);
        display: block;
    }
}

@keyframes fadeOut {
    0% {
        opacity: 1;
        transform: scaleY(1);
    }
    100% {
        opacity: 0;
        transform: scaleY(0);
    }
}

@keyframes animprogress {
    from { background-color: var(--progress-bg-color); }
    to { background-color: var(--footer-bg-color); }
}

/* =======================================================================
                            VARIABLE DEFINITIONS
  ======================================================================== */

:root {
    --size-divisor: 1;
    --fontsize-divisor: 1;
}

@media screen and (max-width: 540px) {
    :root {
        --size-divisor: 2.75;
        --fontsize-divisor: 1.5;
    }
}

@media screen and (min-width: 540px) {
    :root {
        --size-divisor: 2.5;
        --fontsize-divisor: 1.25;
    }
}

@media screen and (min-width: 620px) {
    :root {
        --size-divisor: 1.75;
        --fontsize-divisor: 1.18;
    }
}

@media screen and (min-width: 768px) {
    :root {
        --size-divisor: 1.5;
        --fontsize-divisor: 1.1;
    }
}

@media screen and (min-width: 896px) {
    :root {
        --size-divisor: 1.25;
        --fontsize-divisor: 1.05;
    }
}

@media screen and (min-width: 1100px) {
    :root {
        --size-divisor: 1;
    }
}

@media screen and (min-width: 1200px) {
    :root {
        --size-divisor: 0.9;
        --fontsize-divisor: 0.95;
    }
}

@media screen and (min-width: 1400px) {
    :root {
        --size-divisor: 0.8;
        --fontsize-divisor: 0.9;
    }
}

@media screen and (min-width: 1600px) {
    :root {
        --size-divisor: 0.75;
        --fontsize-divisor: 0.85;
    }
}

/* All global variables for any screen or condition */
/* ------------------------------------------------ */

@media not print {
    :root {
        /* Sizes */
        --screen-width: calc(1024px / var(--size-divisor));
        /* Animations and transitions */
        --header-slidein: slideInFromBottom;
        --footer-slidein: animDisabled;
        --transition: 0.4s ease-in-out;
    }
}

@media print {
    :root {
        /* Sizes */
        --screen-width: 720px;
        /* Animations and transitions */
        --header-slidein: none;
        --footer-slidein: none;
        --transition: none;
    }
}

:root {
    /* Sizes */
    --header-height: 60vh;
    --footer-height: 20vh;

    /* Font definitions */
    --font-family-sans: SansFont, Commissioner, 'Verdana', sans-serif;
    --font-family-serif: SerifFont, 'Noto Serif', 'Times New Roman', serif;
    --font-family-mono: MonoFont, JetBrains, 'Courier New', monospace;
    --font-family-pre: PreFont, 'Noto Sans', monospace, 'Courier New';

    /* Pictures */
    --external-link-icon: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVIAAAFSCAYAAACg1VfvAAAAxXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjabVBbDsMgDPvnFDsCeQDhOHTtpN1gx58htGqrWsIxCZiQsP2+n/DqYNKgqViuOUdAq1ZuEBYdbTBFHTyQeCq65sNR6FEQxQuWPdKenxf2SA0qnYzsPQvLtVDVI9vNaD4kvSOGWKdRnUbCXqBp0PxbMVcr5y8sW7zCfIVOUob3YXLfa8H01oSkMG9CEsEi6g1IXxKkQdjgjIMkBRpHwQxD7wQDeZrTjvAH74JZJJMqBocAAAGEaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1u1VSod7CDikKE62cUvHGsVilAh1AqtOphc+iE0aUhSXBwF14KDH4tVBxdnXR1cBUHwA8TVxUnRRUr8X1JoEePBcT/e3XvcvQP8jQpTza4EoGqWkUklhVx+RQi+IoQeRNCLKYmZ+qwopuE5vu7h4+tdnGd5n/tz9CsFkwE+gTjBdMMiXiee3rR0zvvEUVaWFOJz4jGDLkj8yHXZ5TfOJYf9PDNqZDNzxFFiodTBcgezsqESTxLHFFWjfH/OZYXzFme1UmOte/IXhgva8hLXaQ4jhQUsQoQAGTVsoAILcVo1UkxkaD/p4R9y/CK5ZHJtgJFjHlWokBw/+B/87tYsToy7SeEk0P1i2x8jQHAXaNZt+/vYtpsnQOAZuNLa/moDmPkkvd7WYkdAZBu4uG5r8h5wuQMMPumSITlSgKa/WATez+ib8sDALdC36vbW2sfpA5ClrtI3wMEhMFqi7DWPd4c6e/v3TKu/H35FcqusUZcdAAAOXmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo2NTQzZDNlNy00N2U4LTRmZjEtYWNmNC05ZmFiYThkNDhmMjQiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YWQxNWFlNDgtYTU4ZC00Y2M4LTk2ODMtMGM3OTdlYWM0ZGNhIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OGJiMjkwNTAtZWY4My00ZjIwLWEwOTktZGI4OGI5MDY2NWRkIgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3JtPSJNYWMgT1MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjkxMzM0NjI3NTUzMTA1IgogICBHSU1QOlZlcnNpb249IjIuMTAuMzQiCiAgIGRjOkZvcm1hdD0iaW1hZ2UvcG5nIgogICB0aWZmOk9yaWVudGF0aW9uPSIxIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMzowODowNlQxNzoxMDoyNyswMjowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjM6MDg6MDZUMTc6MTA6MjcrMDI6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OTdjZjA5Yy02NzVlLTQ2OGQtYTU1ZC03YmQxNjQxMDJiYmYiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTWFjIE9TKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMy0wOC0wNVQxMDo1NDo1OSswMjowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OGRlZmEyYS0zOTg1LTRhNWEtOGI0OS01MzkzYzhmMDVjYjIiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTWFjIE9TKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMy0wOC0wNlQxNzoxMDoyNyswMjowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4O3yALAAAABmJLR0QA/QD/AP6tesRlAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5wgGDwobqVjz3AAAIABJREFUeNrtnUeQZOW5pp9Tvqs90EBjEhqE90aAQCCshBfiohuhuTF37mIWM72dhSJ6OYuMuavZZcREzNyJiZiJaxBOQGNagBAeCd/Cu67upr2pLp/uzOL7fs6ppExWVWZV5qn3icgo29VV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");
    --input-search-icon: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAwnpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjabVBbDsMwCPvnFDtCAjQlx0nXTtoNdvw5hUzNNlcx1EjmQcfr+aBbB2clXVYrtZQEaNXKDYklRzs5Jz15gEOddPoUGJIgiheseMxDH0YRc0O2XIzsHoVtLlSN9vZl5G2T9Il6vodRDSNhL+QwaL5WKtXW6wrbkWaYP+qkNo/987/ievuCPsJ8SJYEFlEfQPpTkoZEwFlwDrAhZ3xdGaviIP/uNEBv17ZZCEYJTBAAAAGDaUNDUElDQyBwcm9maWxlAAB4nH2RPUjDQBzFX1NF0YqIFUQcMlQnu6iIY61CESqEWqFVB5NLv6BJQ5Li4ii4Fhz8WKw6uDjr6uAqCIIfIM4OToouUuL/kkKLGA+O+/Hu3uPuHSDUy0yzOmKApttmKhEXM9lVsesVQfRiAEMQZWYZc5KUhO/4ukeAr3dRnuV/7s/Rp+YsBgRE4hgzTJt4g3hm0zY47xOHWVFWic+JJ0y6IPEj1xWP3zgXXBZ4ZthMp+aJw8RioY2VNmZFUyOeJo6omk75QsZjlfMWZ61cZc178heGcvrKMtdpjiKBRSxBgggFVZRQho0orTopFlK0H/fxj7h+iVwKuUpg5FhABRpk1w/+B7+7tfJTk15SKA50vjjOxxjQtQs0ao7zfew4jRMg+Axc6S1/pQ7MfpJea2mRI6B/G7i4bmnKHnC5Aww/GbIpu1KQppDPA+9n9E1ZYPAW6Fnzemvu4/QBSFNXyRvg4BAYL1D2us+7u9t7+/dMs78fb3dypWkh+sAAAA16aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOmMwZTdlYWFkLWJmYzEtNDQ5Yi1iYjEyLWI0NTBhODFlM2I3YyIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyMDhkM2EzYy1mYzcyLTRmN2MtYjBmOS1kOWY4MTJkM2U5ZWEiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpjNzc2YmE1NS1hMzBjLTQzZjgtOTZiZi0zYzZiYWEzNDA2YjgiCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09Ik1hYyBPUyIKICAgR0lNUDpUaW1lU3RhbXA9IjE3MTAxNzc3MzU4MjUwODYiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zNCIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIgogICB4bXA6TWV0YWRhdGFEYXRlPSIyMDI0OjAzOjExVDE4OjIyOjE1KzAxOjAwIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyNDowMzoxMVQxODoyMjoxNSswMTowMCI+CiAgIDx4bXBNTTpIaXN0b3J5PgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmYxNTY1Y2EzLTFiYjItNDBmMy1hZmY3LTkwM2MxMTg5MjI5OCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChNYWMgT1MpIgogICAgICBzdEV2dDp3aGVuPSIyMDI0LTAzLTExVDE4OjIyOjE1KzAxOjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICA8L3JkZjpEZXNjcmlwdGlvbj4KIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PmsvifIAAAAGYktHRAARAC0AZN6Jdb8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfoAwsRFg83oa+fAAAgAElEQVR42u3dd5hlRZnH8W/P9CSYAQTJSJJoIipykGDCAOrqoijqGhfFHApdcwRBXgNKUATBgMIqGVkFRVS8AkZABVEQEJAchgEm9HTvH3UGZmCY6el7b/e5t76f57kPPI/PLn3eU/fW71TVqQJJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkko0YAmk5TvwwAMHRkZGJgOT6u/NwMP+/dG+TyOL/XP44f+MiIVWV5IBQJogKaVJwLrABsD69WddYA3gscBMYDowtf5MqT+DdRCY9LBAsKijX9TZDwELHvaZW3/uAm4HbgNuXOxzQ0TM9u5IMgBIY+vcB4H16k59vbqT3wjYcLHP2g398+cC/wKuB66r/3l9HRBuAm6MiLu8y5IMACq1kx+on9JnAasA2wO7ABWwxVKe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");
    --checked-icon: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAw3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjabVBbEsMgCPznFD0CAjF6HPPoTG/Q43cVkkky3YwLsrhRaP9+3vTqkGRk01xyzZkBq1alISnsaIMT2+CBQ8L+VqdTEJQUUeNAjv6jnk4DDw3ZdDVaQ1juQrXwLw8j8aD9Rj3fwqiGkYoLKQyaP4tzLfP1CcvOdxRf1EnWaIvm595mTG+b8B8V2TUpg1XNL6B9GWlDYoMFjQlfzxlsWsIMA/k3pwP0AxKrWWSvqOq4AAABhGlDQ1BJQ0MgcHJvZmlsZQAAeJx9kT1Iw0AcxV/TSotUHOwg4pChOtlFRQWXWoUiVAi1QqsOJpd+QZOGJMXFUXAtOPixWHVwcdbVwVUQBD9AnB2cFF2kxP+lhRYxHhz34929x907QGhUmGYF4oCm22Y6mRCzuVUx+IoABIQwi2mZWcacJKXgOb7u4ePrXYxneZ/7c/SpeYsBPpE4zgzTJt4gntq0Dc77xBFWklXic+Ixky5I/Mh1pcVvnIsuCzwzYmbS88QRYrHYxUoXs5KpEU8SR1VNp3wh22KV8xZnrVJj7XvyF4bz+soy12kOI4lFLEGCCAU1lFGBjRitOikW0rSf8PAPuX6JXAq5ymDkWEAVGmTXD/4Hv7u1ChPjraRwAuh5cZyPESC4CzTrjvN97DjNE8D/DFzpHX+1Acx8kl7vaNEjoH8buLjuaMoecLkDDD4Zsim7kp+mUCgA72f0TTlg4BboXWv11t7H6QOQoa5SN8DBITBapOx1j3eHunv790y7vx/c7XLRbqffzwAADXppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6OGViNGE0OGYtZjkxMi00NTY3LTgzMWYtNDlmNTY5NDgzMWYyIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjgxYTVkMTEwLTJlZjEtNDUyYi05ZDFmLTRhMWI0MTRjMmIzNCIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmJhNmE1Mjc1LThlNjMtNGI2ZC1iMzI2LTRiNTNkZjUwNmU0ZiIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTWFjIE9TIgogICBHSU1QOlRpbWVTdGFtcD0iMTcxMjA0ODQ0OTc0NDkzMCIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjM0IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQ6MDQ6MDJUMTE6MDA6NDgrMDI6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDI0OjA0OjAyVDExOjAwOjQ4KzAyOjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YTNkMTI1NmMtOWFiYi00YjJiLTg4NGQtYTc4ZDFhMWVmODYyIgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKE1hYyBPUykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjQtMDQtMDJUMTE6MDA6NDkrMDI6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+tdDmQwAAAAZiS0dEADcAcQCih6kfSgAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+gEAgkAMTdFZrEAAAa1SURBVHja7Z17iBVVHMc/M+22u+66q66pmfmoIFNCQaN8lpElBpaEmSU9TYLogStCBFJSgf5hWaBJEUFQSmVYUSA+0Cyzh5aWZYma2rsEdVcpc6c/Zm5ctn3cO3Pm3jkz3w/8/r1z+H7PnDvn8fsdEEIIIYQQQgiRMmpqahzHcbpJiWwyEfgCeFVSZIsBwGrAy4tbJEvKcV23ElgANLcx3wOOAYOkUnoZC3zVjvH5sbmqqsqVVCnCcZzuwHKgtQvzPWAncI5USw/XA4cKML4VeNFxnBpJlo63vgF4uQDjPeAkMEeqpYfrCnzrPeAwMEaSpeOtrwWWFWi8B2wDzpNy6WAEsKcI81dr9S89zANOFWH+4vr6ekey2T/kNwLvFmH8aWCulEsH44r40POAFmCqZEsH84O3uVDzjwYdRlg+5NcBa4ow3gtGiWFSz36GAt8Vaf4BYLCks5/ptL9711l8i7/lK2yltrbWARZR2CZO2w2dPlLQ7v/72hD/9x6w3XGcnlLQbgYFb3Gx5m9zHKde8tnNGOCnEOZ/LPPt52b8BZtizf802P4VFtMU4mPPA3Y5jtNL8llKZWWlC6wIYbwHfA+cKxXt/dLvBrwT0vyDwECpaK/5vYCtIc0/DAyRivYyENgb0vyjwHBJaC8XAz+ENL8Z7epZP8f/I6T5fwHXSEJ7uZLiN3Tyz+zfLgntZQr+2XsvZDwoCe1lZjB8hzX/WUloL3cB/0Qwf1WPHj10etdS7iXc0m4utihPz17mRjR/n9b37eW+iOb/BlwgGe0134sQJ4HxkjGbw34rMFsyZvODzwMel4x2crcB81c1NDRoumchs4AzEc3frjRtO5kK/B3R/CMoecNKJhFtbT/3xa/SLBYylvC7evmh3T0LGY5/Iieq+UslpX0Mxj+LF9X89RUVFWdJTrvoA+wzYP5+rfFbRpCkuc2A+S3ASClqEa7rng1sMGC+B9wqRe3jJUPmPy0p7eMJQ+ZvCWr0C4uYY8j8H4H+ktMurib6Eq+HfxZwouS0i0uA44be/gWS0y764pdVM2H+Wslp11y/GthiyPz9qtaR3eneKWC05LSLeYbM94CHJKddTCb6iZ5crJGcdjEEM1u7HnBA//sdUF1d7eBXxBgR3F+XhI++WmC3IfNPA1fI6YAgmXEcsATY0WaIbQU+wC9+XE5WGfzff1Su89+dtHMo/OKitWUaNh82aP76uro6HecGbqT4Wva5kubnl7CdEzCzzOvhl3rJ/JVrfYG3Igq5D+hXgrb2wcyRrlxMy7r51wK/GBLzozhz4YO6++sMmr8y6+Y/QvR0qLbxQoztXWiwnXuDWUT2cBynisIvJA4TM2Jo9kSDnfU0cFlWza/F3Pm4zqpg9jPY5l4Ud7deV7Ewq+bXBfN3rwTxusGmv22wXZ+4rluR1Te/VObnYoqBpt9vsD0t+Ne2ZY/evXs7+MmQb8Tw4ddRfBPxIOVQzOTv5aJJSz0+I4DNJeoEoapjuq5bRbgLlzo81avVvv/zANHTo7uK30NegvSkwTY0AxfJ7vYZRfiy54XGY0W2aQzm9vc9/H0D0QkDCbcHUGgcKzSZMvhYNdmWrTU1NRr6C6A/ZjJnO4pFBbbjGYPPPJnZr/6QDMLPgollcaiAb4Hxhmco2uMPwVj8U7FxdIKmLob+vQaf9aVy+aLNDuLoAD93YsoSg89pRce6E7X82lVRpZFEq8ffNpbJvuj0w9xp2/zYmf+Q4MbNHQZ//0iw5yEMcGdMo8CkvGc0Gf7tm2SbIerr6x3M5drlx3uNjY0OfnXNEwZ/9/3gd4VBLjW8KpeLYcCbhuf8Wu6Niedj6ACfG57zq0x7jPQ1PFSbjgOq1N05UStatgDdSG6plHuAXbI5RoJl3D8T+PZvkDvxjwDg35rpkqyLj1uBG/Bv6BIlGAW6J2wUWCFXSjcCgJ+PV91mIadcHHccZ3ow/RMlHAV6JmRGoPJtZWRpmc0/pPt4y8sA/PSqcnWAO2RB+XmlTObv1hm/ZDC6TB1gmqRPDqVONftQkieLGSXuAFdJ8gRRVVXlYjZtu7PYJMWTyfwSdYDxkjq5C0PNMZu/UUonm+Uxd4AJkjjZDIvR/HWS1w42GTb+DPCUlnztYaZB878mq1W8bCVI+fpVb322WRzB/D3A5ZLQbi4kXCLnEr316WFjEeYfIBmni4RBZhdo/mshi0eJJBMkaHR2a+cJ4DYplW46ur/vs+A7QaScye2Y/1xws6dIO8GRrdwlFM3ALKmSPVYCB/HLv4gMMgpdxiSEEEIIUVb+BUAB4drkw8lFAAAAAElFTkSuQmCC");

    /* Focus & Hover */
    --outline-focus-style: outset;
    --outline-hover-style: inset;

    /* dialogs */
    --dialog-border-width: 2px;
    --dialog-border-radius: 4px;
    --dialog-box-shadow: -0.2rem 0.2rem 0.6rem 0.2rem rgba(128, 128, 128, 0.5);

}

/* Variables overridden by "contrast" */
:root:not(.contrast) {

    /* Font properties */
    /* CSS3 requires to choose 100 or 200. Intermediate values are not supported */
    --font-weight-thin: 200;
    --font-weight-semithin: 300;
    --font-weight-normal: 400;
    --font-weight-semibold: 500;
    --font-weight-bold: 600;
    --font-weight-black: 750;
    --font-size: calc(14px / var(--fontsize-divisor));
    --line-height: 1.2;
    --typography-spacing-vertical: calc(1.2 * 14px / var(--size-divisor));
    --typography-spacing-horizontal: calc(0.8 * 14px / var(--size-divisor));
    --letter-spacing: 0.04rem;
    --word-spacing: 0.06rem;

    /* Thin borders */
    --border-width: 1px;
    --border-radius: 2px;
    --table-border-width: 1px;
    --outline-size: 2px;
}

/* Re-define some global variables for disabilities */
.contrast {
    --header-slidein: animDisabled;
    --footer-slidein: animDisabled;

    /* Font properties (source: WCAG 2.1 - section 1.4.12 Text Spacing):
       - Line height (line spacing) to at least 1.5 times the font size;
       - Spacing following paragraphs to at least 2 times the font size;
       - Letter spacing (tracking) to at least 0.12 times the font size;
       - Word spacing to at least 0.16 times the font size.

    Conforming to this criteria provides accommodation for people to modify
    their text styles according to their needs. */

    --font-family-sans: ContrastFont, SansFont, 'Verdana', sans-serif;
    --font-weight-thin: 300;
    --font-weight-semithin: 400;
    --font-weight-normal: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 750;
    --font-weight-black: 800;
    --line-height: 1.5;
    --letter-spacing: 0.12rem;
    --word-spacing: 0.16rem;

    /* Larger borders */
    --border-width: 2px;
    --border-radius: 4px;
    --table-border-width: 2px;
    --outline-size: 3px;
}

/* ------------------------------------------------ */
/*      COLORS: Default color scheme is light       */
/* ------------------------------------------------ */

:root:not([data-theme=dark]), [data-theme=light], .light {
    /* Main colors */
    --bg-color: rgb(250, 250, 252);
    --bg-color-alt: rgb(240, 240, 240);
    --fg-color: rgb(0, 5, 10);
    --fg-color-alt: rgb(28, 28, 28);
    --border-color: rgb(60, 60, 90);
    --border-color-alt: rgba(28, 28, 28, 0.5);
    --outline-color: rgba(0, 191, 255, 0.8);

    /* Background colors */
    --header-bg-color: radial-gradient(circle, rgba(14, 18, 48, 0.9), rgb(24, 28, 38));
    --nav-bg-color: rgba(14, 18, 48, 0.7);
    --footer-bg-color: rgb(24, 28, 38);
    --buttons-bg-color: rgb(225, 225, 220);
    --progress-bg-color: rgb(49, 47, 85);
    --mark-bg-color: rgba(255, 250, 100, 0.5);
    --inputs-bg-color: rgba(225, 225, 220, 0.5);

    /* Foreground colors */
    --header-fg-color: rgb(241, 241, 245);
    --nav-fg-color: rgb(231, 231, 235);
    --footer-fg-color: rgb(241, 241, 245);
    --progress-fg-color: rgb(20, 25, 30);
    --buttons-fg-color: rgb(20, 25, 30);
    --mark-fg-color: rgb(20, 25, 30);
    --h1-color: rgb(20, 25, 30);
    --h2-color: rgb(30, 35, 45);
    --h3-color: rgb(40, 45, 60);
    --h4-color: rgb(40, 45, 60);
    --h5-color: rgb(50, 55, 75);
    --h6-color: rgb(60, 65, 90);

    /* Table colors */
    --table-border-color: rgba(110, 120, 140, 0.5);
    --table-row-stripped-bg-color: rgba(210, 212, 222, 0.4);
    --table-head-bg-color: rgb(204, 202, 212);
    --table-head-fg-color: rgb(14, 12, 22);
    --table-caption-bg-color: rgba(110, 120, 140, 0.5);
    --table-caption-fg-color: rgb(14, 12, 22);

    /* Other colors */
    --a-color: rgb(0, 120, 200);
    --ins-color: rgba(20, 200, 20, 0.8);
    --del-color: rgba(240, 40, 40, 0.8);
    --s-color: rgb(100, 100, 100);
    --blockquote-border-color: rgb(80, 25, 40);
    --blockquote-footer-color: rgb(80, 25, 40);
    --li-color: rgb(140, 40, 40);
    --shadow-color: rgba(110, 120, 140, 0.8);

    /* Alerts */
    --question-color: rgb(180, 80, 220);
    --question-bg-color: rgb(255, 210, 255);
    --tips-color: rgb(220, 180, 80);
    --tips-bg-color: rgb(240, 230, 210);
    --success-color: rgb(0, 150, 0);
    --success-bg-color: rgb(220, 255, 220);
    --error-color: rgb(200, 40, 10);
    --error-bg-color: rgb(255, 220, 220);
    --warning-color: rgb(255, 100, 20);
    --warning-bg-color: rgb(250, 215, 190);
    --info-color: rgb(40, 40, 200);
    --info-bg-color: rgb(220, 220, 255);
}

/*
@media screen,handheld,projection,tv,tty
or (prefers-color-scheme: dark)
*/
@media not print {
    .dark {
        /* Main colors */
        --bg-color: rgb(24, 28, 38);
        --bg-color-alt: rgb(38, 42, 54);
        --fg-color: rgb(255, 255, 255);
        --fg-color-alt: rgb(255, 255, 255);
        --border-color: rgb(228, 228, 228);
        --border-color-alt: rgba(228, 228, 228, 0.5);
        --outline-color: rgba(0, 191, 255, 0.8);

        /* Background colors */
        --header-bg-color: radial-gradient(circle, rgb(167, 187, 207), rgba(167, 187, 207, 0.7));
        --nav-bg-color: rgba(167, 187, 207, 0.7);
        --footer-bg-color: rgb(167, 187, 207);
        --buttons-bg-color: rgb(80, 80, 70);
        --progress-bg-color: rgb(67, 77, 97);
        --inputs-bg-color: rgba(80, 80, 70, 0.5);

        /* Foreground colors */
        --header-fg-color: rgb(41, 41, 45);
        --nav-fg-color: rgb(31, 31, 35);
        --footer-fg-color: rgb(41, 41, 45);
        --buttons-fg-color: rgb(225, 225, 215);
        --progress-fg-color: rgb(226, 226, 248);
        --h1-color: rgb(190, 204, 255);
        --h2-color: rgb(190, 204, 223);
        --h3-color: rgb(174, 190, 208);
        --h4-color: rgb(174, 190, 208);
        --h5-color: rgb(170, 180, 208);
        --h6-color: rgb(180, 190, 218);

        /* Table colors */
        --table-border-color: rgba(110, 120, 140, 0.5);
        --table-row-stripped-bg-color: rgb(42, 46, 59);
        --table-head-bg-color: rgb(8, 16, 10);
        --table-head-fg-color: rgb(204, 202, 212);
        --table-caption-bg-color: rgba(110, 120, 140, 0.5);
        --table-caption-fg-color: rgb(204, 202, 212);

        /* Other colors */
        --a-color: rgb(25, 195, 255);
        --s-color: rgb(180, 180, 180);
        --blockquote-border-color: rgb(200, 180, 200);
        --blockquote-footer-color: rgb(200, 180, 200);

        /* Alerts */
        --question-color: rgb(215, 115, 255);
        --question-bg-color: rgb(60, 0, 100);
        --tips-color: rgb(255, 215, 115);
        --tips-bg-color: rgb(110, 80, 0);
        --success-color: rgb(35, 185, 35);
        --success-bg-color: rgb(0, 80, 20);
        --error-color: rgb(235, 85, 55);
        --error-bg-color: rgb(80, 0, 0);
        --warning-color: rgb(255, 140, 60);
        --warning-bg-color: rgb(80, 20, 20);
        --info-color: rgb(110, 110, 255);
        --info-bg-color: rgb(0, 0, 80);
    }
}

/* Increase the bg/fg contrast of some colors in the default mode */
.contrast:not(.dark) {
    --a-color: rgb(10, 80, 120);
}

/* Font properties for a local context usage */
/* ----------------------------------------- */

.font-sans {
    font-family: var(--font-family-sans);
}

.font-serif {
    font-family: var(--font-family-serif);
}

.font-mono {
    font-family: var(--font-family-mono);
}

.font-pre {
    font-family: var(--font-family-pre);
}

.font-weight-thin {
    font-weight: var(--font-weight-thin);
}

.font-weight-normal {
    font-weight: var(--font-weight-normal);
}

.font-weight-semibold {
    font-weight: var(--font-weight-semibold);
}

.font-weight-bold {
    font-weight: var(--font-weight-bold);
}

.font-weight-black {
    font-weight: var(--font-weight-black);
}


/* =======================================================================
                       ACCESSIBILITY SPECIFIC STYLING
  ======================================================================== */

:is(a, video, input, area, select, button, input, textarea, summary) {
    --outline-offset: 0;
}

:is(a, video, input, area, select, button, input, textarea, summary):focus {
    outline: var(--outline-size) var(--outline-focus-style) var(--outline-color);
    outline-offset: var(--outline-offset, var(--outline-size));
}

:is(a, video, input, area, select, button, input, textarea, summary):focus-visible {
    outline: var(--outline-size) var(--outline-focus-style) var(--outline-color);
    outline-offset: var(--outline-offset, var(--outline-size));
}

:is(a, video, input, area, select, button, input, textarea, summary):focus:not(:focus-visible) {
    outline: none;
}

:is(a, video, input, area, select, button, input, textarea, summary):hover {
    outline: var(--outline-size) var(--outline-hover-style) var(--outline-color);
    outline-offset: var(--outline-offset, var(--outline-size));
    transition: none;
}


/* =======================================================================
                            HTML PAGE STYLING
  ======================================================================== */

* {
    margin: 0;
    padding: 0;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;

    background-color: var(--bg-color);
    color: var(--fg-color);

    font-size: var(--font-size);
    font-family: var(--font-family-sans);
    font-weight: var(--font-weight-normal);
    line-height: var(--line-height);
    letter-spacing: var(--letter-spacing) !important;
    word-spacing: var(--word-spacing) !important;
}

*, *:before, *:after {
    box-sizing: inherit;
}

*, ::after, ::before {
    box-sizing: border-box;
    background-repeat: no-repeat
}

*:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

*[aria-disabled=true] {
    opacity: 0.4;
    cursor: not-allowed;
    overflow: unset;
}

*[aria-disabled=true],
*[aria-disabled=true]:focus {
    opacity: 0.4;
    cursor: not-allowed;
}

::after, ::before {
    text-decoration: inherit;
    vertical-align: inherit
}

html {
    height: 100%;
    margin: auto;
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
    overflow-x: hidden;
    overflow-y: scroll !important;

    /* The HTML background must be the same as the one of the body element
     even when switching the whole document to "dark" color theme. Turn it
     into transparent is an easy path to that! */
    background-color: rgba(255, 255, 255, 0);
}

body {
    margin: 0 auto;
    width: var(--screen-width);
    position: relative;
    cursor: default;

    background-color: var(--bg-color);
    background-clip: content-box;
    transition: all var(--border-color) 0.3s;
    transition-duration: 0.4s;

    -webkit-tap-highlight-color: transparent;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;

    text-rendering: optimizeLegibility;
    overflow-wrap: break-word;

    -moz-tab-size: 4;
    tab-size: 4;
    flex-direction: column;
}


/* =======================================================================
                     HTML DOCUMENT STRUCTURE
   ======================================================================= */

header {
    color: var(--header-fg-color);
    background: var(--header-bg-color);
}

nav {
    color: var(--nav-fg-color);
    background: var(--nav-bg-color);
}

footer {
    background: var(--footer-bg-color);
    color: var(--footer-fg-color);
}

body > header {
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: none;
    margin: auto;
    text-align: center;
    min-height: var(--header-height);
    padding-bottom: var(--typography-spacing-vertical);
    animation: 1s ease-out 0s 1 var(--header-slidein);
}

body > header > nav {
    position: absolute;
    top: 2rem;
    right: 2.5rem;
}

/* Always visible navigation bar */
body > nav {
    z-index: 10;
    color: inherit;
    position: -webkit-sticky;  /* Safari */
    position: sticky;   /* is positioned based on the user's scroll position */
    top: 0;
    margin: auto;
    overflow: unset;
    /* box-shadow: [h-offset] [v-offset] [blur-radius] [spread-radius] [color]; */
    box-shadow: 0 0.3rem 0.4rem 0.2rem var(--shadow-color);
}

body > main {
    z-index: 1;
    /*background-color: var(--bg-color);*/
    margin-top: var(--typography-spacing-vertical);
    margin-bottom: var(--typography-spacing-vertical);
}

body > footer {
    z-index: 10;
    text-align: center;
    margin: auto;
    padding-top: var(--typography-spacing-vertical);
    min-height: var(--footer-height);
    animation: 1s ease-out 0s 1 var(--footer-slidein);
}

/* Elements inside */
/* All elements in any header/footer/nav must have same colors than the parent.
It also means that links won't be blue! */

header *, body > header * {
    color: var(--header-fg-color);
    background-color: transparent;
}

nav *, body > nav * {
    color: var(--nav-fg-color);
    background-color: transparent;
}

footer *, body > footer * {
    color: var(--footer-fg-color);
    background-color: transparent;
}

body > header > *,  body > footer > * {
    z-index: 1;
    text-align: center;
    padding-top: var(--typography-spacing-vertical);
}



/* =======================================================================
                       HTML ELEMENTS STYLING
  ======================================================================== */

/* -------------------------------- menu --------------------------------- */

nav {
    text-align: center;
    margin: auto;
    padding-left: var(--typography-spacing-horizontal);
    padding-right: var(--typography-spacing-horizontal);
    min-height: calc(4rem / var(--size-divisor));
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    flex-wrap: wrap;
    row-gap: calc(1rem / var(--size-divisor));
    column-gap: calc(1rem / var(--size-divisor));
}

nav * {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    flex-direction: row;
    row-gap: 0.3rem;
    column-gap: 0.3rem;
}

nav ul, nav dl {
    list-style: none;
    margin: 0;
    text-align: center;
}

nav li, nav dt, nav dd, nav a {
    padding: calc(var(--typography-spacing-horizontal) * 0.35) calc(var(--typography-spacing-vertical) * 0.35);
    margin: 0;
}

[role=menuitem] {
    text-decoration: none;
}

/* ---------------------------- section/article ------------------------------ */

main > section,
main > * section {
    padding-top: var(--typography-spacing-vertical);
    padding-bottom: var(--typography-spacing-vertical);
    padding-left: var(--typography-spacing-horizontal);
    padding-right: var(--typography-spacing-horizontal);
}

/* ---------------------------- Head titles ------------------------------ */

h1, h2, h3, h4, h5, h6 {
    margin-top: var(--typography-spacing-vertical);
    margin-bottom: var(--typography-spacing-vertical);
    font: var(--font-family-sans);
}

h1 {
    color: var(--h1-color);
    font-weight: var(--font-weight-bold);
    letter-spacing: calc(4*var(--letter-spacing));
}

body > header > h1,
body > footer > h1,
body > footer > * h1
{
    font-size: calc(3 * var(--font-size));
}

body > main > h1,
body > main > * h1
{
    font-size: calc(2.25*var(--font-size));
    line-height: calc(2.25*var(--typography-spacing-vertical));
    padding-bottom: calc(1.5 * var(--typography-spacing-vertical));
}

h2 {
    color: var(--h2-color);
    font-weight: var(--font-weight-bold);
    letter-spacing: calc(3*var(--letter-spacing));
}

body > main > h2,
body > main > * h2 {
    font-size: calc(1.8 * var(--font-size));
    line-height: calc(1.8 * var(--typography-spacing-vertical));
    padding-bottom: var(--typography-spacing-vertical);
    position: relative;
}

body > header > h2,
body > footer > h2
{
    font-size: calc(1.8 * var(--font-size));
}

h3 {
    font-size: calc(1.5 * var(--font-size));
    line-height: calc(1.5 * var(--typography-spacing-vertical));
    font-weight: var(--font-weight-semibold);
    color: var(--h3-color);
    letter-spacing: calc(2*var(--letter-spacing));
}

h4 {
    font-size: calc(1.3 * var(--font-size));
    letter-spacing: calc(1.4*var(--letter-spacing));
    color: var(--h4-color);
    font-weight: var(--font-weight-semibold);
}

h5 {
    font-size: calc(1.1 * var(--font-size));
    letter-spacing: calc(1.2*var(--letter-spacing));
    color: var(--h5-color);
}

h6 {
    font-style: italic;
    color: var(--h6-color);
}

/* ---------------------- Text & inline text ----------------------------- */

p {
    font: inherit;
    padding-bottom: var(--typography-spacing-vertical) !important;
    display: block;
}

b {
    font: inherit;
    font-weight: var(--font-weight-bold);
}

strong {
    font: inherit;
    font-weight: var(--font-weight-black);
}

mark {
    font: inherit;
    border-radius: 0.2rem;
    background: var(--mark-bg-color);
    color: var(--mark-fg-color);
    padding: 0.1rem;
}

small {
    font: inherit;
    font-size: calc(0.8 * var(--font-size));
}

sub, sup {
    font: inherit;
    font-size: calc(0.75 * var(--font-size));
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sub {
    bottom: -0.25em
}

sup {
    top: -0.5em
}

code, kbd, samp, var, output {
    font-family: var(--font-family-mono);
    font-size: calc(0.9 * var(--font-size));
}

kbd {
    border: 1px solid var(--border-color);
    border-radius: 3px;
    font-weight: bolder;
    border-bottom: 2px solid var(--border-color);
}

code {
    background: var(--table-row-stripped-bg-color);
    border-radius: 0.2rem;
    display: inline-block;
    line-height: 1.125rem;
    padding: 0.225rem 0.4rem 0.16rem
}

pre {
    font-family: var(--font-family-pre);
    font-size: calc(0.9 * var(--font-size));
    padding-top: calc(0.35*var(--typography-spacing-vertical));
    padding-bottom: calc(0.35*var(--typography-spacing-vertical));
    padding-left: var(--typography-spacing-horizontal);
    margin-left: var(--typography-spacing-horizontal);
    margin-bottom: var(--typography-spacing-horizontal);
    overflow: auto;
    border-left: calc(2*var(--border-width)) solid var(--shadow-color);
}

ins {
    color: var(--ins-color);
    text-decoration: none;
}

del {
    color: var(--del-color);
}

s {
    color: var(--s-color);
}

blockquote {
    /*background-color: var(--bg-color-alt);*/
    background-image: linear-gradient(to right, var(--bg-color-alt), var(--bg-color));
    display: block;
    padding: var(--typography-spacing-vertical);
    margin-top: calc(0.5*var(--typography-spacing-horizontal));
    margin-bottom: calc(1.5*var(--typography-spacing-vertical));
    margin-left: calc(2*var(--typography-spacing-horizontal));
    margin-right: calc(2*var(--typography-spacing-horizontal));
    border-right: none;
    border-top: 1px solid var(--blockquote-border-color);
    border-bottom: 1px solid var(--blockquote-border-color);
    border-left: 2rem solid var(--blockquote-border-color);
    border-inline-start: 0.25rem solid var(--blockquote-border-color);
    border-inline-end: none
}

blockquote > cite {
    display: block;
    margin-top: var(--typography-spacing-vertical);
    color: var(--blockquote-footer-color);
}

blockquote, blockquote > p, blockquote > a {
    font-weight: var(--font-weight-semibold);
}

blockquote * {
    background-color: transparent;
}

a, [role=link] {
    color: var(--a-color);
    -webkit-transition-duration: 0.2s;
    -moz-transition-duration: 0.2s;
    -o-transition-duration: 0.2s;
    transition-duration: 0.2s;
    line-height: calc(0.85*var(--line-height));
    opacity: 90%;
}

a > *, [role=link] > * {
    color: var(--a-color);
}

:where(a:not([role=button])), [role=link] {
    text-underline-offset: 0.25em;
}

a:hover {
    opacity: 100%;
}

a.external-link::after {
    position: relative;
    content: "";
    background-image: var(--external-link-icon);
    background-size: 100% 100%;
    display: inline-block;
    width: calc(0.85 * var(--font-size));
    height: calc(0.85 * var(--font-size));
    padding-top: calc(0.1 * var(--font-size));;
    margin-left: 0.2rem;
    margin-right: 0.2rem;
    text-decoration: underline;
}

/* ----------------- Button, Label and Input tags ----------------------- */

button, input, a[role=button], select, textarea {
    overflow: visible;
}

button, select, a[role=button], select, textarea {
    text-transform: none;
    text-decoration: none;
}

button, [type=button], [type=reset], [type=submit], [role=button] {
    -webkit-appearance: button;
}

button, *[role=button], *[role=menuitem], summary {
    background-color: var(--buttons-bg-color);
    color: var(--buttons-fg-color);

    cursor: pointer;
    transition: all 0.4s;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    padding: 0.2rem;
    margin: 0;
}

button, *[role=button], *[role=menuitem] {
    border: var(--border-width) solid var(--border-color);
    border-radius: var(--border-radius);

    /* Ensure a minimum of character + padding */
    min-height: calc(var(--font-size) * 1.2);
    min-width: calc(var(--font-size) * 1.2);

    font-weight: normal;
    font-style: normal;
    font-variant: normal;
    font-size: 0.9rem;
    overflow: hidden;

    /* a button is a box with centered elements */
    display: inline-flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;

    /* for the buttons embedded in a box */
    flex-grow: 0;      /* default is 0 */
    flex-shrink: 1;    /* default is 1 */
    flex-basis: auto;  /* default is auto */
}

[role=button]:is(:hover,:active,:focus),
[role=button]:is([aria-current]:not([aria-current=false])),
[type=button]:is(:hover,:active,:focus),
[type=button]:is([aria-current]:not([aria-current=false])),
[type=file]::file-selector-button:is(:hover,:active,:focus),
[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])),
[type=reset]:is(:hover,:active,:focus),
[type=reset]:is([aria-current]:not([aria-current=false])),
[type=submit]:is(:hover,:active,:focus),
[type=submit]:is([aria-current]:not([aria-current=false])),
button:enabled:is(:hover,:active,:focus),
button:enabled:is([aria-current]:not([aria-current=false])),
summary:is(:hover,:active,:focus) {
    opacity: 75%;
}

button:enabled img:hover {
    /*transform: scale(1.2);*/
    opacity: 75%;
}

/* Propagate button colors to its children */
button *, *[role=button] *, *[role=menuitem] * {
    background-color: transparent;
    color: var(--buttons-fg-color);
}

/* --------------------------------- List(s) ----------------------------- */

ol, ul, dl {
    margin-bottom: var(--typography-spacing-vertical);
    background-color: unset;
    padding-left: calc(0.5*var(--typography-spacing-horizontal));
}

ul > li > ul {
    margin-bottom: 0;
}

ul > li > ul > li > ul {
    margin-bottom: 0;
}

/* Margin to right only from the 2nd level */
ul > li {
    list-style-type: none;
    list-style-position: outside;
    /*list-style-image: none;*/
    line-height: calc(1.2 * var(--line-height));
}

ul > li > ul > * {
    list-style-type: none;
    list-style-position: inside;
    list-style-image: none;
}

ul:not(nav *) > li:before {
    content: "■";
    padding-right: var(--typography-spacing-horizontal);
    color: var(--li-color);
}

ul:not(nav *) > li > ul > li:before {
    content: "◇";
    padding-right: var(--typography-spacing-horizontal);
    padding-left: var(--typography-spacing-horizontal);
    color: var(--li-color);
}

ul:not(nav *)  > li > ul> li> ul > li:before {
    content: "□";
    padding-right: var(--typography-spacing-horizontal);
    padding-left: calc(2 * var(--typography-spacing-horizontal));
    color: var(--li-color);
}

/* Add a dot after the item number */
ol {
    counter-reset: item;
}

ol > li {
    counter-increment: item;
    list-style-type: none; /* si nécessaire */
}

ol > li:before {
    content: counter(item) ". ";
    color: var(--li-color);
    font-weight: var(--font-weight-semibold);
}

dl {
    display: inline-block
}

dt {
    font-weight: var(--font-weight-semibold);
}

dd {
    padding-left: calc(0.5*var(--typography-spacing-horizontal));
}

dd:before {
    content: "➙ ";
    color: var(--li-color);
}

dd+dt {
    padding-top: calc(0.35*var(--typography-spacing-vertical));
}

/* -------------------------------- Table(s) ----------------------------- */

:where(table) {
    width: 100%;
    border-collapse: collapse;
    text-indent: 0;
    empty-cells: show;
    margin-bottom: var(--typography-spacing-vertical);
    caption-side: bottom;
    border: var(--table-border-width) solid var(--table-border-color);
}

td, th {
    padding: calc(var(--typography-spacing-horizontal) / 2) var(--typography-spacing-horizontal);
    color: var(--fg-color);
    font-weight: var(--font-weight-normal);
    font-size: var(--font-size);
    text-align: left;
    border-left: var(--table-border-width) dashed var(--table-border-color);
    border-bottom: var(--table-border-width) solid var(--table-border-color);
}

table[role=grid] thead * {
    background-color: var(--table-head-bg-color);
    color: var(--table-head-fg-color);
    font-weight: var(--font-weight-bold);
}

thead td, thead th {
    padding: var(--typography-spacing-horizontal) calc(var(--typography-spacing-vertical)) ;
}

tfoot td, tfoot th {
    border-top: var(--table-border-width) solid var(--table-border-color);
    border-bottom: 0;
}

table[role=grid] tbody tr:nth-child(even) * {
    background-color: var(--table-row-stripped-bg-color);
}

table caption {
    background-color: var(--table-caption-bg-color);
    color: var(--table-caption-fg-color);
    text-align: center;
    margin: auto;
}

caption {
    padding-left: calc(2 * var(--table-border-width));
    text-align: left;
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
    font-size: 80%;
    font-weight: var(--font-weight-semibold);
}

caption span {
    font-style: italic;
    background-color: transparent;
    color: inherit;
}

[role=presentation], table[role=presentation] td {
    border: none;
    text-align: left;
}

table[role="grid"] {
    width: 100%;
    table-layout: fixed; /* All columns will have equal width based on the table width */
    border-collapse: collapse;
}

table[role="grid"] th,
table[role="grid"] td {
    width: 10%; /* Set a default width for each column */
    max-width: 50%; /* Limit the width of any column */
    overflow: hidden; /* Prevent content from overflowing */
    word-wrap: break-word; /* Break words to avoid overflow */
}

table {
    max-width: 100%;
    overflow-x: auto;
}


/* ----------------- media & figure ----------- */

figure {
    margin: auto;
    text-align: center;
}

figcaption {
    font-size: 0.9rem;
    text-align: center;
    color: var(--table-caption-bg-color);
}

video {
    margin: auto;
    max-width: 90%;
}

img {
    max-width: 100%;
}

/* ----------------- progress ----------- */

progress {
    width: 100%;
    height: 2rem;
    border: none;
    border-radius: var(--border-radius);
    background: var(--progress-bg-color);
    overflow: hidden;
    color: var(--progress-fg-color);
}

/* Background style for webkit */
progress::-webkit-progress-bar {
    background: var(--progress-bg-color);
    border-radius: var(--border-radius);
}
progress::-webkit-progress-value {
    background: var(--progress-bg-color);
    border-radius: var(--border-radius);
}

/* Background style for Firefox */
progress::-moz-progress-bar {
    background: var(--progress-bg-color);
    border-radius: var(--border-radius);
}

/* ----------------- others ----------- */

hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible;
    border: 0;
    border-top: 1px solid rgba(128, 128, 128, 0.5);
    margin: 1rem 0
}

/* =======================================================================
                        Others
   ======================================================================= */

details {
    border: var(--border-width) solid var(--border-color-alt);
    border-radius: var(--border-radius);
    padding: 0;
    margin-bottom: var(--typography-spacing-vertical);
}

details > *:not(summary) {
    padding-left: var(--typography-spacing-horizontal);
}

summary {
    font-weight: var(--font-weight-semibold);
    border: none;
    margin: 0;
    vertical-align: middle;
    /*height: 2.4rem;*/

    /* Ensure a minimum of semibold-character + padding*/
    min-height: calc(var(--font-size) * 1.2);
    min-width: calc(var(--font-size) * 3);
}

details[open] summary {
    margin-bottom: var(--typography-spacing-vertical);
}

details[open] > *:not(summary) {
    -webkit-animation: fadeIn 0.2s linear forwards;
    animation: fadeIn 0.2s linear forwards;
}

/* Buttons inside a summary element are at right. */
summary button, summary a[role=button] {
    float: right;
    margin: 0;
    padding: 0;
    padding-left: 0.2rem;
    padding-right: 0.2rem;
    margin-left: 0.2rem;
    margin-rigth: 0.2rem;
    vertical-align: center;
    max-height: 90%;
    width: auto;
}


:where(svg:not([fill])) {
    fill:currentColor
}
svg:not(:root) {
    overflow:hidden
}

aside {
    float: right;
    width: calc(0.35*var(--screen-width));
}

/* -------------------- FORMS -------------------- */

form {
    margin-bottom: var(--typography-spacing-vertical);
}

form * {
    border-radius: var(--border-radius);
}

/* Form: fieldset */

fieldset {
    width: 100%;
    border: var(--border-width) solid var(--border-color);
    border-radius: var(--border-radius);
    padding: 0.5rem 1.5rem;
    margin: 0;
}

fieldset legend {
    max-width: 90%;
    display: block;
    margin-bottom: calc(var(--typography-spacing-vertical) * 0.5);
    font-weight: var(--font-weight-semibold);
    color: var(--bg-color-alt);
    background-color: var(--fg-color-alt);
    padding: 0.4rem;
    white-space: normal;
}

fieldset legend * {
    color: var(--bg-color-alt);
    background-color: transparent;
}

/* Form: label */

label {
    display: block;
    margin-bottom: calc(var(--typography-spacing-vertical) * 0.5);
}

label > :where(input, select, textarea) {
    margin-top: calc(var(--typography-spacing-vertical) * 0.25)
}

label:has([type=checkbox],[type=radio]) {
    width: -moz-fit-content;
    width: fit-content;
    cursor: pointer
}

/* Form: any type of inputs: input, select, textarea... */

button[type=submit], input:not([type=checkbox],[type=radio]), select, textarea {
    width: 80%
}

input, select, textarea {
    margin-bottom: var(--typography-spacing-vertical);
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
}

input:not([type=checkbox],[type=radio]), select, textarea {
    display: block;
    font-family: var(--font-family-serif);
    background-color: var(--inputs-bg-color);
    color: var(--fg-color-alt);
    border: var(--border-width) solid var(--border-color-alt);
    transition: 0.5s ease-in-out border-bottom;
}

input[type=text], select, option, optgroup, textarea {
    color: var(--fg-color-alt);
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
}

input:not([type=checkbox],[type=radio],[type=range],[type=file]), textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: calc(var(--typography-spacing-vertical) * 0.5) calc(var(--typography-spacing-horizontal) * 0.5)
}

textarea {
    display: block;
    resize: vertical;
    overflow: auto;
}

/* Form: select */

select::-ms-expand {
    border:0;
    background-color: transparent
}

select[multiple] option:checked {
    background: var(--buttons-bg-color);
}

select[multiple] option:checked::before {
    position: relative;
    content: "";
    background-image: var(--checked-icon);
    background-size: 100% 100%;
    display: inline-block;
    width: calc(0.85 * var(--font-size));
    height: calc(0.85 * var(--font-size));
    padding-top: calc(0.1 * var(--font-size));;
    margin-right: 0.3rem;
    text-decoration: underline;
}

select {
    padding: calc(var(--typography-spacing-vertical) * 0.25) calc(var(--typography-spacing-horizontal) * 0.25);
    text-transform: none;
}

select * {
    background-color: transparent;
}

/* Form: option/optgroup */

option {
    font-size: 1.1rem;
    font-family: var(--font-family-serif);
}

optgroup {
    font-weight: var(--font-weight-semibold);
    border-top: var(--border-width) solid var(--fg-color-alt);
}

option {
    border-top: var(--border-width) solid var(--fg-color-alt);
}

optgroup > option {
    border: none;
    padding-left: 1rem;
}

/* Form: input(s) */

input {
    overflow: visible
}

input[role="button"],
input[type="submit"],
input[type="search"],
input[name="search"],
input[type="reset"] {
    margin-top: var(--typography-spacing-vertical);
    margin-bottom: var(--typography-spacing-vertical);
}

input[type="checkbox"],
input[type="radio"] {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
    margin-bottom: 0;
}

input[name=search] {
    box-sizing: border-box;
    background-image: var(--input-search-icon);
    background-position: left center;
    background-size: 1.5rem 1.5rem;
    background-repeat: no-repeat;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 2rem;
    transition: width 0.4s ease-in-out;
    vertical-align: center;
    width: 50%;
}

input[name=search]:hover {
    width: 80%;
}

[type=button], [type=reset], [type=submit] {
    margin-bottom:var(--typography-spacing-vertical)
}

:is(button,[type=submit],[type=button],[role=button]).secondary,[type=file]::file-selector-button,[type=reset] {
    cursor: pointer
}

[type=file], [type=range] {
    padding: 0;
    border-width: 0
}

input:not([type=checkbox],[type=radio],[type=range]) {
    height: calc(1rem * var(--line-height) + var(--typography-spacing-vertical) * 1.2 + var(--border-width) * 1.2)
}

/* Form: checkbox / radiobox */

[type=checkbox], [type=radio] {
    width: 1.1em;
    height: 1.1em;
    cursor: pointer;
    margin-right: 0.5rem;
}

[type=checkbox]~label, [type=radio]~label {
    display: inline-block;
    margin-bottom: 0;
    cursor: pointer
}

[type=checkbox]~label:not(:last-of-type),[type=radio]~label:not(:last-of-type) {
    margin-inline-end: 1em
}

/* =======================================================================
                           Dialogs
   ======================================================================= */


dialog {
    padding-left: var(--typography-spacing-horizontal);
    padding-right: var(--typography-spacing-horizontal);
    padding-top: var(--typography-spacing-vertical);
    padding-bottom: var(--typography-spacing-vertical);
    z-index: 20;
    border-radius: var(--dialog-border-radius);
    border: var(--dialog-border-width) solid var(--border-color);
    box-shadow: var(--dialog-box-shadow);
    margin: 0;
    margin-top: var(--typography-spacing-vertical);
    margin-bottom: var(--typography-spacing-vertical);
    animation: fadeOut 0.7s ease-out;
}

dialog[open] {
    opacity: 1;
    position: relative;
    margin: auto;
    animation: fadeIn 0.7s ease-out;
    overscroll-behavior: contain;
}

dialog[role=alertdialog] {
    display: block;
    position: relative;
    border-left: calc(4*var(--dialog-border-width)) solid;
}

dialog[role=alertdialog].hidden-alert {
    display: none;
    position: revert;
}

dialog[role=alertdialog] * {
    background: transparent;
}

/*
 * Select only the dialogs which are 'modal' (doesn't affect dialog open by default in the html).
 * The css 'position' of modal dialog doesn't have to be relative
 * to avoid the scroll at the top of the page !
 * Default css value for modal dialog is fixed.
:modal[open] {
    position: fixed;
}
*/
/* Everything behind an opened modal dialog */
::backdrop {
    backdrop-filter: grayscale(90%) blur(0.3rem);
}

/* =======================================================================
                           Printing rules
   ======================================================================= */

/* ------------ Override any already defined properties ------------------ */

@media print {

    html {
        background: white;  /* For toner saving */
    }

    body {
        background: white;  /* For toner saving */
        display: block;
    }

    main > section, main > * section {
        padding: 0;
    }

    figure, table, img, svg {
        break-inside: avoid;
        break-before: region;
    }

    section, article, article p {
        orphans: 2; /* no less than 2 lines at the bottom of the page */
        widows: 2;  /* no less than 2 lines at the top of next page */
    }

    /* ---------------- Optional formatting rules ------------------------ */

    /* Force a page break immediately prior to any "chapter" section. */
    .chapter {
        break-before: always;
    }

    /* For any element to force adding a blank page */
    .blank-page {
        page: blank;
        page-break-after: always;
    }

    /* For any element that will be hidden when printing: */
    .print-off {
        display: none;
    }

}
