@charset "UTF-8";
/*
  Flavor name: Default (mini-default)
  Author: Angelos Chalaris (chalarangelo@gmail.com)
  Maintainers: Angelos Chalaris
  mini.css version: v3.0.0-alpha.3
*/
/*
  Browsers resets and base typography.
*/
/* Core module CSS variable definitions */
:root {
  --fore-color: #111;
  --secondary-fore-color: #444;
  --back-color: #f8f8f8;
  --secondary-back-color: #f0f0f0;
  --blockquote-color: #f57c00;
  --pre-color: #1565c0;
  --border-color: #aaa;
  --secondary-border-color: #ddd;
  --heading-ratio: 1.19;
  --universal-margin: 0.5rem;
  --universal-padding: 0.125rem;
  --universal-border-radius: 0.125rem;
  --a-link-color: #0277bd;
  --a-visited-color: #01579b; }

html {
  font-size: 14px; }

a, b, del, em, i, ins, q, span, strong, u {
  font-size: 1em; }

html, * {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", Helvetica, sans-serif;
  line-height: 1.4;
  -webkit-text-size-adjust: 100%; }

* {
  font-size: 1rem; }

body {
  margin: 0;
  color: var(--fore-color);
  background: var(--back-color); }

details {
  display: block; }

summary {
  display: list-item; }

abbr[title] {
  border-bottom: none;
  text-decoration: underline dotted; }

input {
  overflow: visible; }

img {
  max-width: 100%;
  height: auto; }

h1, h2, h3, h4, h5, h6 {
  line-height: 1.2;
  margin: calc(1.5 * var(--universal-margin)) var(--universal-margin);
  font-weight: 500; }
  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
    color: var(--secondary-fore-color);
    display: block;
    margin-top: -0.25rem; }

h1 {
  font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio) * var(--heading-ratio)); }

h2 {
  font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio); );
  background: var(--mark-back-color);
  font-weight: 600;
  padding: 0.1em 0.5em 0.2em 0.5em;
  color: var(--mark-fore-color); }

h3 {
  font-size: calc(1rem * var(--heading-ratio));
  padding-left: calc(2 * var(--universal-margin)); 
  /* background: var(--border-color); */
    }

h4 {
  font-size: 1rem;);
  padding-left: calc(4 * var(--universal-margin));  }

h5 {
  font-size: 1rem; }

h6 {
  font-size: calc(1rem / var(--heading-ratio)); }

p {
  margin: var(--universal-margin); }

ol, ul {
  margin: var(--universal-margin);
  padding-left: calc(6 * var(--universal-margin)); }

b, strong {
  font-weight: 700; }

hr {
  box-sizing: content-box;
  border: 0;
  line-height: 1.25em;
  margin: var(--universal-margin);
  height: 0.0625rem;
  background: linear-gradient(to right, transparent, var(--border-color) 20%, var(--border-color) 80%, transparent); }

blockquote {
  display: block;
  position: relative;
  font-style: italic;
  color: var(--secondary-fore-color);
  margin: var(--universal-margin);
  padding: calc(3 * var(--universal-padding));
  border: 0.0625rem solid var(--secondary-border-color);
  border-left: 0.375rem solid var(--blockquote-color);
  border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; }
  blockquote:before {
    position: absolute;
    top: calc(0rem - var(--universal-padding));
    left: 0;
    font-family: sans-serif;
    font-size: 3rem;
    font-weight: 700;
    content: "\201c";
    color: var(--blockquote-color); }
  blockquote[cite]:after {
    font-style: normal;
    font-size: 0.75em;
    font-weight: 700;
    content: "\a—  " attr(cite);
    white-space: pre; }

code, kbd, pre, samp {
  font-family: Menlo, Consolas, monospace;
  font-size: 0.85em; }

code {
  background: var(--secondary-back-color);
  border-radius: var(--universal-border-radius);
  padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); }

kbd {
  background: var(--fore-color);
  color: var(--back-color);
  border-radius: var(--universal-border-radius);
  padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); }

pre {
  overflow: auto;
  background: var(--secondary-back-color);
  padding: calc(1.5 * var(--universal-padding));
  margin: var(--universal-margin);
  border: 0.0625rem solid var(--secondary-border-color);
  border-left: 0.25rem solid var(--pre-color);
  border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; }

sup, sub, code, kbd {
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

small, sup, sub, figcaption {
  font-size: 0.75em; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

figure {
  margin: var(--universal-margin); }

figcaption {
  color: var(--secondary-fore-color); }

a {
  text-decoration: none; }
  a:link {
    color: var(--a-link-color); }
  a:visited {
    color: var(--a-visited-color); }
  a:hover, a:focus {
    text-decoration: underline; }

/*
  Definitions for the grid system, cards and containers.
*/
.container {
  margin: 0 auto;
  padding: 0 calc(1.5 * var(--universal-padding)); }

.row {
  box-sizing: border-box;
  display: flex;
  flex: 0 1 auto;
  flex-flow: row wrap; }

.col-sm,
[class^='col-sm-'],
[class^='col-sm-offset-'],
.row[class*='cols-sm-'] > * {
  box-sizing: border-box;
  flex: 0 0 auto;
  padding: 0 calc(var(--universal-padding) / 2); }

.col-sm,
.row.cols-sm > * {
  max-width: 100%;
  flex-grow: 1;
  flex-basis: 0; }

.col-sm-1,
.row.cols-sm-1 > * {
  max-width: 8.3333333333%;
  flex-basis: 8.3333333333%; }

.col-sm-offset-0 {
  margin-left: 0; }

.col-sm-2,
.row.cols-sm-2 > * {
  max-width: 16.6666666667%;
  flex-basis: 16.6666666667%; }

.col-sm-offset-1 {
  margin-left: 8.3333333333%; }

.col-sm-3,
.row.cols-sm-3 > * {
  max-width: 25%;
  flex-basis: 25%; }

.col-sm-offset-2 {
  margin-left: 16.6666666667%; }

.col-sm-4,
.row.cols-sm-4 > * {
  max-width: 33.3333333333%;
  flex-basis: 33.3333333333%; }

.col-sm-offset-3 {
  margin-left: 25%; }

.col-sm-5,
.row.cols-sm-5 > * {
  max-width: 41.6666666667%;
  flex-basis: 41.6666666667%; }

.col-sm-offset-4 {
  margin-left: 33.3333333333%; }

.col-sm-6,
.row.cols-sm-6 > * {
  max-width: 50%;
  flex-basis: 50%; }

.col-sm-offset-5 {
  margin-left: 41.6666666667%; }

.col-sm-7,
.row.cols-sm-7 > * {
  max-width: 58.3333333333%;
  flex-basis: 58.3333333333%; }

.col-sm-offset-6 {
  margin-left: 50%; }

.col-sm-8,
.row.cols-sm-8 > * {
  max-width: 66.6666666667%;
  flex-basis: 66.6666666667%; }

.col-sm-offset-7 {
  margin-left: 58.3333333333%; }

.col-sm-9,
.row.cols-sm-9 > * {
  max-width: 75%;
  flex-basis: 75%; }

.col-sm-offset-8 {
  margin-left: 66.6666666667%; }

.col-sm-10,
.row.cols-sm-10 > * {
  max-width: 83.3333333333%;
  flex-basis: 83.3333333333%; }

.col-sm-offset-9 {
  margin-left: 75%; }

.col-sm-11,
.row.cols-sm-11 > * {
  max-width: 91.6666666667%;
  flex-basis: 91.6666666667%; }

.col-sm-offset-10 {
  margin-left: 83.3333333333%; }

.col-sm-12,
.row.cols-sm-12 > * {
  max-width: 100%;
  flex-basis: 100%; }

.col-sm-offset-11 {
  margin-left: 91.6666666667%; }

.col-sm-normal {
  order: initial; }

.col-sm-first {
  order: -999; }

.col-sm-last {
  order: 999; }

@media screen and (min-width: 500px) {
  .col-md,
  [class^='col-md-'],
  [class^='col-md-offset-'],
  .row[class*='cols-md-'] > * {
    box-sizing: border-box;
    flex: 0 0 auto;
    padding: 0 calc(var(--universal-padding) / 2); }

  .col-md,
  .row.cols-md > * {
    max-width: 100%;
    flex-grow: 1;
    flex-basis: 0; }

  .col-md-1,
  .row.cols-md-1 > * {
    max-width: 8.3333333333%;
    flex-basis: 8.3333333333%; }

  .col-md-offset-0 {
    margin-left: 0; }

  .col-md-2,
  .row.cols-md-2 > * {
    max-width: 16.6666666667%;
    flex-basis: 16.6666666667%; }

  .col-md-offset-1 {
    margin-left: 8.3333333333%; }

  .col-md-3,
  .row.cols-md-3 > * {
    max-width: 25%;
    flex-basis: 25%; }

  .col-md-offset-2 {
    margin-left: 16.6666666667%; }

  .col-md-4,
  .row.cols-md-4 > * {
    max-width: 33.3333333333%;
    flex-basis: 33.3333333333%; }

  .col-md-offset-3 {
    margin-left: 25%; }

  .col-md-5,
  .row.cols-md-5 > * {
    max-width: 41.6666666667%;
    flex-basis: 41.6666666667%; }

  .col-md-offset-4 {
    margin-left: 33.3333333333%; }

  .col-md-6,
  .row.cols-md-6 > * {
    max-width: 50%;
    flex-basis: 50%; }

  .col-md-offset-5 {
    margin-left: 41.6666666667%; }

  .col-md-7,
  .row.cols-md-7 > * {
    max-width: 58.3333333333%;
    flex-basis: 58.3333333333%; }

  .col-md-offset-6 {
    margin-left: 50%; }

  .col-md-8,
  .row.cols-md-8 > * {
    max-width: 66.6666666667%;
    flex-basis: 66.6666666667%; }

  .col-md-offset-7 {
    margin-left: 58.3333333333%; }

  .col-md-9,
  .row.cols-md-9 > * {
    max-width: 75%;
    flex-basis: 75%; }

  .col-md-offset-8 {
    margin-left: 66.6666666667%; }

  .col-md-10,
  .row.cols-md-10 > * {
    max-width: 83.3333333333%;
    flex-basis: 83.3333333333%; }

  .col-md-offset-9 {
    margin-left: 75%; }

  .col-md-11,
  .row.cols-md-11 > * {
    max-width: 91.6666666667%;
    flex-basis: 91.6666666667%; }

  .col-md-offset-10 {
    margin-left: 83.3333333333%; }

  .col-md-12,
  .row.cols-md-12 > * {
    max-width: 100%;
    flex-basis: 100%; }

  .col-md-offset-11 {
    margin-left: 91.6666666667%; }

  .col-md-normal {
    order: initial; }

  .col-md-first {
    order: -999; }

  .col-md-last {
    order: 999; } }
@media screen and (min-width: 1280px) {
  .col-lg,
  [class^='col-lg-'],
  [class^='col-lg-offset-'],
  .row[class*='cols-lg-'] > * {
    box-sizing: border-box;
    flex: 0 0 auto;
    padding: 0 calc(var(--universal-padding) / 2); }

  .col-lg,
  .row.cols-lg > * {
    max-width: 100%;
    flex-grow: 1;
    flex-basis: 0; }

  .col-lg-1,
  .row.cols-lg-1 > * {
    max-width: 8.3333333333%;
    flex-basis: 8.3333333333%; }

  .col-lg-offset-0 {
    margin-left: 0; }

  .col-lg-2,
  .row.cols-lg-2 > * {
    max-width: 16.6666666667%;
    flex-basis: 16.6666666667%; }

  .col-lg-offset-1 {
    margin-left: 8.3333333333%; }

  .col-lg-3,
  .row.cols-lg-3 > * {
    max-width: 25%;
    flex-basis: 25%; }

  .col-lg-offset-2 {
    margin-left: 16.6666666667%; }

  .col-lg-4,
  .row.cols-lg-4 > * {
    max-width: 33.3333333333%;
    flex-basis: 33.3333333333%; }

  .col-lg-offset-3 {
    margin-left: 25%; }

  .col-lg-5,
  .row.cols-lg-5 > * {
    max-width: 41.6666666667%;
    flex-basis: 41.6666666667%; }

  .col-lg-offset-4 {
    margin-left: 33.3333333333%; }

  .col-lg-6,
  .row.cols-lg-6 > * {
    max-width: 50%;
    flex-basis: 50%; }

  .col-lg-offset-5 {
    margin-left: 41.6666666667%; }

  .col-lg-7,
  .row.cols-lg-7 > * {
    max-width: 58.3333333333%;
    flex-basis: 58.3333333333%; }

  .col-lg-offset-6 {
    margin-left: 50%; }

  .col-lg-8,
  .row.cols-lg-8 > * {
    max-width: 66.6666666667%;
    flex-basis: 66.6666666667%; }

  .col-lg-offset-7 {
    margin-left: 58.3333333333%; }

  .col-lg-9,
  .row.cols-lg-9 > * {
    max-width: 75%;
    flex-basis: 75%; }

  .col-lg-offset-8 {
    margin-left: 66.6666666667%; }

  .col-lg-10,
  .row.cols-lg-10 > * {
    max-width: 83.3333333333%;
    flex-basis: 83.3333333333%; }

  .col-lg-offset-9 {
    margin-left: 75%; }

  .col-lg-11,
  .row.cols-lg-11 > * {
    max-width: 91.6666666667%;
    flex-basis: 91.6666666667%; }

  .col-lg-offset-10 {
    margin-left: 83.3333333333%; }

  .col-lg-12,
  .row.cols-lg-12 > * {
    max-width: 100%;
    flex-basis: 100%; }

  .col-lg-offset-11 {
    margin-left: 91.6666666667%; }

  .col-lg-normal {
    order: initial; }

  .col-lg-first {
    order: -999; }

  .col-lg-last {
    order: 999; } }
/* Card component CSS variable definitions */
:root {
  --card-back-color: #f8f8f8;
  --card-fore-color: #111;
  --card-border-color: #ddd; }

.card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-self: center;
  position: relative;
  width: 100%;
  background: var(--card-back-color);
  color: var(--card-fore-color);
  border: 0.0625rem solid var(--card-border-color);
  border-radius: var(--universal-border-radius);
  margin: var(--universal-margin);
  overflow: hidden; }
  @media screen and (min-width: 320px) {
    .card {
      max-width: 320px; } }
  .card > .sectione {
    background: var(--card-back-color);
    color: var(--card-fore-color);
    box-sizing: border-box;
    margin: 0;
    border: 0;
    border-radius: 0;
    border-bottom: 0.0625rem solid var(--card-border-color);
    padding: var(--universal-padding);
    width: 100%; }
    .card > .sectione.media {
      height: 200px;
      padding: 0;
      -o-object-fit: cover;
      object-fit: cover; }
  .card > .sectione:last-child {
    border-bottom: 0; }

/*
  Custom elements for card elements.
*/
@media screen and (min-width: 240px) {
  .card.small {
    max-width: 240px; } }
@media screen and (min-width: 480px) {
  .card.large {
    max-width: 480px; } }
.card.fluid {
  max-width: 100%;
  width: auto; }

.card.warning {
/*  --card-back-color: #ffca28; */
  --card-back-color: #e5b8b7;
  --card-border-color: #e8b825; }

.card.error {
  --card-back-color: #b71c1c;
  --card-fore-color: #f8f8f8;
  --card-border-color: #a71a1a; }

.card > .sectione.dark {
  --card-back-color: #e0e0e0; }

.card > .sectione.double-padded {
  padding: calc(1.5 * var(--universal-padding)); }

/*
  Definitions for forms and input elements.
*/
/* Input_control module CSS variable definitions */
:root {
  --form-back-color: #f0f0f0;
  --form-fore-color: #111;
  --form-border-color: #ddd;
  --input-back-color: #f8f8f8;
  --input-fore-color: #111;
  --input-border-color: #ddd;
  --input-focus-color: #0288d1;
  --input-invalid-color: #d32f2f;
  --button-back-color: #e2e2e2;
  --button-hover-back-color: #dcdcdc;
  --button-fore-color: #212121;
  --button-border-color: transparent;
  --button-hover-border-color: transparent;
  --button-group-border-color: rgba(124, 124, 124, 0.54); }

form {
  background: var(--form-back-color);
  color: var(--form-fore-color);
  border: 0.0625rem solid var(--form-border-color);
  border-radius: var(--universal-border-radius);
  margin: var(--universal-margin);
  padding: calc(2 * var(--universal-padding)) var(--universal-padding); }

fieldset {
  border: 0.0625rem solid var(--form-border-color);
  border-radius: var(--universal-border-radius);
  margin: calc(var(--universal-margin) / 4);
  padding: var(--universal-padding); }

legend {
  box-sizing: border-box;
  display: table;
  max-width: 100%;
  white-space: normal;
  font-weight: 700;
  padding: calc(var(--universal-padding) / 2); }

label {
  padding: calc(var(--universal-padding) / 2) var(--universal-padding); }

.input-group {
  display: inline-block; }
  .input-group.fluid {
    display: flex;
    align-items: center;
    justify-content: center; }
    .input-group.fluid > input {
      max-width: 100%;
      flex-grow: 1;
      flex-basis: 0px; }
    @media screen and (max-width: 499px) {
      .input-group.fluid {
        align-items: stretch;
        flex-direction: column; } }
  .input-group.vertical {
    display: flex;
    align-items: stretch;
    flex-direction: column; }
    .input-group.vertical > input {
      max-width: 100%;
      flex-grow: 1;
      flex-basis: 0px; }

[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
  height: auto; }

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

input:not([type]), [type="text"], [type="email"], [type="number"], [type="search"],
[type="password"], [type="url"], [type="tel"], [type="checkbox"], [type="radio"], textarea, select {
  box-sizing: border-box;
  background: var(--input-back-color);
  color: var(--input-fore-color);
  border: 0.0625rem solid var(--input-border-color);
  border-radius: var(--universal-border-radius);
  margin: calc(var(--universal-margin) / 2);
  padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); }

input:not([type="button"]):not([type="submit"]):not([type="reset"]):hover, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus, textarea:hover, textarea:focus, select:hover, select:focus {
  border-color: var(--input-focus-color);
  box-shadow: none; }
input:not([type="button"]):not([type="submit"]):not([type="reset"]):invalid, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus:invalid, textarea:invalid, textarea:focus:invalid, select:invalid, select:focus:invalid {
  border-color: var(--input-invalid-color);
  box-shadow: none; }
input:not([type="button"]):not([type="submit"]):not([type="reset"])[readonly], textarea[readonly], select[readonly] {
  background: var(--secondary-back-color); }

select {
  max-width: 100%; }

option {
  overflow: hidden;
  text-overflow: ellipsis; }

[type="checkbox"], [type="radio"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  position: relative;
  height: calc(1rem + var(--universal-padding) / 2);
  width: calc(1rem + var(--universal-padding) / 2);
  vertical-align: text-bottom;
  padding: 0;
  flex-basis: calc(1rem + var(--universal-padding) / 2) !important;
  flex-grow: 0 !important; }
  [type="checkbox"]:checked:before, [type="radio"]:checked:before {
    position: absolute; }

[type="checkbox"]:checked:before {
  content: '\2713';
  font-family: sans-serif;
  font-size: calc(1rem + var(--universal-padding) / 2);
  top: calc(0rem - var(--universal-padding));
  left: calc(var(--universal-padding) / 4); }

[type="radio"] {
  border-radius: 100%; }
  [type="radio"]:checked:before {
    border-radius: 100%;
    content: '';
    top: calc(0.0625rem + var(--universal-padding) / 2);
    left: calc(0.0625rem + var(--universal-padding) / 2);
    background: var(--input-fore-color);
    width: 0.5rem;
    height: 0.5rem; }

:placeholder-shown {
  color: var(--input-fore-color); }

::-ms-placeholder {
  color: var(--input-fore-color);
  opacity: 0.54; }

button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

button, html [type="button"], [type="reset"], [type="submit"] {
  -webkit-appearance: button; }

button {
  overflow: visible;
  text-transform: none; }

button, [type="button"], [type="submit"], [type="reset"],
a.button, label.button, .button,
a[role="button"], label[role="button"], [role="button"] {
  display: inline-block;
  background: var(--button-back-color);
  color: var(--button-fore-color);
  border: 0.0625rem solid var(--button-border-color);
  border-radius: var(--universal-border-radius);
  padding: var(--universal-padding) calc(1.5 * var(--universal-padding));
  margin: var(--universal-margin);
  text-decoration: none;
  cursor: pointer;
  transition: background 0.3s; }
  button:hover, button:focus, [type="button"]:hover, [type="button"]:focus, [type="submit"]:hover, [type="submit"]:focus, [type="reset"]:hover, [type="reset"]:focus,
  a.button:hover,
  a.button:focus, label.button:hover, label.button:focus, .button:hover, .button:focus,
  a[role="button"]:hover,
  a[role="button"]:focus, label[role="button"]:hover, label[role="button"]:focus, [role="button"]:hover, [role="button"]:focus {
    background: var(--button-hover-back-color);
    border-color: var(--button-hover-border-color); }

input:disabled, input[disabled], textarea:disabled, textarea[disabled], select:disabled, select[disabled], button:disabled, button[disabled], .button:disabled, .button[disabled], [role="button"]:disabled, [role="button"][disabled] {
  cursor: not-allowed;
  opacity: 0.75; }

.button-group {
  display: flex;
  border: 0.0625rem solid var(--button-group-border-color);
  border-radius: var(--universal-border-radius);
  margin: var(--universal-margin); }
  .button-group > button, .button-group [type="button"], .button-group > [type="submit"], .button-group > [type="reset"], .button-group > .button, .button-group > [role="button"] {
    margin: 0;
    max-width: 100%;
    flex: 1 1 auto;
    text-align: center;
    border: 0;
    border-radius: 0;
    box-shadow: none; }
  .button-group > :not(:first-child) {
    border-left: 0.0625rem solid var(--button-group-border-color); }
  @media screen and (max-width: 499px) {
    .button-group {
      flex-direction: column; }
      .button-group > :not(:first-child) {
        border: 0;
        border-top: 0.0625rem solid var(--button-group-border-color); } }

/*
  Custom elements for forms and input elements.
*/
button.primary, [type="button"].primary, [type="submit"].primary, [type="reset"].primary, .button.primary, [role="button"].primary {
  --button-back-color: #1976d2;
  --button-fore-color: #f8f8f8; }
  button.primary:hover, button.primary:focus, [type="button"].primary:hover, [type="button"].primary:focus, [type="submit"].primary:hover, [type="submit"].primary:focus, [type="reset"].primary:hover, [type="reset"].primary:focus, .button.primary:hover, .button.primary:focus, [role="button"].primary:hover, [role="button"].primary:focus {
    --button-hover-back-color: #1565c0; }

button.secondary, [type="button"].secondary, [type="submit"].secondary, [type="reset"].secondary, .button.secondary, [role="button"].secondary {
  --button-back-color: #d32f2f;
  --button-fore-color: #f8f8f8; }
  button.secondary:hover, button.secondary:focus, [type="button"].secondary:hover, [type="button"].secondary:focus, [type="submit"].secondary:hover, [type="submit"].secondary:focus, [type="reset"].secondary:hover, [type="reset"].secondary:focus, .button.secondary:hover, .button.secondary:focus, [role="button"].secondary:hover, [role="button"].secondary:focus {
    --button-hover-back-color: #c62828; }

button.tertiary, [type="button"].tertiary, [type="submit"].tertiary, [type="reset"].tertiary, .button.tertiary, [role="button"].tertiary {
  --button-back-color: #308732;
  --button-fore-color: #f8f8f8; }
  button.tertiary:hover, button.tertiary:focus, [type="button"].tertiary:hover, [type="button"].tertiary:focus, [type="submit"].tertiary:hover, [type="submit"].tertiary:focus, [type="reset"].tertiary:hover, [type="reset"].tertiary:focus, .button.tertiary:hover, .button.tertiary:focus, [role="button"].tertiary:hover, [role="button"].tertiary:focus {
    --button-hover-back-color: #277529; }

button.inverse, [type="button"].inverse, [type="submit"].inverse, [type="reset"].inverse, .button.inverse, [role="button"].inverse {
  --button-back-color: #212121;
  --button-fore-color: #f8f8f8; }
  button.inverse:hover, button.inverse:focus, [type="button"].inverse:hover, [type="button"].inverse:focus, [type="submit"].inverse:hover, [type="submit"].inverse:focus, [type="reset"].inverse:hover, [type="reset"].inverse:focus, .button.inverse:hover, .button.inverse:focus, [role="button"].inverse:hover, [role="button"].inverse:focus {
    --button-hover-back-color: #111; }

button.small, [type="button"].small, [type="submit"].small, [type="reset"].small, .button.small, [role="button"].small {
  padding: calc(0.5 * var(--universal-padding)) calc(0.75 * var(--universal-padding));
  margin: var(--universal-margin); }

button.large, [type="button"].large, [type="submit"].large, [type="reset"].large, .button.large, [role="button"].large {
  padding: calc(1.5 * var(--universal-padding)) calc(2 * var(--universal-padding));
  margin: var(--universal-margin); }

/*
  Definitions for navigation elements.
*/
/* Navigation module CSS variable definitions */
:root {
  --header-back-color: #f8f8f8;
  --header-hover-back-color: #f0f0f0;
  --header-fore-color: #444;
  --header-border-color: #ddd;
  --nav-back-color: #f8f8f8;
  --nav-hover-back-color: #f0f0f0;
  --nav-fore-color: #444;
  --nav-border-color: #ddd;
  --nav-link-color: #0277bd;
  --footer-fore-color: #444;
  --footer-back-color: #f8f8f8;
  --footer-border-color: #ddd;
  --footer-link-color: #0277bd;
  --drawer-back-color: #f8f8f8;
  --drawer-hover-back-color: #f0f0f0;
  --drawer-border-color: #ddd;
  --drawer-close-color: #444; }

header {
  height: 3.1875rem;
  background: var(--header-back-color);
  color: var(--header-fore-color);
  border-bottom: 0.0625rem solid var(--header-border-color);
  padding: calc(var(--universal-padding) / 4) 0;
  white-space: nowrap;
  overflow-x: auto;
  overflow-y: hidden; }
  header.row {
    box-sizing: content-box; }
  header .logo {
    color: var(--header-fore-color);
    font-size: 1.75rem;
    padding: var(--universal-padding) calc(2 * var(--universal-padding));
    text-decoration: none; }
  header button, header [type="button"], header .button, header [role="button"] {
    box-sizing: border-box;
    position: relative;
    top: calc(0rem - var(--universal-padding) / 4);
    height: calc(3.1875rem + var(--universal-padding) / 2);
    background: var(--header-back-color);
    line-height: calc(3.1875rem - var(--universal-padding) * 1.5);
    text-align: center;
    color: var(--header-fore-color);
    border: 0;
    border-radius: 0;
    margin: 0;
    text-transform: uppercase; }
    header button:hover, header button:focus, header [type="button"]:hover, header [type="button"]:focus, header .button:hover, header .button:focus, header [role="button"]:hover, header [role="button"]:focus {
      background: var(--header-hover-back-color); }

nav {
  background: var(--nav-back-color);
  color: var(--nav-fore-color);
  border: 0.0625rem solid var(--nav-border-color);
  border-radius: var(--universal-border-radius);
  margin: var(--universal-margin); }
  nav * {
    padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); }
  nav a, nav a:visited {
    display: block;
    color: var(--nav-link-color);
    border-radius: var(--universal-border-radius);
    transition: background 0.3s; }
    nav a:hover, nav a:focus, nav a:visited:hover, nav a:visited:focus {
      text-decoration: none;
      background: var(--nav-hover-back-color); }
  nav .sublink-1 {
    position: relative;
    margin-left: calc(2 * var(--universal-padding)); }
    nav .sublink-1:before {
      position: absolute;
      left: calc(var(--universal-padding) - 1 * var(--universal-padding));
      top: -0.0625rem;
      content: '';
      height: 100%;
      border: 0.0625rem solid var(--nav-border-color);
      border-left: 0; }
  nav .sublink-2 {
    position: relative;
    margin-left: calc(4 * var(--universal-padding)); }
    nav .sublink-2:before {
      position: absolute;
      left: calc(var(--universal-padding) - 3 * var(--universal-padding));
      top: -0.0625rem;
      content: '';
      height: 100%;
      border: 0.0625rem solid var(--nav-border-color);
      border-left: 0; }

footer {
  background: var(--footer-back-color);
  color: var(--footer-fore-color);
  border-top: 0.0625rem solid var(--footer-border-color);
  padding: calc(2 * var(--universal-padding)) var(--universal-padding);
  font-size: 0.875rem; }
  footer a, footer a:visited {
    color: var(--footer-link-color); }

header.sticky {
  position: -webkit-sticky;
  position: sticky;
  z-index: 1101;
  top: 0; }

footer.sticky {
  position: -webkit-sticky;
  position: sticky;
  z-index: 1101;
  bottom: 0; }

.drawer-toggle:before {
  display: inline-block;
  position: relative;
  vertical-align: bottom;
  content: '\00a0\2261\00a0';
  font-family: sans-serif;
  font-size: 1.5em; }
@media screen and (min-width: 500px) {
  .drawer-toggle:not(.persistent) {
    display: none; } }

[type="checkbox"].drawer {
  height: 1px;
  width: 1px;
  margin: -1px;
  overflow: hidden;
  position: absolute;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(100%);
  clip-path: inset(100%); }
  [type="checkbox"].drawer + * {
    display: block;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    width: 320px;
    height: 100vh;
    overflow-y: auto;
    background: var(--drawer-back-color);
    border: 0.0625rem solid var(--drawer-border-color);
    border-radius: 0;
    margin: 0;
    z-index: 1110;
    right: -320px;
    transition: right 0.3s; }
    [type="checkbox"].drawer + * .drawer-close {
      position: absolute;
      top: var(--universal-margin);
      right: var(--universal-margin);
      z-index: 1111;
      width: 2rem;
      height: 2rem;
      border-radius: var(--universal-border-radius);
      padding: var(--universal-padding);
      margin: 0;
      cursor: pointer;
      transition: background 0.3s; }
      [type="checkbox"].drawer + * .drawer-close:before {
        display: block;
        content: '\00D7';
        color: var(--drawer-close-color);
        position: relative;
        font-family: sans-serif;
        font-size: 2rem;
        line-height: 1;
        text-align: center; }
      [type="checkbox"].drawer + * .drawer-close:hover, [type="checkbox"].drawer + * .drawer-close:focus {
        background: var(--drawer-hover-back-color); }
    @media screen and (max-width: 320px) {
      [type="checkbox"].drawer + * {
        width: 100%; } }
  [type="checkbox"].drawer:checked + * {
    right: 0; }
  @media screen and (min-width: 500px) {
    [type="checkbox"].drawer:not(.persistent) + * {
      position: static;
      height: 100%;
      z-index: 1100; }
      [type="checkbox"].drawer:not(.persistent) + * .drawer-close {
        display: none; } }

/*
  Definitions for the responsive table component.
*/
/* Table module CSS variable definitions. */
:root {
  --table-border-color: #aaa;
  --table-border-separator-color: #666;
  --table-head-back-color: #e6e6e6;
  --table-head-fore-color: #111;
  --table-body-back-color: #f8f8f8;
  --table-body-fore-color: #111;
  --table-body-alt-back-color: #eee; }

table {
  border-collapse: separate;
  border-spacing: 0;
  : margin: calc(1.5 * var(--universal-margin)) var(--universal-margin);
  display: flex;
  flex: 0 1 auto;
  flex-flow: row wrap;
  padding: var(--universal-padding);
  padding-top: 0;
	margin: calc(1.5 * var(--universal-margin)) var(--universal-margin);	}
  table caption {
    font-size: 1.25 * rem;
    margin: calc(2 * var(--universal-margin)) 0;
    max-width: 100%;
    flex: 0 0 100%;
		text-align: left;}
  table thead, table tbody {
    display: flex;
    flex-flow: row wrap;
    border: 0.0625rem solid var(--table-border-color); }
  table thead {
    z-index: 999;
    border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0;
    border-bottom: 0.0625rem solid var(--table-border-separator-color); }
  table tbody {
    border-top: 0;
    margin-top: calc(0 - var(--universal-margin));
    border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); }
  table tr {
    display: flex;
    padding: 0; }
  table th, table td {
    padding: calc(0.5 * var(--universal-padding));
		font-size: 0.9rem; }
  table th {
    text-align: left;
    background: var(--table-head-back-color);
    color: var(--table-head-fore-color); }
  table td {
    background: var(--table-body-back-color);
    color: var(--table-body-fore-color);
    border-top: 0.0625rem solid var(--table-border-color); }

table:not(.horizontal) {
  overflow: auto;
  max-height: 850px; }
  table:not(.horizontal) thead, table:not(.horizontal) tbody {
    max-width: 100%;
    flex: 0 0 100%; }
  table:not(.horizontal) tr {
    flex-flow: row wrap;
    flex: 0 0 100%; }
  table:not(.horizontal) th, table:not(.horizontal) td {
    flex: 1 0 0%;
    overflow: hidden;
    text-overflow: ellipsis; }
  table:not(.horizontal) thead {
    position: sticky;
    top: 0; }
  table:not(.horizontal) tbody tr:first-child td {
    border-top: 0; }

table.horizontal {
  border: 0; }
  table.horizontal thead, table.horizontal tbody {
    border: 0;
    flex-flow: row nowrap; }
  table.horizontal tbody {
    overflow: auto;
    justify-content: space-between;
    flex: 1 0 0;
    margin-left: calc( 4 * var(--universal-margin));
    padding-bottom: calc(var(--universal-padding) / 4); }
  table.horizontal tr {
    flex-direction: column;
    flex: 1 0 auto; }
  table.horizontal th, table.horizontal td {
    width: 100%;
    border: 0;
    border-bottom: 0.0625rem solid var(--table-border-color); }
    table.horizontal th:not(:first-child), table.horizontal td:not(:first-child) {
      border-top: 0; }
  table.horizontal th {
    text-align: right;
    border-left: 0.0625rem solid var(--table-border-color);
    border-right: 0.0625rem solid var(--table-border-separator-color); }
  table.horizontal thead tr:first-child {
    padding-left: 0; }
  table.horizontal th:first-child, table.horizontal td:first-child {
    border-top: 0.0625rem solid var(--table-border-color); }
  table.horizontal tbody tr:last-child td {
    border-right: 0.0625rem solid var(--table-border-color); }
    table.horizontal tbody tr:last-child td:first-child {
      border-top-right-radius: 0.25rem; }
    table.horizontal tbody tr:last-child td:last-child {
      border-bottom-right-radius: 0.25rem; }
  table.horizontal thead tr:first-child th:first-child {
    border-top-left-radius: 0.25rem; }
  table.horizontal thead tr:first-child th:last-child {
    border-bottom-left-radius: 0.25rem; }

@media screen and (max-width: 499px) {
  table, table.horizontal {
    border-collapse: collapse;
    border: 0;
    width: 100%;
    display: table; }
    table thead, table th, table.horizontal thead, table.horizontal th {
      border: 0;
      height: 1px;
      width: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      clip: rect(0 0 0 0);
      -webkit-clip-path: inset(100%);
      clip-path: inset(100%); }
    table tbody, table.horizontal tbody {
      border: 0;
      display: table-row-group; }
    table tr, table.horizontal tr {
      display: block;
      border: 0.0625rem solid var(--table-border-color);
      border-radius: var(--universal-border-radius);
      background: #fafafa;
      padding: var(--universal-padding);
      margin: var(--universal-margin);
      margin-bottom: calc(2 * var(--universal-margin)); }
    table th, table td, table.horizontal th, table.horizontal td {
      width: auto; }
    table td, table.horizontal td {
      display: block;
      border: 0;
      text-align: right; }
    table td:before, table.horizontal td:before {
      content: attr(data-label);
      float: left;
      font-weight: 600; }
    table th:first-child, table td:first-child, table.horizontal th:first-child, table.horizontal td:first-child {
      border-top: 0; }
    table tbody tr:last-child td, table.horizontal tbody tr:last-child td {
      border-right: 0; } }
:root {
  --table-body-alt-back-color: #eee; }

table tr:nth-of-type(2n) > td {
  background: var(--table-body-alt-back-color); }

@media screen and (max-width: 500px) {
  table tr:nth-of-type(2n) {
    background: var(--table-body-alt-back-color); } }
:root {
  --table-body-hover-back-color: #90caf9; }

table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td {
  background: var(--table-body-hover-back-color); }

@media screen and (max-width: 500px) {
  table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td {
    background: var(--table-body-hover-back-color); } }
/*
  Definitions for contextual background elements, toasts and tooltips.
*/
/* Contextual module CSS variable definitions */
:root {
  --mark-back-color: #0277bd;
  --mark-fore-color: #fafafa; }

mark {
  background: var(--mark-back-color);
  color: var(--mark-fore-color);
  font-size: 0.95em;
  line-height: 1em;
  border-radius: var(--universal-border-radius);
  padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); }
  mark.inline-block {
    display: inline-block;
    font-size: 1em;
    line-height: 1.5;
    padding: calc(var(--universal-padding) / 2) var(--universal-padding); }

:root {
  --toast-back-color: #424242;
  --toast-fore-color: #fafafa; }

.toast {
  position: fixed;
  bottom: calc(var(--universal-margin) * 3);
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1111;
  color: var(--toast-fore-color);
  background: var(--toast-back-color);
  border-radius: calc(var(--universal-border-radius) * 16);
  padding: var(--universal-padding) calc(var(--universal-padding) * 3); }

:root {
  --tooltip-back-color: #212121;
  --tooltip-fore-color: #fafafa; }

.tooltip {
  position: relative;
  display: inline-block; }
  .tooltip:before, .tooltip:after {
    position: absolute;
    opacity: 0;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(100%);
    clip-path: inset(100%);
    transition: all 0.3s;
    z-index: 1010;
    left: 50%; }
  .tooltip:not(.bottom):before, .tooltip:not(.bottom):after {
    bottom: 75%; }
  .tooltip.bottom:before, .tooltip.bottom:after {
    top: 75%; }
  .tooltip:hover:before, .tooltip:hover:after, .tooltip:focus:before, .tooltip:focus:after {
    opacity: 1;
    clip: auto;
    -webkit-clip-path: inset(0%);
    clip-path: inset(0%); }
  .tooltip:before {
    content: '';
    background: transparent;
    border: var(--universal-margin) solid transparent;
    left: calc(50% - var(--universal-margin)); }
  .tooltip:not(.bottom):before {
    border-top-color: #212121; }
  .tooltip.bottom:before {
    border-bottom-color: #212121; }
  .tooltip:after {
    content: attr(aria-label);
    color: var(--tooltip-fore-color);
    background: var(--tooltip-back-color);
    border-radius: var(--universal-border-radius);
    padding: var(--universal-padding);
    white-space: nowrap;
    transform: translateX(-50%); }
  .tooltip:not(.bottom):after {
    margin-bottom: calc(2 * var(--universal-margin)); }
  .tooltip.bottom:after {
    margin-top: calc(2 * var(--universal-margin)); }

:root {
  --modal-overlay-color: rgba(0, 0, 0, 0.45);
  --modal-close-color: #444;
  --modal-close-hover-color: #f0f0f0; }

[type="checkbox"].modal {
  height: 1px;
  width: 1px;
  margin: -1px;
  overflow: hidden;
  position: absolute;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(100%);
  clip-path: inset(100%); }
  [type="checkbox"].modal + div {
    position: fixed;
    top: 0;
    left: 0;
    display: none;
    width: 100vw;
    height: 100vh;
    background: var(--modal-overlay-color); }
    [type="checkbox"].modal + div .card {
      margin: 0 auto;
      max-height: 50vh;
      overflow: auto; }
      [type="checkbox"].modal + div .card .modal-close {
        position: absolute;
        top: 0;
        right: 0;
        width: 1.75rem;
        height: 1.75rem;
        border-radius: var(--universal-border-radius);
        padding: var(--universal-padding);
        margin: 0;
        cursor: pointer;
        transition: background 0.3s; }
        [type="checkbox"].modal + div .card .modal-close:before {
          display: block;
          content: '\00D7';
          color: var(--modal-close-color);
          position: relative;
          font-family: sans-serif;
          font-size: 1.75rem;
          line-height: 1;
          text-align: center; }
        [type="checkbox"].modal + div .card .modal-close:hover, [type="checkbox"].modal + div .card .modal-close:focus {
          background: var(--modal-close-hover-color); }
  [type="checkbox"].modal:checked + div {
    display: flex;
    flex: 0 1 auto;
    z-index: 1200; }
    [type="checkbox"].modal:checked + div .card .modal-close {
      z-index: 1211; }

:root {
  --collapse-label-back-color: #e8e8e8;
  --collapse-label-fore-color: #212121;
  --collapse-label-hover-back-color: #f0f0f0;
  --collapse-selected-label-back-color: #ececec;
  --collapse-border-color: #ddd;
  --collapse-content-back-color: #fafafa;
  --collapse-selected-label-border-color: #0277bd; }

.collapse {
  width: calc(100% - 2 * var(--universal-margin));
  opacity: 1;
  display: flex;
  flex-direction: column;
  margin: var(--universal-margin);
  border-radius: var(--universal-border-radius); }
  .collapse > [type="radio"], .collapse > [type="checkbox"] {
    height: 1px;
    width: 1px;
    margin: -1px;
    overflow: hidden;
    position: absolute;
    clip: rect(0 0 0 0);
    -webkit-clip-path: inset(100%);
    clip-path: inset(100%); }
  .collapse > label {
    flex-grow: 1;
    display: inline-block;
    height: 1.5rem;
    cursor: pointer;
    transition: background 0.3s;
    color: var(--collapse-label-fore-color);
    background: var(--collapse-label-back-color);
    border: 0.0625rem solid var(--collapse-border-color);
    padding: calc(1.5 * var(--universal-padding)); }
    .collapse > label:hover, .collapse > label:focus {
      background: var(--collapse-label-hover-back-color); }
    .collapse > label + div {
      flex-basis: auto;
      height: 1px;
      width: 1px;
      margin: -1px;
      overflow: hidden;
      position: absolute;
      clip: rect(0 0 0 0);
      -webkit-clip-path: inset(100%);
      clip-path: inset(100%);
      transition: max-height 0.3s;
      max-height: 1px; }
  .collapse > :checked + label {
    background: var(--collapse-selected-label-back-color);
    border-bottom-color: var(--collapse-selected-label-border-color); }
    .collapse > :checked + label + div {
      box-sizing: border-box;
      position: relative;
      width: 100%;
      height: auto;
      overflow: auto;
      margin: 0;
      background: var(--collapse-content-back-color);
      border: 0.0625rem solid var(--collapse-border-color);
      border-top: 0;
      padding: var(--universal-padding);
      clip: auto;
      -webkit-clip-path: inset(0%);
      clip-path: inset(0%);
      max-height: 850px; }
  .collapse > label:not(:first-of-type) {
    border-top: 0; }
  .collapse > label:first-of-type {
    border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0; }
  .collapse > label:last-of-type:not(:first-of-type) {
    border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); }
  .collapse > label:last-of-type:first-of-type {
    border-radius: var(--universal-border-radius); }
  .collapse > :checked:last-of-type:not(:first-of-type) + label {
    border-radius: 0; }
  .collapse > :checked:last-of-type + label + div {
    border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); }

/*
  Custom elements for contextual background elements, toasts and tooltips.
*/
mark.secondary {
  --mark-back-color: #d32f2f; }

mark.tertiary {
  --mark-back-color: #308732; }

mark.tag {
  padding: calc(var(--universal-padding)/2) var(--universal-padding);
  border-radius: 1em; }

/*
  Definitions for progress elements and spinners.
*/
/* Progess module CSS variable definitions */
:root {
  --progress-back-color: #ddd;
  --progress-fore-color: #555; }

progress {
  display: block;
  vertical-align: baseline;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  height: 0.75rem;
  width: calc(100% - 2 * var(--universal-margin));
  margin: var(--universal-margin);
  border: 0;
  border-radius: calc(2 * var(--universal-border-radius));
  background: var(--progress-back-color);
  color: var(--progress-fore-color); }
  progress::-webkit-progress-value {
    background: var(--progress-fore-color);
    border-top-left-radius: calc(2 * var(--universal-border-radius));
    border-bottom-left-radius: calc(2 * var(--universal-border-radius)); }
  progress::-webkit-progress-bar {
    background: var(--progress-back-color); }
  progress::-moz-progress-bar {
    background: var(--progress-fore-color);
    border-top-left-radius: calc(2 * var(--universal-border-radius));
    border-bottom-left-radius: calc(2 * var(--universal-border-radius)); }
  progress[value="1000"]::-webkit-progress-value {
    border-radius: calc(2 * var(--universal-border-radius)); }
  progress[value="1000"]::-moz-progress-bar {
    border-radius: calc(2 * var(--universal-border-radius)); }
  progress.inline {
    display: inline-block;
    vertical-align: middle;
    width: 60%; }

:root {
  --spinner-back-color: #ddd;
  --spinner-fore-color: #555; }

@keyframes spinner-donut-anim {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }
.spinner {
  display: inline-block;
  margin: var(--universal-margin);
  border: 0.25rem solid var(--spinner-back-color);
  border-left: 0.25rem solid var(--spinner-fore-color);
  border-radius: 50%;
  width: 1.25rem;
  height: 1.25rem;
  animation: spinner-donut-anim 1.2s linear infinite; }

/*
  Custom elements for progress bars and spinners.
*/
progress.primary {
  --progress-fore-color: #1976d2; }

progress.secondary {
  --progress-fore-color: #d32f2f; }

progress.tertiary {
  --progress-fore-color: #308732; }

.spinner.primary {
  --spinner-fore-color: #1976d2; }

.spinner.secondary {
  --spinner-fore-color: #d32f2f; }

.spinner.tertiary {
  --spinner-fore-color: #308732; }

/*
  Definitions for icons - powered by Feather (https://feathericons.com/).
*/
span[class^='icon-'] {
  display: inline-block;
  height: 1em;
  width: 1em;
  vertical-align: -0.125em;
  background-size: contain;
  margin: 0 calc(var(--universal-margin) / 4); }
  span[class^='icon-'].secondary {
    -webkit-filter: invert(25%);
    filter: invert(25%); }
  span[class^='icon-'].inverse {
    -webkit-filter: invert(100%);
    filter: invert(100%); }

span.icon-alert {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12' y2='16'%3E%3C/line%3E%3C/svg%3E"); }
span.icon-bookmark {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'%3E%3C/path%3E%3C/svg%3E"); }
span.icon-calendar {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E"); }
span.icon-credit {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='1' y1='10' x2='23' y2='10'%3E%3C/line%3E%3C/svg%3E"); }
span.icon-edit {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34'%3E%3C/path%3E%3Cpolygon points='18 2 22 6 12 16 8 16 8 12 18 2'%3E%3C/polygon%3E%3C/svg%3E"); }
span.icon-link {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15 3 21 3 21 9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E"); }
span.icon-help {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'%3E%3C/path%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='17' x2='12' y2='17'%3E%3C/line%3E%3C/svg%3E"); }
span.icon-home {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'%3E%3C/path%3E%3Cpolyline points='9 22 9 12 15 12 15 22'%3E%3C/polyline%3E%3C/svg%3E"); }
span.icon-info {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='16' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='8' x2='12' y2='8'%3E%3C/line%3E%3C/svg%3E"); }
span.icon-lock {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'%3E%3C/rect%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'%3E%3C/path%3E%3C/svg%3E"); }
span.icon-mail {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'%3E%3C/path%3E%3Cpolyline points='22,6 12,13 2,6'%3E%3C/polyline%3E%3C/svg%3E"); }
span.icon-location {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'%3E%3C/path%3E%3Ccircle cx='12' cy='10' r='3'%3E%3C/circle%3E%3C/svg%3E"); }
span.icon-phone {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'%3E%3C/path%3E%3C/svg%3E"); }
span.icon-rss {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11a9 9 0 0 1 9 9'%3E%3C/path%3E%3Cpath d='M4 4a16 16 0 0 1 16 16'%3E%3C/path%3E%3Ccircle cx='5' cy='19' r='1'%3E%3C/circle%3E%3C/svg%3E"); }
span.icon-search {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); }
span.icon-settings {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'%3E%3C/circle%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z'%3E%3C/path%3E%3C/svg%3E"); }
span.icon-share {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'%3E%3C/circle%3E%3Ccircle cx='6' cy='12' r='3'%3E%3C/circle%3E%3Ccircle cx='18' cy='19' r='3'%3E%3C/circle%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'%3E%3C/line%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'%3E%3C/line%3E%3C/svg%3E"); }
span.icon-cart {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'%3E%3C/circle%3E%3Ccircle cx='20' cy='21' r='1'%3E%3C/circle%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'%3E%3C/path%3E%3C/svg%3E"); }
span.icon-upload {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='17 8 12 3 7 8'%3E%3C/polyline%3E%3Cline x1='12' y1='3' x2='12' y2='15'%3E%3C/line%3E%3C/svg%3E"); }
span.icon-user {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E"); }

/*
  Definitions for utilities and helper classes.
*/
/* Utility module CSS variable definitions */
:root {
  --generic-border-color: rgba(0, 0, 0, 0.3);
  --generic-box-shadow: 0 0.25rem 0.25rem 0 rgba(0, 0, 0, 0.125), 0 0.125rem 0.125rem -0.125rem rgba(0, 0, 0, 0.25); }

.hidden {
  display: none !important; }

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  border: 0 !important;
  padding: 0 !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(100%) !important;
  clip-path: inset(100%) !important;
  overflow: hidden !important; }

.bordered {
  border: 0.0625rem solid var(--generic-border-color) !important; }

.rounded {
  border-radius: var(--universal-border-radius) !important; }

.circular {
  border-radius: 50% !important; }

.shadowed {
  box-shadow: var(--generic-box-shadow) !important; }

.responsive-margin {
  margin: calc(var(--universal-margin) / 4) !important; }
  @media screen and (min-width: 500px) {
    .responsive-margin {
      margin: calc(var(--universal-margin) / 2) !important; } }
  @media screen and (min-width: 1280px) {
    .responsive-margin {
      margin: var(--universal-margin) !important; } }

.responsive-padding {
  padding: calc(var(--universal-padding) / 4) !important; }
  @media screen and (min-width: 500px) {
    .responsive-padding {
      padding: calc(var(--universal-padding) / 2) !important; } }
  @media screen and (min-width: 1280px) {
    .responsive-padding {
      padding: var(--universal-padding) !important; } }

@media screen and (max-width: 499px) {
  .hidden-sm {
    display: none !important; } }
@media screen and (min-width: 500px) and (max-width: 1279px) {
  .hidden-md {
    display: none !important; } }
@media screen and (min-width: 1280px) {
  .hidden-lg {
    display: none !important; } }
@media screen and (max-width: 499px) {
  .visually-hidden-sm {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    border: 0 !important;
    padding: 0 !important;
    clip: rect(0 0 0 0) !important;
    -webkit-clip-path: inset(100%) !important;
    clip-path: inset(100%) !important;
    overflow: hidden !important; } }
@media screen and (min-width: 500px) and (max-width: 1279px) {
  .visually-hidden-md {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    border: 0 !important;
    padding: 0 !important;
    clip: rect(0 0 0 0) !important;
    -webkit-clip-path: inset(100%) !important;
    clip-path: inset(100%) !important;
    overflow: hidden !important; } }
@media screen and (min-width: 1280px) {
  .visually-hidden-lg {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    border: 0 !important;
    padding: 0 !important;
    clip: rect(0 0 0 0) !important;
    -webkit-clip-path: inset(100%) !important;
    clip-path: inset(100%) !important;
    overflow: hidden !important; } }

/*# sourceMappingURL=mini-default.css.map */
