/**
 * tom-select.css (v2.3.1)
 * Copyright (c) contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at:
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 *
 */
 .ts-control {
    border: 1px solid #d0d0d0;
    padding: 8px 8px;
    width: 100%;
    overflow: hidden;
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    box-shadow: none;
    border-radius: 3px;
    display: flex;
    flex-wrap: wrap;
  }
  .ts-wrapper.multi.has-items .ts-control {
    padding: calc(8px - 2px - 0) 8px calc(8px - 2px - 3px - 0);
  }
  .full .ts-control {
    background-color: #fff;
  }
  .disabled .ts-control, .disabled .ts-control * {
    cursor: default !important;
  }
  .focus .ts-control {
    box-shadow: none;
  }
  .ts-control > * {
    vertical-align: baseline;
    display: inline-block;
  }
  .ts-wrapper.multi .ts-control > div {
    cursor: pointer;
    margin: 0 3px 3px 0;
    padding: 2px 6px;
    background: #f2f2f2;
    color: #303030;
    border: 0 solid #d0d0d0;
  }
  .ts-wrapper.multi .ts-control > div.active {
    background: #e8e8e8;
    color: #303030;
    border: 0 solid #cacaca;
  }
  .ts-wrapper.multi.disabled .ts-control > div, .ts-wrapper.multi.disabled .ts-control > div.active {
    color: #7d7d7d;
    background: white;
    border: 0 solid white;
  }
  .ts-control > input {
    flex: 1 1 auto;
    min-width: 7rem;
    display: inline-block !important;
    padding: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    max-width: 100% !important;
    margin: 0 !important;
    text-indent: 0 !important;
    border: 0 none !important;
    background: none !important;
    line-height: inherit !important;
    -webkit-user-select: auto !important;
       -moz-user-select: auto !important;
        -ms-user-select: auto !important;
            user-select: auto !important;
    box-shadow: none !important;
  }
  .ts-control > input::-ms-clear {
    display: none;
  }
  .ts-control > input:focus {
    outline: none !important;
  }
  .has-items .ts-control > input {
    margin: 0 4px !important;
  }
  .ts-control.rtl {
    text-align: right;
  }
  .ts-control.rtl.single .ts-control:after {
    left: 15px;
    right: auto;
  }
  .ts-control.rtl .ts-control > input {
    margin: 0 4px 0 -2px !important;
  }
  .disabled .ts-control {
    opacity: 0.5;
    background-color: #fafafa;
  }
  .input-hidden .ts-control > input {
    opacity: 0;
    position: absolute;
    left: -10000px;
  }
  
  .ts-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    z-index: 10;
    border: 1px solid #d0d0d0;
    background: #fff;
    margin: 0.25rem 0 0;
    border-top: 0 none;
    box-sizing: border-box;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    border-radius: 0 0 3px 3px;
  }
  .ts-dropdown [data-selectable] {
    cursor: pointer;
    overflow: hidden;
  }
  .ts-dropdown [data-selectable] .highlight {
    background: rgba(125, 168, 208, 0.2);
    border-radius: 1px;
  }
  .ts-dropdown .option,
  .ts-dropdown .optgroup-header,
  .ts-dropdown .no-results,
  .ts-dropdown .create {
    padding: 5px 8px;
  }
  .ts-dropdown .option, .ts-dropdown [data-disabled], .ts-dropdown [data-disabled] [data-selectable].option {
    cursor: inherit;
    opacity: 0.5;
  }
  .ts-dropdown [data-selectable].option {
    opacity: 1;
    cursor: pointer;
  }
  .ts-dropdown .optgroup:first-child .optgroup-header {
    border-top: 0 none;
  }
  .ts-dropdown .optgroup-header {
    color: #303030;
    background: #fff;
    cursor: default;
  }
  .ts-dropdown .active {
    background-color: #f5fafd;
    color: #495c68;
  }
  .ts-dropdown .active.create {
    color: #495c68;
  }
  .ts-dropdown .create {
    color: rgba(48, 48, 48, 0.5);
  }
  .ts-dropdown .spinner {
    display: inline-block;
    width: 30px;
    height: 30px;
    margin: 5px 8px;
  }
  .ts-dropdown .spinner::after {
    content: " ";
    display: block;
    width: 24px;
    height: 24px;
    margin: 3px;
    border-radius: 50%;
    border: 5px solid #d0d0d0;
    border-color: #d0d0d0 transparent #d0d0d0 transparent;
    animation: lds-dual-ring 1.2s linear infinite;
  }
  @keyframes lds-dual-ring {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
  
  .ts-dropdown-content {
    overflow: hidden auto;
    max-height: 200px;
    scroll-behavior: smooth;
  }
  
  .ts-wrapper.plugin-drag_drop .ts-dragging {
    color: transparent !important;
  }
  .ts-wrapper.plugin-drag_drop .ts-dragging > * {
    visibility: hidden !important;
  }
  
  .plugin-checkbox_options:not(.rtl) .option input {
    margin-right: 0.5rem;
  }
  
  .plugin-checkbox_options.rtl .option input {
    margin-left: 0.5rem;
  }
  
  /* stylelint-disable function-name-case */
  .plugin-clear_button {
    --ts-pr-clear-button: 1em;
  }
  .plugin-clear_button .clear-button {
    opacity: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: calc(8px - 6px);
    margin-right: 0 !important;
    background: transparent !important;
    transition: opacity 0.5s;
    cursor: pointer;
  }
  .plugin-clear_button.form-select .clear-button, .plugin-clear_button.single .clear-button {
    right: max(var(--ts-pr-caret), 8px);
  }
  .plugin-clear_button.focus.has-items .clear-button, .plugin-clear_button:not(.disabled):hover.has-items .clear-button {
    opacity: 1;
  }
  
  .ts-wrapper .dropdown-header {
    position: relative;
    padding: 10px 8px;
    border-bottom: 1px solid #d0d0d0;
    background: color-mix(#fff, #d0d0d0, 85%);
    border-radius: 3px 3px 0 0;
  }
  .ts-wrapper .dropdown-header-close {
    position: absolute;
    right: 8px;
    top: 50%;
    color: #303030;
    opacity: 0.4;
    margin-top: -12px;
    line-height: 20px;
    font-size: 20px !important;
  }
  .ts-wrapper .dropdown-header-close:hover {
    color: black;
  }
  
  .plugin-dropdown_input.focus.dropdown-active .ts-control {
    box-shadow: none;
    border: 1px solid #d0d0d0;
  }
  .plugin-dropdown_input .dropdown-input {
    border: 1px solid #d0d0d0;
    border-width: 0 0 1px;
    display: block;
    padding: 8px 8px;
    box-shadow: none;
    width: 100%;
    background: transparent;
  }
  .plugin-dropdown_input .items-placeholder {
    border: 0 none !important;
    box-shadow: none !important;
    width: 100%;
  }
  .plugin-dropdown_input.has-items .items-placeholder, .plugin-dropdown_input.dropdown-active .items-placeholder {
    display: none !important;
  }
  
  .ts-wrapper.plugin-input_autogrow.has-items .ts-control > input {
    min-width: 0;
  }
  .ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input {
    flex: none;
    min-width: 4px;
  }
  .ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::-ms-input-placeholder {
    color: transparent;
  }
  .ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::placeholder {
    color: transparent;
  }
  
  .ts-dropdown.plugin-optgroup_columns .ts-dropdown-content {
    display: flex;
  }
  .ts-dropdown.plugin-optgroup_columns .optgroup {
    border-right: 1px solid #f2f2f2;
    border-top: 0 none;
    flex-grow: 1;
    flex-basis: 0;
    min-width: 0;
  }
  .ts-dropdown.plugin-optgroup_columns .optgroup:last-child {
    border-right: 0 none;
  }
  .ts-dropdown.plugin-optgroup_columns .optgroup::before {
    display: none;
  }
  .ts-dropdown.plugin-optgroup_columns .optgroup-header {
    border-top: 0 none;
  }
  
  .ts-wrapper.plugin-remove_button .item {
    display: inline-flex;
    align-items: center;
  }
  .ts-wrapper.plugin-remove_button .item .remove {
    color: inherit;
    text-decoration: none;
    vertical-align: middle;
    display: inline-block;
    padding: 0 6px;
    border-radius: 0 2px 2px 0;
    box-sizing: border-box;
  }
  .ts-wrapper.plugin-remove_button .item .remove:hover {
    background: rgba(0, 0, 0, 0.05);
  }
  .ts-wrapper.plugin-remove_button.disabled .item .remove:hover {
    background: none;
  }
  .ts-wrapper.plugin-remove_button .remove-single {
    position: absolute;
    right: 0;
    top: 0;
    font-size: 23px;
  }
  
  .ts-wrapper.plugin-remove_button:not(.rtl) .item {
    padding-right: 0 !important;
  }
  .ts-wrapper.plugin-remove_button:not(.rtl) .item .remove {
    border-left: 1px solid #d0d0d0;
    margin-left: 6px;
  }
  .ts-wrapper.plugin-remove_button:not(.rtl) .item.active .remove {
    border-left-color: #cacaca;
  }
  .ts-wrapper.plugin-remove_button:not(.rtl).disabled .item .remove {
    border-left-color: white;
  }
  
  .ts-wrapper.plugin-remove_button.rtl .item {
    padding-left: 0 !important;
  }
  .ts-wrapper.plugin-remove_button.rtl .item .remove {
    border-right: 1px solid #d0d0d0;
    margin-right: 6px;
  }
  .ts-wrapper.plugin-remove_button.rtl .item.active .remove {
    border-right-color: #cacaca;
  }
  .ts-wrapper.plugin-remove_button.rtl.disabled .item .remove {
    border-right-color: white;
  }
  
  :root {
    --ts-pr-clear-button: 0;
    --ts-pr-caret: 0;
    --ts-pr-min: .75rem;
  }
  
  .ts-wrapper.single .ts-control, .ts-wrapper.single .ts-control input {
    cursor: pointer;
  }
  
  .ts-control:not(.rtl) {
    padding-right: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
  }
  
  .ts-control.rtl {
    padding-left: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
  }
  
  .ts-wrapper {
    position: relative;
  }
  
  .ts-dropdown,
  .ts-control,
  .ts-control input {
    color: #303030;
    font-family: inherit;
    font-size: 13px;
    line-height: 18px;
    
  }
  
 

  .ts-control,
  .ts-wrapper.single.input-active .ts-control {
    background: #fff;
    cursor: text;
  }
  
  .ts-hidden-accessible {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    -webkit-clip-path: inset(50%) !important;
            clip-path: inset(50%) !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important;
    white-space: nowrap !important;
  }
  /*# sourceMappingURL=tom-select.css.map */
/*
 Copyright (c) 2022- Damjan Rems
*/
@font-face {
  font-family: MI;
  font-style: normal;
  font-weight: 400;
  src: url(https://playgroup.gg/assets/material-icons-regular-dafdbac44033fa5944dd6dfc4faf59c0fdee74e776d27b840c9738846933d976.woff2) format('woff2')
}

@font-face {
  font-family: MI-O;
  font-style: normal;
  font-weight: 400;
  src: url(https://playgroup.gg/assets/material-icons-outline-f1813ed45ffe6c1db46949fcb19116b900ce3be913d4add68f8eaf4d68c7eac6.woff2) format('woff2')
}

.mi, .fa {
  font-family: MI;
}
.mi-o {
  font-family: MI-O;
}

.mi, .mi-o, .fa {
  font-size: 24px;
  font-weight: normal;
  font-style: normal;
  vertical-align: middle;
  display: inline-block;
  width: initial;
  height: 1em;
  text-transform: none;

  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;
  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;
}

/* Rules for sizing the icon. */
.mi-md-18 { font-size: 18px; }
.mi-md-24 { font-size: 24px; }
.mi-md-36 { font-size: 36px; }
.mi-md-48 { font-size: 48px; }

/* Rules for using icons as black on a light background. */
.mi-md-dark { color: rgba(0, 0, 0, 0.54); }
.mi-md-dark.md-inactive { color: rgba(0, 0, 0, 0.26); }

/* Rules for using icons as white on a dark background. */
.mi-md-light { color: rgba(255, 255, 255, 1); }
.mi-md-inactive { color: rgba(255, 255, 255, 0.3); }

/* Rules to rotate items */
.mi-r90 {
  transform: rotate(90deg);
}
.mi-r180 {
  transform: rotate(180deg);
}
.mi-r270 {
  transform: rotate(270deg);
}
.mi-flip-horizontal {
  transform: scale(-1, 1);
}
.mi-flip-vertical {
  transform: scale(1, -1);
}

/* old fa- settings and mi- replacements */
.mi-lg, .fa-lg {
  font-size: 32px;
}
.mi-2x, .fa-2x {
  font-size: 48px;
}
.mi-3x, .fa-3x {
  font-size: 72px;
}
.mi-4x, .fa-4x {
  font-size: 96px;
}
.mi-5x, .fa-5x {
  font-size: 120px;
}
.mi-ul, .fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.mi-ul > li, .fa-ul > li {
  position: relative;
}
.mi-li, .fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.mi-li.mi-lg, .fa-li.fa-lg {
  left: -1.85714286em;
}
.mi-border, .fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eeeeee;
  border-radius: .1em;
}
.mi-pull-left, .fa-pull-left {
  float: left;
}
.mi-pull-right, .fa-pull-right {
  float: right;
}
.mi.mi-pull-left, .fa.fa-pull-left {
  margin-right: .3em;
}
.mi.mi-pull-right, .fa.fa-pull-right {
  margin-left: .3em;
}

.mi.pull-left, .fa.pull-left {
  margin-right: .3em;
}
.mi.pull-right .fa.pull-right {
  margin-left: .3em;
}
.mi-spin, .fa-spin {
  -webkit-animation: fa-spin 1.5s infinite linear;
  animation: fa-spin 1.5s infinite linear;
}
.mi-pulse, .fa-pulse {
  -webkit-animation: fa-spin 1s infinite steps(8);
  animation: fa-spin 1s infinite steps(8);
}

@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@-webkit-keyframes mi-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}

@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes mi-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}

.mi-rotate-90, .fa-rotate-90 {
  transform: rotate(90deg);
}
.mi-rotate-180, .fa-rotate-180 {
  transform: rotate(180deg);
}
.mi-rotate-270, .fa-rotate-270 {
  transform: rotate(270deg);
}
.mi-flip-horizontal, .fa-flip-horizontal {
  transform: scale(-1, 1);
}
.mi-flip-vertical, .fa-flip-vertical {
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical,
:root .mi-rotate-90,
:root .mi-rotate-180,
:root .mi-rotate-270,
:root .mi-flip-horizontal,
:root .mi-flip-vertical {
  filter: none;
}
.mi-stack, .fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x,
.mi-stack-1x,
.mi-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.mi-stack-1x, .fa-stack-1x {
  line-height: inherit;
}
.mi-stack-2x, .fa-stack-2x {
  font-size: 2em;
}
.mi-inverse, .fa-inverse {
  color: #fff;
}

.mi-red { color: #c43;}
.mi-green { color: #6a6;}
.mi-blue { color: #28f;}
.mi-violet { color: #71c;}

/* fa icons replacements */
.mi-user:before {content: '\e7fd';}
.mi-users:before {content: '\e7fc';}
.mi-bars:before {content: '\e5d2';}
.mi-file_excel:before {content: '\e2c4'}
.mi-cog:before {content: '\e8b8';}
.mi-envelope:before {content: '\e0e1';}
.mi-square:before {content: '\e834';}
.mi-check_square:before {content: '\e835';}
.mi-plus:before {content: '\e145';}
.mi-frown:before {content: '\e811';}
.mi-thumbs_up:before {content: '\e8dc';}
.mi-thumbs_down:before {content: '\e8db';}
.mi-mobile:before {content: '\e32c';}
.mi-eye:before {content: '\e8f4';}
.mi-question:before {content: '\eb8b';}
.mi-question_circle:before {content: '\e887';}
.mi-calendar:before {content: '\ebcc';}
.mi-table:before {content: '\f101';}
.mi-sliders:before {content: '\e429';}
.mi-file_text:before {content: '\e873';}
.mi-trash:before {content: '\e92e';}
.mi-caret_down:before {content: '\e5c5';}
.mi-sort_unset:before {content: '\ef4f';}
.mi-sort_up:before {content: '\e5db';}
.mi-sort_down:before {content: '\e5d8';}
.mi-arrow_right:before {content: '\e5c8';}
.mi-arrow_left:before {content: '\e5c4';}
.mi-clock:before {content: '\e8b5';}
.mi-calculator:before {content: '\ea5f';}
.mi-car:before {content: '\e531';}
.mi-plus_square:before {content: '\e146';}
.mi-paperclip:before {content: '\e226';}
.mi-sign_in:before {content: '\ea77';}
.mi-sign_out:before {content: '\e9ba';}
.mi-check_circle:before {content: '\e86c';}
.mi-plus_circle:before {content: '\e147';}
.mi-cogs:before {content: '\ea3d';}
.mi-table:before {font-family: MI-O; content: '\f101';}
.mi-arrow_up:before {content: '\e5d8';}
.mi-arrow_down:before {content: '\e5db';}
.mi-window_close:before {content: '\e0e9';}
.mi-chevron_down:before {content: '\e5cf';}
.mi-chevron_up:before {content: '\e5ce';}
.mi-angle_down:before {content: '\e5cf'; font-size: 18px}
.mi-angle_up:before {content: '\e5ce'; font-size: 18px}
.mi-times:before {content: '\e5cd'}

.mi-10k:before {content: '\e951';}
.mi-10mp:before {content: '\e952';}
.mi-11mp:before {content: '\e953';}
.mi-123:before {content: '\eb8d';}
.mi-12mp:before {content: '\e954';}
.mi-13mp:before {content: '\e955';}
.mi-14mp:before {content: '\e956';}
.mi-15mp:before {content: '\e957';}
.mi-16mp:before {content: '\e958';}
.mi-17mp:before {content: '\e959';}
.mi-18_up_rating:before {content: '\f8fd';}
.mi-18mp:before {content: '\e95a';}
.mi-19mp:before {content: '\e95b';}
.mi-1k:before {content: '\e95c';}
.mi-1k_plus:before {content: '\e95d';}
.mi-1x_mobiledata:before {content: '\efcd';}
.mi-1x_mobiledata_badge:before {content: '\f7f1';}
.mi-20mp:before {content: '\e95e';}
.mi-21mp:before {content: '\e95f';}
.mi-22mp:before {content: '\e960';}
.mi-23mp:before {content: '\e961';}
.mi-24mp:before {content: '\e962';}
.mi-2d:before {content: '\ef37';}
.mi-2k:before {content: '\e963';}
.mi-2k_plus:before {content: '\e964';}
.mi-2mp:before {content: '\e965';}
.mi-30fps:before {content: '\efce';}
.mi-30fps_select:before {content: '\efcf';}
.mi-360:before {content: '\e577';}
.mi-3d_rotation:before {content: '\e84d';}
.mi-3g_mobiledata:before {content: '\efd0';}
.mi-3g_mobiledata_badge:before {content: '\f7f0';}
.mi-3k:before {content: '\e966';}
.mi-3k_plus:before {content: '\e967';}
.mi-3mp:before {content: '\e968';}
.mi-3p:before {content: '\efd1';}
.mi-4g_mobiledata:before {content: '\efd2';}
.mi-4g_mobiledata_badge:before {content: '\f7ef';}
.mi-4g_plus_mobiledata:before {content: '\efd3';}
.mi-4k:before {content: '\e072';}
.mi-4k_plus:before {content: '\e969';}
.mi-4mp:before {content: '\e96a';}
.mi-50mp:before {content: '\f6f3';}
.mi-5g:before {content: '\ef38';}
.mi-5g_mobiledata_badge:before {content: '\f7ee';}
.mi-5k:before {content: '\e96b';}
.mi-5k_plus:before {content: '\e96c';}
.mi-5mp:before {content: '\e96d';}
.mi-60fps:before {content: '\efd4';}
.mi-60fps_select:before {content: '\efd5';}
.mi-6_ft_apart:before {content: '\f21e';}
.mi-6k:before {content: '\e96e';}
.mi-6k_plus:before {content: '\e96f';}
.mi-6mp:before {content: '\e970';}
.mi-7k:before {content: '\e971';}
.mi-7k_plus:before {content: '\e972';}
.mi-7mp:before {content: '\e973';}
.mi-8k:before {content: '\e974';}
.mi-8k_plus:before {content: '\e975';}
.mi-8mp:before {content: '\e976';}
.mi-9k:before {content: '\e977';}
.mi-9k_plus:before {content: '\e978';}
.mi-9mp:before {content: '\e979';}
.mi-abc:before {content: '\eb94';}
.mi-ac_unit:before {content: '\eb3b';}
.mi-access_alarm:before {content: '\e855';}
.mi-access_alarms:before {content: '\e855';}
.mi-access_time:before {content: '\efd6';}
.mi-access_time_filled:before {content: '\efd6';}
.mi-accessibility:before {content: '\e84e';}
.mi-accessibility_new:before {content: '\e92c';}
.mi-accessible:before {content: '\e914';}
.mi-accessible_forward:before {content: '\e934';}
.mi-account_balance:before {content: '\e84f';}
.mi-account_balance_wallet:before {content: '\e850';}
.mi-account_box:before {content: '\e851';}
.mi-account_child:before {content: '\e852';}
.mi-account_child_invert:before {content: '\e659';}
.mi-account_circle:before {content: '\f20b';}
.mi-account_circle_filled:before {content: '\f20b';}
.mi-account_circle_off:before {content: '\f7b3';}
.mi-account_tree:before {content: '\e97a';}
.mi-action_key:before {content: '\f502';}
.mi-activity_zone:before {content: '\e1e6';}
.mi-acute:before {content: '\e4cb';}
.mi-ad:before {content: '\e65a';}
.mi-ad_group:before {content: '\e65b';}
.mi-ad_group_off:before {content: '\eae5';}
.mi-ad_off:before {content: '\f7b2';}
.mi-ad_units:before {content: '\ef39';}
.mi-adb:before {content: '\e60e';}
.mi-add:before {content: '\e145';}
.mi-add_a_photo:before {content: '\e439';}
.mi-add_ad:before {content: '\e72a';}
.mi-add_alarm:before {content: '\e856';}
.mi-add_alert:before {content: '\e003';}
.mi-add_box:before {content: '\e146';}
.mi-add_business:before {content: '\e729';}
.mi-add_call:before {content: '\f0b7';}
.mi-add_card:before {content: '\eb86';}
.mi-add_chart:before {content: '\ef3c';}
.mi-add_circle:before {content: '\e3ba';}
.mi-add_circle_outline:before {content: '\e3ba';}
.mi-add_comment:before {content: '\e266';}
.mi-add_home:before {content: '\f8eb';}
.mi-add_home_work:before {content: '\f8ed';}
.mi-add_ic_call:before {content: '\f0b7';}
.mi-add_link:before {content: '\e178';}
.mi-add_location:before {content: '\e567';}
.mi-add_location_alt:before {content: '\ef3a';}
.mi-add_moderator:before {content: '\e97d';}
.mi-add_notes:before {content: '\e091';}
.mi-add_photo_alternate:before {content: '\e43e';}
.mi-add_reaction:before {content: '\e1d3';}
.mi-add_road:before {content: '\ef3b';}
.mi-add_shopping_cart:before {content: '\e854';}
.mi-add_task:before {content: '\f23a';}
.mi-add_to_drive:before {content: '\e65c';}
.mi-add_to_home_screen:before {content: '\e1fe';}
.mi-add_to_photos:before {content: '\e39d';}
.mi-add_to_queue:before {content: '\e05c';}
.mi-addchart:before {content: '\ef3c';}
.mi-adf_scanner:before {content: '\eada';}
.mi-adjust:before {content: '\e39e';}
.mi-admin_meds:before {content: '\e48d';}
.mi-admin_panel_settings:before {content: '\ef3d';}
.mi-ads_click:before {content: '\e762';}
.mi-agender:before {content: '\f888';}
.mi-agriculture:before {content: '\ea79';}
.mi-air:before {content: '\efd8';}
.mi-air_freshener:before {content: '\e2ca';}
.mi-air_purifier:before {content: '\e97e';}
.mi-air_purifier_gen:before {content: '\e829';}
.mi-airline_seat_flat:before {content: '\e630';}
.mi-airline_seat_flat_angled:before {content: '\e631';}
.mi-airline_seat_individual_suite:before {content: '\e632';}
.mi-airline_seat_legroom_extra:before {content: '\e633';}
.mi-airline_seat_legroom_normal:before {content: '\e634';}
.mi-airline_seat_legroom_reduced:before {content: '\e635';}
.mi-airline_seat_recline_extra:before {content: '\e636';}
.mi-airline_seat_recline_normal:before {content: '\e637';}
.mi-airline_stops:before {content: '\e7d0';}
.mi-airlines:before {content: '\e7ca';}
.mi-airplane_ticket:before {content: '\efd9';}
.mi-airplanemode_active:before {content: '\e53d';}
.mi-airplanemode_inactive:before {content: '\e194';}
.mi-airplay:before {content: '\e055';}
.mi-airport_shuttle:before {content: '\eb3c';}
.mi-airware:before {content: '\f154';}
.mi-airwave:before {content: '\f154';}
.mi-alarm:before {content: '\e855';}
.mi-alarm_add:before {content: '\e856';}
.mi-alarm_off:before {content: '\e857';}
.mi-alarm_on:before {content: '\e858';}
.mi-alarm_smart_wake:before {content: '\f6b0';}
.mi-album:before {content: '\e019';}
.mi-align_center:before {content: '\e356';}
.mi-align_end:before {content: '\f797';}
.mi-align_flex_center:before {content: '\f796';}
.mi-align_flex_end:before {content: '\f795';}
.mi-align_flex_start:before {content: '\f794';}
.mi-align_horizontal_center:before {content: '\e00f';}
.mi-align_horizontal_left:before {content: '\e00d';}
.mi-align_horizontal_right:before {content: '\e010';}
.mi-align_items_stretch:before {content: '\f793';}
.mi-align_justify_center:before {content: '\f792';}
.mi-align_justify_flex_end:before {content: '\f791';}
.mi-align_justify_flex_start:before {content: '\f790';}
.mi-align_justify_space_around:before {content: '\f78f';}
.mi-align_justify_space_between:before {content: '\f78e';}
.mi-align_justify_space_even:before {content: '\f78d';}
.mi-align_justify_stretch:before {content: '\f78c';}
.mi-align_self_stretch:before {content: '\f78b';}
.mi-align_space_around:before {content: '\f78a';}
.mi-align_space_between:before {content: '\f789';}
.mi-align_space_even:before {content: '\f788';}
.mi-align_start:before {content: '\f787';}
.mi-align_stretch:before {content: '\f786';}
.mi-align_vertical_bottom:before {content: '\e015';}
.mi-align_vertical_center:before {content: '\e011';}
.mi-align_vertical_top:before {content: '\e00c';}
.mi-all_inbox:before {content: '\e97f';}
.mi-all_inclusive:before {content: '\eb3d';}
.mi-all_match:before {content: '\e093';}
.mi-all_out:before {content: '\e90b';}
.mi-allergies:before {content: '\e094';}
.mi-allergy:before {content: '\e64e';}
.mi-alt_route:before {content: '\f184';}
.mi-alternate_email:before {content: '\e0e6';}
.mi-altitude:before {content: '\f873';}
.mi-ambient_screen:before {content: '\f6c4';}
.mi-ambulance:before {content: '\f803';}
.mi-amend:before {content: '\f802';}
.mi-amp_stories:before {content: '\ea13';}
.mi-analytics:before {content: '\ef3e';}
.mi-anchor:before {content: '\f1cd';}
.mi-android:before {content: '\e859';}
.mi-animation:before {content: '\e71c';}
.mi-announcement:before {content: '\e87f';}
.mi-aod:before {content: '\efda';}
.mi-aod_tablet:before {content: '\f89f';}
.mi-aod_watch:before {content: '\f6ac';}
.mi-apartment:before {content: '\ea40';}
.mi-api:before {content: '\f1b7';}
.mi-apk_document:before {content: '\f88e';}
.mi-apk_install:before {content: '\f88f';}
.mi-app_badging:before {content: '\f72f';}
.mi-app_blocking:before {content: '\ef3f';}
.mi-app_promo:before {content: '\e981';}
.mi-app_registration:before {content: '\ef40';}
.mi-app_settings_alt:before {content: '\ef41';}
.mi-app_shortcut:before {content: '\eae4';}
.mi-apparel:before {content: '\ef7b';}
.mi-approval:before {content: '\e982';}
.mi-approval_delegation:before {content: '\f84a';}
.mi-apps:before {content: '\e5c3';}
.mi-apps_outage:before {content: '\e7cc';}
.mi-aq:before {content: '\f55a';}
.mi-aq_indoor:before {content: '\f55b';}
.mi-ar_on_you:before {content: '\ef7c';}
.mi-ar_stickers:before {content: '\e983';}
.mi-architecture:before {content: '\ea3b';}
.mi-archive:before {content: '\e149';}
.mi-area_chart:before {content: '\e770';}
.mi-arming_countdown:before {content: '\e78a';}
.mi-arrow_and_edge:before {content: '\f5d7';}
.mi-arrow_back:before {content: '\e5c4';}
.mi-arrow_back_ios:before {content: '\e5e0';}
.mi-arrow_back_ios_new:before {content: '\e2ea';}
.mi-arrow_circle_down:before {content: '\f181';}
.mi-arrow_circle_left:before {content: '\eaa7';}
.mi-arrow_circle_right:before {content: '\eaaa';}
.mi-arrow_circle_up:before {content: '\f182';}
.mi-arrow_downward:before {content: '\e5db';}
.mi-arrow_downward_alt:before {content: '\e984';}
.mi-arrow_drop_down:before {content: '\e5c5';}
.mi-arrow_drop_down_circle:before {content: '\e5c6';}
.mi-arrow_drop_up:before {content: '\e5c7';}
.mi-arrow_forward:before {content: '\e5c8';}
.mi-arrow_forward_ios:before {content: '\e5e1';}
.mi-arrow_insert:before {content: '\f837';}
.mi-arrow_left:before {content: '\e5de';}
.mi-arrow_left_alt:before {content: '\ef7d';}
.mi-arrow_or_edge:before {content: '\f5d6';}
.mi-arrow_outward:before {content: '\f8ce';}
.mi-arrow_range:before {content: '\f69b';}
.mi-arrow_right:before {content: '\e5df';}
.mi-arrow_right_alt:before {content: '\e941';}
.mi-arrow_selector_tool:before {content: '\f82f';}
.mi-arrow_split:before {content: '\ea04';}
.mi-arrow_top_left:before {content: '\f72e';}
.mi-arrow_top_right:before {content: '\f72d';}
.mi-arrow_upward:before {content: '\e5d8';}
.mi-arrow_upward_alt:before {content: '\e986';}
.mi-arrows_more_down:before {content: '\f8ab';}
.mi-arrows_more_up:before {content: '\f8ac';}
.mi-arrows_outward:before {content: '\f72c';}
.mi-art_track:before {content: '\e060';}
.mi-article:before {content: '\ef42';}
.mi-article_shortcut:before {content: '\f587';}
.mi-artist:before {content: '\e01a';}
.mi-aspect_ratio:before {content: '\e85b';}
.mi-assessment:before {content: '\f0cc';}
.mi-assignment:before {content: '\e85d';}
.mi-assignment_add:before {content: '\f848';}
.mi-assignment_ind:before {content: '\e85e';}
.mi-assignment_late:before {content: '\e85f';}
.mi-assignment_return:before {content: '\e860';}
.mi-assignment_returned:before {content: '\e861';}
.mi-assignment_turned_in:before {content: '\e862';}
.mi-assist_walker:before {content: '\f8d5';}
.mi-assistant:before {content: '\e39f';}
.mi-assistant_device:before {content: '\e987';}
.mi-assistant_direction:before {content: '\e988';}
.mi-assistant_navigation:before {content: '\e989';}
.mi-assistant_on_hub:before {content: '\f6c1';}
.mi-assistant_photo:before {content: '\f0c6';}
.mi-assured_workload:before {content: '\eb6f';}
.mi-asterisk:before {content: '\f525';}
.mi-astrophotography_auto:before {content: '\f1d9';}
.mi-astrophotography_off:before {content: '\f1da';}
.mi-atm:before {content: '\e573';}
.mi-atr:before {content: '\ebc7';}
.mi-attach_email:before {content: '\ea5e';}
.mi-attach_file:before {content: '\e226';}
.mi-attach_file_add:before {content: '\f841';}
.mi-attach_file_off:before {content: '\f4d9';}
.mi-attach_money:before {content: '\e227';}
.mi-attachment:before {content: '\e2bc';}
.mi-attractions:before {content: '\ea52';}
.mi-attribution:before {content: '\efdb';}
.mi-audio_description:before {content: '\f58c';}
.mi-audio_file:before {content: '\eb82';}
.mi-audio_video_receiver:before {content: '\f5d3';}
.mi-audiotrack:before {content: '\e405';}
.mi-auto_activity_zone:before {content: '\f8ad';}
.mi-auto_awesome:before {content: '\e65f';}
.mi-auto_awesome_mosaic:before {content: '\e660';}
.mi-auto_awesome_motion:before {content: '\e661';}
.mi-auto_delete:before {content: '\ea4c';}
.mi-auto_detect_voice:before {content: '\f83e';}
.mi-auto_draw_solid:before {content: '\e98a';}
.mi-auto_fix:before {content: '\e663';}
.mi-auto_fix_high:before {content: '\e663';}
.mi-auto_fix_normal:before {content: '\e664';}
.mi-auto_fix_off:before {content: '\e665';}
.mi-auto_graph:before {content: '\e4fb';}
.mi-auto_label:before {content: '\f6be';}
.mi-auto_meeting_room:before {content: '\f6bf';}
.mi-auto_mode:before {content: '\ec20';}
.mi-auto_read_pause:before {content: '\f219';}
.mi-auto_read_play:before {content: '\f216';}
.mi-auto_schedule:before {content: '\e214';}
.mi-auto_stories:before {content: '\e666';}
.mi-auto_timer:before {content: '\ef7f';}
.mi-auto_towing:before {content: '\e71e';}
.mi-auto_transmission:before {content: '\f53f';}
.mi-auto_videocam:before {content: '\f6c0';}
.mi-autofps_select:before {content: '\efdc';}
.mi-autopause:before {content: '\f6b6';}
.mi-autopay:before {content: '\f84b';}
.mi-autoplay:before {content: '\f6b5';}
.mi-autorenew:before {content: '\e863';}
.mi-autostop:before {content: '\f682';}
.mi-av_timer:before {content: '\e01b';}
.mi-avg_pace:before {content: '\f6bb';}
.mi-avg_time:before {content: '\f813';}
.mi-award_star:before {content: '\f612';}
.mi-azm:before {content: '\f6ec';}
.mi-baby_changing_station:before {content: '\f19b';}
.mi-back_hand:before {content: '\e764';}
.mi-back_to_tab:before {content: '\f72b';}
.mi-background_dot_large:before {content: '\f79e';}
.mi-background_dot_small:before {content: '\f514';}
.mi-background_grid_small:before {content: '\f79d';}
.mi-background_replace:before {content: '\f20a';}
.mi-backlight_high:before {content: '\f7ed';}
.mi-backlight_high_off:before {content: '\f4ef';}
.mi-backlight_low:before {content: '\f7ec';}
.mi-backpack:before {content: '\f19c';}
.mi-backspace:before {content: '\e14a';}
.mi-backup:before {content: '\e864';}
.mi-backup_table:before {content: '\ef43';}
.mi-badge:before {content: '\ea67';}
.mi-badge_critical_battery:before {content: '\f156';}
.mi-bakery_dining:before {content: '\ea53';}
.mi-balance:before {content: '\eaf6';}
.mi-balcony:before {content: '\e58f';}
.mi-ballot:before {content: '\e172';}
.mi-bar_chart:before {content: '\e26b';}
.mi-bar_chart_4_bars:before {content: '\f681';}
.mi-barcode:before {content: '\e70b';}
.mi-barcode_reader:before {content: '\f85c';}
.mi-barcode_scanner:before {content: '\e70c';}
.mi-barefoot:before {content: '\f871';}
.mi-batch_prediction:before {content: '\f0f5';}
.mi-bath_outdoor:before {content: '\f6fb';}
.mi-bath_private:before {content: '\f6fa';}
.mi-bath_public_large:before {content: '\f6f9';}
.mi-bathroom:before {content: '\efdd';}
.mi-bathtub:before {content: '\ea41';}
.mi-battery_0_bar:before {content: '\ebdc';}
.mi-battery_1_bar:before {content: '\f09c';}
.mi-battery_20:before {content: '\f09c';}
.mi-battery_2_bar:before {content: '\f09d';}
.mi-battery_30:before {content: '\f09d';}
.mi-battery_3_bar:before {content: '\f09e';}
.mi-battery_4_bar:before {content: '\f09f';}
.mi-battery_50:before {content: '\f09e';}
.mi-battery_5_bar:before {content: '\f0a0';}
.mi-battery_60:before {content: '\f09f';}
.mi-battery_6_bar:before {content: '\f0a1';}
.mi-battery_80:before {content: '\f0a0';}
.mi-battery_90:before {content: '\f0a1';}
.mi-battery_alert:before {content: '\e19c';}
.mi-battery_change:before {content: '\f7eb';}
.mi-battery_charging_20:before {content: '\f0a2';}
.mi-battery_charging_30:before {content: '\f0a3';}
.mi-battery_charging_50:before {content: '\f0a4';}
.mi-battery_charging_60:before {content: '\f0a5';}
.mi-battery_charging_80:before {content: '\f0a6';}
.mi-battery_charging_90:before {content: '\f0a7';}
.mi-battery_charging_full:before {content: '\e1a3';}
.mi-battery_error:before {content: '\f7ea';}
.mi-battery_full:before {content: '\e1a5';}
.mi-battery_full_alt:before {content: '\f13b';}
.mi-battery_horiz_000:before {content: '\f8ae';}
.mi-battery_horiz_050:before {content: '\f8af';}
.mi-battery_horiz_075:before {content: '\f8b0';}
.mi-battery_low:before {content: '\f155';}
.mi-battery_plus:before {content: '\f7e9';}
.mi-battery_profile:before {content: '\e206';}
.mi-battery_saver:before {content: '\efde';}
.mi-battery_share:before {content: '\f67e';}
.mi-battery_status_good:before {content: '\f67d';}
.mi-battery_std:before {content: '\e1a5';}
.mi-battery_unknown:before {content: '\e1a6';}
.mi-battery_vert_005:before {content: '\f8b1';}
.mi-battery_vert_020:before {content: '\f8b2';}
.mi-battery_vert_050:before {content: '\f8b3';}
.mi-battery_very_low:before {content: '\f156';}
.mi-beach_access:before {content: '\eb3e';}
.mi-bed:before {content: '\efdf';}
.mi-bedroom_baby:before {content: '\efe0';}
.mi-bedroom_child:before {content: '\efe1';}
.mi-bedroom_parent:before {content: '\efe2';}
.mi-bedtime:before {content: '\ef44';}
.mi-bedtime_off:before {content: '\eb76';}
.mi-beenhere:before {content: '\e52d';}
.mi-bento:before {content: '\f1f4';}
.mi-bia:before {content: '\f6eb';}
.mi-bid_landscape:before {content: '\e678';}
.mi-bid_landscape_disabled:before {content: '\ef81';}
.mi-bigtop_updates:before {content: '\e669';}
.mi-bike_scooter:before {content: '\ef45';}
.mi-biotech:before {content: '\ea3a';}
.mi-blanket:before {content: '\e828';}
.mi-blender:before {content: '\efe3';}
.mi-blind:before {content: '\f8d6';}
.mi-blinds:before {content: '\e286';}
.mi-blinds_closed:before {content: '\ec1f';}
.mi-block:before {content: '\f08c';}
.mi-blood_pressure:before {content: '\e097';}
.mi-bloodtype:before {content: '\efe4';}
.mi-bluetooth:before {content: '\e1a7';}
.mi-bluetooth_audio:before {content: '\e60f';}
.mi-bluetooth_connected:before {content: '\e1a8';}
.mi-bluetooth_disabled:before {content: '\e1a9';}
.mi-bluetooth_drive:before {content: '\efe5';}
.mi-bluetooth_searching:before {content: '\e60f';}
.mi-blur_circular:before {content: '\e3a2';}
.mi-blur_linear:before {content: '\e3a3';}
.mi-blur_medium:before {content: '\e84c';}
.mi-blur_off:before {content: '\e3a4';}
.mi-blur_on:before {content: '\e3a5';}
.mi-blur_short:before {content: '\e8cf';}
.mi-body_fat:before {content: '\e098';}
.mi-body_system:before {content: '\e099';}
.mi-bolt:before {content: '\ea0b';}
.mi-bomb:before {content: '\f568';}
.mi-book:before {content: '\e86e';}
.mi-book_2:before {content: '\f53e';}
.mi-book_3:before {content: '\f53d';}
.mi-book_4:before {content: '\f53c';}
.mi-book_5:before {content: '\f53b';}
.mi-book_online:before {content: '\f217';}
.mi-bookmark:before {content: '\e8e7';}
.mi-bookmark_add:before {content: '\e598';}
.mi-bookmark_added:before {content: '\e599';}
.mi-bookmark_border:before {content: '\e8e7';}
.mi-bookmark_manager:before {content: '\f7b1';}
.mi-bookmark_remove:before {content: '\e59a';}
.mi-bookmarks:before {content: '\e98b';}
.mi-border_all:before {content: '\e228';}
.mi-border_bottom:before {content: '\e229';}
.mi-border_clear:before {content: '\e22a';}
.mi-border_color:before {content: '\e22b';}
.mi-border_horizontal:before {content: '\e22c';}
.mi-border_inner:before {content: '\e22d';}
.mi-border_left:before {content: '\e22e';}
.mi-border_outer:before {content: '\e22f';}
.mi-border_right:before {content: '\e230';}
.mi-border_style:before {content: '\e231';}
.mi-border_top:before {content: '\e232';}
.mi-border_vertical:before {content: '\e233';}
.mi-bottom_app_bar:before {content: '\e730';}
.mi-bottom_drawer:before {content: '\e72d';}
.mi-bottom_navigation:before {content: '\e98c';}
.mi-bottom_panel_close:before {content: '\f72a';}
.mi-bottom_panel_open:before {content: '\f729';}
.mi-bottom_right_click:before {content: '\f684';}
.mi-bottom_sheets:before {content: '\e98d';}
.mi-box:before {content: '\f5a4';}
.mi-box_add:before {content: '\f5a5';}
.mi-box_edit:before {content: '\f5a6';}
.mi-boy:before {content: '\eb67';}
.mi-brand_awareness:before {content: '\e98e';}
.mi-brand_family:before {content: '\f4f1';}
.mi-branding_watermark:before {content: '\e06b';}
.mi-breakfast_dining:before {content: '\ea54';}
.mi-breaking_news:before {content: '\ea08';}
.mi-breaking_news_alt_1:before {content: '\f0ba';}
.mi-breastfeeding:before {content: '\f856';}
.mi-brightness_1:before {content: '\e3fa';}
.mi-brightness_2:before {content: '\f036';}
.mi-brightness_3:before {content: '\e3a8';}
.mi-brightness_4:before {content: '\e3a9';}
.mi-brightness_5:before {content: '\e3aa';}
.mi-brightness_6:before {content: '\e3ab';}
.mi-brightness_7:before {content: '\e3ac';}
.mi-brightness_alert:before {content: '\f5cf';}
.mi-brightness_auto:before {content: '\e1ab';}
.mi-brightness_empty:before {content: '\f7e8';}
.mi-brightness_high:before {content: '\e1ac';}
.mi-brightness_low:before {content: '\e1ad';}
.mi-brightness_medium:before {content: '\e1ae';}
.mi-bring_your_own_ip:before {content: '\e016';}
.mi-broadcast_on_home:before {content: '\f8f8';}
.mi-broadcast_on_personal:before {content: '\f8f9';}
.mi-broken_image:before {content: '\e3ad';}
.mi-browse:before {content: '\eb13';}
.mi-browse_activity:before {content: '\f8a5';}
.mi-browse_gallery:before {content: '\ebd1';}
.mi-browser_not_supported:before {content: '\ef47';}
.mi-browser_updated:before {content: '\e7cf';}
.mi-brunch_dining:before {content: '\ea73';}
.mi-brush:before {content: '\e3ae';}
.mi-bubble:before {content: '\ef83';}
.mi-bubble_chart:before {content: '\e6dd';}
.mi-bubbles:before {content: '\f64e';}
.mi-bug_report:before {content: '\e868';}
.mi-build:before {content: '\f8cd';}
.mi-build_circle:before {content: '\ef48';}
.mi-bungalow:before {content: '\e591';}
.mi-burst_mode:before {content: '\e43c';}
.mi-bus_alert:before {content: '\e98f';}
.mi-business:before {content: '\e7ee';}
.mi-business_center:before {content: '\eb3f';}
.mi-business_chip:before {content: '\f84c';}
.mi-business_messages:before {content: '\ef84';}
.mi-buttons_alt:before {content: '\e72f';}
.mi-cabin:before {content: '\e589';}
.mi-cable:before {content: '\efe6';}
.mi-cached:before {content: '\e86a';}
.mi-cake:before {content: '\e7e9';}
.mi-cake_add:before {content: '\f85b';}
.mi-calculate:before {content: '\ea5f';}
.mi-calendar_add_on:before {content: '\ef85';}
.mi-calendar_apps_script:before {content: '\f0bb';}
.mi-calendar_clock:before {content: '\f540';}
.mi-calendar_month:before {content: '\ebcc';}
.mi-calendar_today:before {content: '\e935';}
.mi-calendar_view_day:before {content: '\e936';}
.mi-calendar_view_month:before {content: '\efe7';}
.mi-calendar_view_week:before {content: '\efe8';}
.mi-call:before {content: '\f0d4';}
.mi-call_end:before {content: '\f0bc';}
.mi-call_end_alt:before {content: '\f0bc';}
.mi-call_log:before {content: '\e08e';}
.mi-call_made:before {content: '\e0b2';}
.mi-call_merge:before {content: '\e0b3';}
.mi-call_missed:before {content: '\e0b4';}
.mi-call_missed_outgoing:before {content: '\e0e4';}
.mi-call_quality:before {content: '\f652';}
.mi-call_received:before {content: '\e0b5';}
.mi-call_split:before {content: '\e0b6';}
.mi-call_to_action:before {content: '\e06c';}
.mi-camera:before {content: '\e3af';}
.mi-camera_alt:before {content: '\e412';}
.mi-camera_enhance:before {content: '\e8fc';}
.mi-camera_front:before {content: '\e3b1';}
.mi-camera_indoor:before {content: '\efe9';}
.mi-camera_outdoor:before {content: '\efea';}
.mi-camera_rear:before {content: '\e3b2';}
.mi-camera_roll:before {content: '\e3b3';}
.mi-camera_video:before {content: '\f7a6';}
.mi-cameraswitch:before {content: '\efeb';}
.mi-campaign:before {content: '\ef49';}
.mi-camping:before {content: '\f8a2';}
.mi-cancel:before {content: '\e888';}
.mi-cancel_presentation:before {content: '\e0e9';}
.mi-cancel_schedule_send:before {content: '\ea39';}
.mi-candle:before {content: '\f588';}
.mi-candlestick_chart:before {content: '\ead4';}
.mi-captive_portal:before {content: '\f728';}
.mi-capture:before {content: '\f727';}
.mi-car_crash:before {content: '\ebf2';}
.mi-car_rental:before {content: '\ea55';}
.mi-car_repair:before {content: '\ea56';}
.mi-car_tag:before {content: '\f4e3';}
.mi-card_giftcard:before {content: '\e8f6';}
.mi-card_membership:before {content: '\e8f7';}
.mi-card_travel:before {content: '\e8f8';}
.mi-cardiology:before {content: '\e09c';}
.mi-cards:before {content: '\e991';}
.mi-carpenter:before {content: '\f1f8';}
.mi-carry_on_bag:before {content: '\eb08';}
.mi-carry_on_bag_checked:before {content: '\eb0b';}
.mi-carry_on_bag_inactive:before {content: '\eb0a';}
.mi-carry_on_bag_question:before {content: '\eb09';}
.mi-cases:before {content: '\e992';}
.mi-casino:before {content: '\eb40';}
.mi-cast:before {content: '\e307';}
.mi-cast_connected:before {content: '\e308';}
.mi-cast_for_education:before {content: '\efec';}
.mi-cast_pause:before {content: '\f5f0';}
.mi-cast_warning:before {content: '\f5ef';}
.mi-castle:before {content: '\eab1';}
.mi-category:before {content: '\e574';}
.mi-celebration:before {content: '\ea65';}
.mi-cell_merge:before {content: '\f82e';}
.mi-cell_tower:before {content: '\ebba';}
.mi-cell_wifi:before {content: '\e0ec';}
.mi-center_focus_strong:before {content: '\e3b4';}
.mi-center_focus_weak:before {content: '\e3b5';}
.mi-chair:before {content: '\efed';}
.mi-chair_alt:before {content: '\efee';}
.mi-chalet:before {content: '\e585';}
.mi-change_circle:before {content: '\e2e7';}
.mi-change_history:before {content: '\e86b';}
.mi-charger:before {content: '\e2ae';}
.mi-charging_station:before {content: '\f19d';}
.mi-chart_data:before {content: '\e473';}
.mi-chat:before {content: '\e0c9';}
.mi-chat_add_on:before {content: '\f0f3';}
.mi-chat_apps_script:before {content: '\f0bd';}
.mi-chat_bubble:before {content: '\e0cb';}
.mi-chat_bubble_outline:before {content: '\e0cb';}
.mi-chat_error:before {content: '\f7ac';}
.mi-chat_info:before {content: '\f52b';}
.mi-chat_paste_go:before {content: '\f6bd';}
.mi-check:before {content: '\e5ca';}
.mi-check_box:before {content: '\e834';}
.mi-check_box_outline_blank:before {content: '\e835';}
.mi-check_circle:before {content: '\f0be';}
.mi-check_circle_filled:before {content: '\f0be';}
.mi-check_circle_outline:before {content: '\f0be';}
.mi-check_in_out:before {content: '\f6f6';}
.mi-check_indeterminate_small:before {content: '\f88a';}
.mi-check_small:before {content: '\f88b';}
.mi-checkbook:before {content: '\e70d';}
.mi-checked_bag:before {content: '\eb0c';}
.mi-checked_bag_question:before {content: '\eb0d';}
.mi-checklist:before {content: '\e6b1';}
.mi-checklist_rtl:before {content: '\e6b3';}
.mi-checkroom:before {content: '\f19e';}
.mi-cheer:before {content: '\f6a8';}
.mi-chess:before {content: '\f5e7';}
.mi-chevron_left:before {content: '\e5cb';}
.mi-chevron_right:before {content: '\e5cc';}
.mi-child_care:before {content: '\eb41';}
.mi-child_friendly:before {content: '\eb42';}
.mi-chip_extraction:before {content: '\f821';}
.mi-chips:before {content: '\e993';}
.mi-chrome_reader_mode:before {content: '\e86d';}
.mi-chromecast_2:before {content: '\f17b';}
.mi-chromecast_device:before {content: '\e83c';}
.mi-chronic:before {content: '\ebb2';}
.mi-church:before {content: '\eaae';}
.mi-cinematic_blur:before {content: '\f853';}
.mi-circle:before {content: '\ef4a';}
.mi-circle_notifications:before {content: '\e994';}
.mi-circles:before {content: '\e7ea';}
.mi-circles_ext:before {content: '\e7ec';}
.mi-clarify:before {content: '\f0bf';}
.mi-class:before {content: '\e86e';}
.mi-clean_hands:before {content: '\f21f';}
.mi-cleaning:before {content: '\e995';}
.mi-cleaning_bucket:before {content: '\f8b4';}
.mi-cleaning_services:before {content: '\f0ff';}
.mi-clear:before {content: '\e5cd';}
.mi-clear_all:before {content: '\e0b8';}
.mi-clear_day:before {content: '\f157';}
.mi-clear_night:before {content: '\f159';}
.mi-climate_mini_split:before {content: '\f8b5';}
.mi-clinical_notes:before {content: '\e09e';}
.mi-clock_loader_10:before {content: '\f726';}
.mi-clock_loader_20:before {content: '\f725';}
.mi-clock_loader_40:before {content: '\f724';}
.mi-clock_loader_60:before {content: '\f723';}
.mi-clock_loader_80:before {content: '\f722';}
.mi-clock_loader_90:before {content: '\f721';}
.mi-close:before {content: '\e5cd';}
.mi-close_fullscreen:before {content: '\f1cf';}
.mi-close_small:before {content: '\f508';}
.mi-closed_caption:before {content: '\e996';}
.mi-closed_caption_disabled:before {content: '\f1dc';}
.mi-closed_caption_off:before {content: '\e996';}
.mi-cloud:before {content: '\f15c';}
.mi-cloud_circle:before {content: '\e2be';}
.mi-cloud_done:before {content: '\e2bf';}
.mi-cloud_download:before {content: '\e2c0';}
.mi-cloud_off:before {content: '\e2c1';}
.mi-cloud_queue:before {content: '\f15c';}
.mi-cloud_sync:before {content: '\eb5a';}
.mi-cloud_upload:before {content: '\e2c3';}
.mi-cloudy:before {content: '\f15c';}
.mi-cloudy_filled:before {content: '\f15c';}
.mi-cloudy_snowing:before {content: '\e810';}
.mi-co2:before {content: '\e7b0';}
.mi-co_present:before {content: '\eaf0';}
.mi-code:before {content: '\e86f';}
.mi-code_blocks:before {content: '\f84d';}
.mi-code_off:before {content: '\e4f3';}
.mi-coffee:before {content: '\efef';}
.mi-coffee_maker:before {content: '\eff0';}
.mi-cognition:before {content: '\e09f';}
.mi-collapse_all:before {content: '\e944';}
.mi-collapse_content:before {content: '\f507';}
.mi-collections:before {content: '\e3d3';}
.mi-collections_bookmark:before {content: '\e431';}
.mi-color_lens:before {content: '\e40a';}
.mi-colorize:before {content: '\e3b8';}
.mi-colors:before {content: '\e997';}
.mi-comedy_mask:before {content: '\f4d6';}
.mi-comic_bubble:before {content: '\f5dd';}
.mi-comment:before {content: '\e24c';}
.mi-comment_bank:before {content: '\ea4e';}
.mi-comments_disabled:before {content: '\e7a2';}
.mi-commit:before {content: '\eaf5';}
.mi-communication:before {content: '\e27c';}
.mi-communities:before {content: '\eb16';}
.mi-communities_filled:before {content: '\eb16';}
.mi-commute:before {content: '\e940';}
.mi-compare:before {content: '\e3b9';}
.mi-compare_arrows:before {content: '\e915';}
.mi-compass_calibration:before {content: '\e57c';}
.mi-component_exchange:before {content: '\f1e7';}
.mi-compost:before {content: '\e761';}
.mi-compress:before {content: '\e94d';}
.mi-computer:before {content: '\e31e';}
.mi-concierge:before {content: '\f561';}
.mi-conditions:before {content: '\e0a0';}
.mi-confirmation_number:before {content: '\e638';}
.mi-congenital:before {content: '\e0a1';}
.mi-connect_without_contact:before {content: '\f223';}
.mi-connected_tv:before {content: '\e998';}
.mi-connecting_airports:before {content: '\e7c9';}
.mi-construction:before {content: '\ea3c';}
.mi-contact_emergency:before {content: '\f8d1';}
.mi-contact_mail:before {content: '\e0d0';}
.mi-contact_page:before {content: '\f22e';}
.mi-contact_phone:before {content: '\f0c0';}
.mi-contact_phone_filled:before {content: '\f0c0';}
.mi-contact_support:before {content: '\e94c';}
.mi-contactless:before {content: '\ea71';}
.mi-contactless_off:before {content: '\f858';}
.mi-contacts:before {content: '\e0ba';}
.mi-contacts_product:before {content: '\e999';}
.mi-content_copy:before {content: '\e14d';}
.mi-content_cut:before {content: '\e14e';}
.mi-content_paste:before {content: '\e14f';}
.mi-content_paste_go:before {content: '\ea8e';}
.mi-content_paste_off:before {content: '\e4f8';}
.mi-content_paste_search:before {content: '\ea9b';}
.mi-contract:before {content: '\f5a0';}
.mi-contract_delete:before {content: '\f5a2';}
.mi-contract_edit:before {content: '\f5a1';}
.mi-contrast:before {content: '\eb37';}
.mi-contrast_rtl_off:before {content: '\ec72';}
.mi-control_camera:before {content: '\e074';}
.mi-control_point:before {content: '\e3ba';}
.mi-control_point_duplicate:before {content: '\e3bb';}
.mi-controller_gen:before {content: '\e83d';}
.mi-conversion_path:before {content: '\f0c1';}
.mi-conversion_path_off:before {content: '\f7b4';}
.mi-conveyor_belt:before {content: '\f867';}
.mi-cookie:before {content: '\eaac';}
.mi-cookie_off:before {content: '\f79a';}
.mi-cooking:before {content: '\e2b6';}
.mi-cool_to_dry:before {content: '\e276';}
.mi-copy_all:before {content: '\e2ec';}
.mi-copyright:before {content: '\e90c';}
.mi-coronavirus:before {content: '\f221';}
.mi-corporate_fare:before {content: '\f1d0';}
.mi-cottage:before {content: '\e587';}
.mi-counter_0:before {content: '\f785';}
.mi-counter_1:before {content: '\f784';}
.mi-counter_2:before {content: '\f783';}
.mi-counter_3:before {content: '\f782';}
.mi-counter_4:before {content: '\f781';}
.mi-counter_5:before {content: '\f780';}
.mi-counter_6:before {content: '\f77f';}
.mi-counter_7:before {content: '\f77e';}
.mi-counter_8:before {content: '\f77d';}
.mi-counter_9:before {content: '\f77c';}
.mi-countertops:before {content: '\f1f7';}
.mi-create:before {content: '\f097';}
.mi-create_new_folder:before {content: '\e2cc';}
.mi-credit_card:before {content: '\e8a1';}
.mi-credit_card_gear:before {content: '\f52d';}
.mi-credit_card_heart:before {content: '\f52c';}
.mi-credit_card_off:before {content: '\e4f4';}
.mi-credit_score:before {content: '\eff1';}
.mi-crib:before {content: '\e588';}
.mi-crisis_alert:before {content: '\ebe9';}
.mi-crop:before {content: '\e3be';}
.mi-crop_16_9:before {content: '\e3bc';}
.mi-crop_3_2:before {content: '\e3bd';}
.mi-crop_5_4:before {content: '\e3bf';}
.mi-crop_7_5:before {content: '\e3c0';}
.mi-crop_9_16:before {content: '\f549';}
.mi-crop_din:before {content: '\e3c6';}
.mi-crop_free:before {content: '\e3c2';}
.mi-crop_landscape:before {content: '\e3c3';}
.mi-crop_original:before {content: '\e3f4';}
.mi-crop_portrait:before {content: '\e3c5';}
.mi-crop_rotate:before {content: '\e437';}
.mi-crop_square:before {content: '\e3c6';}
.mi-crossword:before {content: '\f5e5';}
.mi-crowdsource:before {content: '\eb18';}
.mi-cruelty_free:before {content: '\e799';}
.mi-css:before {content: '\eb93';}
.mi-csv:before {content: '\e6cf';}
.mi-currency_bitcoin:before {content: '\ebc5';}
.mi-currency_exchange:before {content: '\eb70';}
.mi-currency_franc:before {content: '\eafa';}
.mi-currency_lira:before {content: '\eaef';}
.mi-currency_pound:before {content: '\eaf1';}
.mi-currency_ruble:before {content: '\eaec';}
.mi-currency_rupee:before {content: '\eaf7';}
.mi-currency_yen:before {content: '\eafb';}
.mi-currency_yuan:before {content: '\eaf9';}
.mi-curtains:before {content: '\ec1e';}
.mi-curtains_closed:before {content: '\ec1d';}
.mi-custom_typography:before {content: '\e732';}
.mi-cut:before {content: '\f08b';}
.mi-cycle:before {content: '\f854';}
.mi-cyclone:before {content: '\ebd5';}
.mi-dangerous:before {content: '\e99a';}
.mi-dark_mode:before {content: '\e51c';}
.mi-dashboard:before {content: '\e871';}
.mi-dashboard_customize:before {content: '\e99b';}
.mi-data_alert:before {content: '\f7f6';}
.mi-data_array:before {content: '\ead1';}
.mi-data_check:before {content: '\f7f2';}
.mi-data_exploration:before {content: '\e76f';}
.mi-data_info_alert:before {content: '\f7f5';}
.mi-data_loss_prevention:before {content: '\e2dc';}
.mi-data_object:before {content: '\ead3';}
.mi-data_saver_off:before {content: '\eff2';}
.mi-data_saver_on:before {content: '\eff3';}
.mi-data_table:before {content: '\e99c';}
.mi-data_thresholding:before {content: '\eb9f';}
.mi-data_usage:before {content: '\eff2';}
.mi-database:before {content: '\f20e';}
.mi-dataset:before {content: '\f8ee';}
.mi-dataset_linked:before {content: '\f8ef';}
.mi-date_range:before {content: '\e916';}
.mi-deblur:before {content: '\eb77';}
.mi-deceased:before {content: '\e0a5';}
.mi-decimal_decrease:before {content: '\f82d';}
.mi-decimal_increase:before {content: '\f82c';}
.mi-deck:before {content: '\ea42';}
.mi-dehaze:before {content: '\e3c7';}
.mi-delete:before {content: '\e92e';}
.mi-delete_forever:before {content: '\e92b';}
.mi-delete_history:before {content: '\f518';}
.mi-delete_outline:before {content: '\e92e';}
.mi-delete_sweep:before {content: '\e16c';}
.mi-demography:before {content: '\e489';}
.mi-density_large:before {content: '\eba9';}
.mi-density_medium:before {content: '\eb9e';}
.mi-density_small:before {content: '\eba8';}
.mi-dentistry:before {content: '\e0a6';}
.mi-departure_board:before {content: '\e576';}
.mi-deployed_code:before {content: '\f720';}
.mi-deployed_code_account:before {content: '\f51b';}
.mi-deployed_code_alert:before {content: '\f5f2';}
.mi-deployed_code_history:before {content: '\f5f3';}
.mi-deployed_code_update:before {content: '\f5f4';}
.mi-dermatology:before {content: '\e0a7';}
.mi-description:before {content: '\e873';}
.mi-deselect:before {content: '\ebb6';}
.mi-design_services:before {content: '\f10a';}
.mi-desk:before {content: '\f8f4';}
.mi-deskphone:before {content: '\f7fa';}
.mi-desktop_access_disabled:before {content: '\e99d';}
.mi-desktop_mac:before {content: '\e30b';}
.mi-desktop_windows:before {content: '\e30c';}
.mi-destruction:before {content: '\f585';}
.mi-details:before {content: '\e3c8';}
.mi-detection_and_zone:before {content: '\e29f';}
.mi-detector:before {content: '\e282';}
.mi-detector_alarm:before {content: '\e1f7';}
.mi-detector_battery:before {content: '\e204';}
.mi-detector_co:before {content: '\e2af';}
.mi-detector_offline:before {content: '\e223';}
.mi-detector_smoke:before {content: '\e285';}
.mi-detector_status:before {content: '\e1e8';}
.mi-developer_board:before {content: '\e30d';}
.mi-developer_board_off:before {content: '\e4ff';}
.mi-developer_guide:before {content: '\e99e';}
.mi-developer_mode:before {content: '\e1b0';}
.mi-developer_mode_tv:before {content: '\e874';}
.mi-device_hub:before {content: '\e335';}
.mi-device_reset:before {content: '\e8b3';}
.mi-device_thermostat:before {content: '\e1ff';}
.mi-device_unknown:before {content: '\e339';}
.mi-devices:before {content: '\e326';}
.mi-devices_fold:before {content: '\ebde';}
.mi-devices_off:before {content: '\f7a5';}
.mi-devices_other:before {content: '\e337';}
.mi-devices_wearables:before {content: '\f6ab';}
.mi-dew_point:before {content: '\f879';}
.mi-diagnosis:before {content: '\e0a8';}
.mi-dialer_sip:before {content: '\e0bb';}
.mi-dialogs:before {content: '\e99f';}
.mi-dialpad:before {content: '\e0bc';}
.mi-diamond:before {content: '\ead5';}
.mi-dictionary:before {content: '\f539';}
.mi-difference:before {content: '\eb7d';}
.mi-digital_out_of_home:before {content: '\f1de';}
.mi-digital_wellbeing:before {content: '\ef86';}
.mi-dining:before {content: '\eff4';}
.mi-dinner_dining:before {content: '\ea57';}
.mi-directions:before {content: '\e52e';}
.mi-directions_alt:before {content: '\f880';}
.mi-directions_alt_off:before {content: '\f881';}
.mi-directions_bike:before {content: '\e52f';}
.mi-directions_boat:before {content: '\eff5';}
.mi-directions_boat_filled:before {content: '\eff5';}
.mi-directions_bus:before {content: '\eff6';}
.mi-directions_bus_filled:before {content: '\eff6';}
.mi-directions_car:before {content: '\eff7';}
.mi-directions_car_filled:before {content: '\eff7';}
.mi-directions_off:before {content: '\f10f';}
.mi-directions_railway:before {content: '\eff8';}
.mi-directions_railway_filled:before {content: '\eff8';}
.mi-directions_run:before {content: '\e566';}
.mi-directions_subway:before {content: '\effa';}
.mi-directions_subway_filled:before {content: '\effa';}
.mi-directions_transit:before {content: '\effa';}
.mi-directions_transit_filled:before {content: '\effa';}
.mi-directions_walk:before {content: '\e536';}
.mi-directory_sync:before {content: '\e394';}
.mi-dirty_lens:before {content: '\ef4b';}
.mi-disabled_by_default:before {content: '\f230';}
.mi-disabled_visible:before {content: '\e76e';}
.mi-disc_full:before {content: '\e610';}
.mi-discover_tune:before {content: '\e018';}
.mi-dishwasher:before {content: '\e9a0';}
.mi-dishwasher_gen:before {content: '\e832';}
.mi-display_external_input:before {content: '\f7e7';}
.mi-display_settings:before {content: '\eb97';}
.mi-distance:before {content: '\f6ea';}
.mi-diversity_1:before {content: '\f8d7';}
.mi-diversity_2:before {content: '\f8d8';}
.mi-diversity_3:before {content: '\f8d9';}
.mi-diversity_4:before {content: '\f857';}
.mi-dns:before {content: '\e875';}
.mi-do_disturb:before {content: '\f08c';}
.mi-do_disturb_alt:before {content: '\f08d';}
.mi-do_disturb_off:before {content: '\f08e';}
.mi-do_disturb_on:before {content: '\f08f';}
.mi-do_not_disturb:before {content: '\f08d';}
.mi-do_not_disturb_alt:before {content: '\f08c';}
.mi-do_not_disturb_off:before {content: '\f08e';}
.mi-do_not_disturb_on:before {content: '\f08f';}
.mi-do_not_disturb_on_total_silence:before {content: '\effb';}
.mi-do_not_step:before {content: '\f19f';}
.mi-do_not_touch:before {content: '\f1b0';}
.mi-dock:before {content: '\e30e';}
.mi-dock_to_bottom:before {content: '\f7e6';}
.mi-dock_to_left:before {content: '\f7e5';}
.mi-dock_to_right:before {content: '\f7e4';}
.mi-docs_add_on:before {content: '\f0c2';}
.mi-docs_apps_script:before {content: '\f0c3';}
.mi-document_scanner:before {content: '\e5fa';}
.mi-domain:before {content: '\e7ee';}
.mi-domain_add:before {content: '\eb62';}
.mi-domain_disabled:before {content: '\e0ef';}
.mi-domain_verification:before {content: '\ef4c';}
.mi-domain_verification_off:before {content: '\f7b0';}
.mi-domino_mask:before {content: '\f5e4';}
.mi-done:before {content: '\e876';}
.mi-done_all:before {content: '\e877';}
.mi-done_outline:before {content: '\e92f';}
.mi-donut_large:before {content: '\e917';}
.mi-donut_small:before {content: '\e918';}
.mi-door_back:before {content: '\effc';}
.mi-door_front:before {content: '\effd';}
.mi-door_open:before {content: '\e77c';}
.mi-door_sensor:before {content: '\e28a';}
.mi-door_sliding:before {content: '\effe';}
.mi-doorbell:before {content: '\efff';}
.mi-doorbell_3p:before {content: '\e1e7';}
.mi-doorbell_chime:before {content: '\e1f3';}
.mi-double_arrow:before {content: '\ea50';}
.mi-downhill_skiing:before {content: '\e509';}
.mi-download:before {content: '\f090';}
.mi-download_2:before {content: '\f523';}
.mi-download_done:before {content: '\f091';}
.mi-download_for_offline:before {content: '\f000';}
.mi-downloading:before {content: '\f001';}
.mi-draft:before {content: '\e66d';}
.mi-draft_orders:before {content: '\e7b3';}
.mi-drafts:before {content: '\e151';}
.mi-drag_click:before {content: '\f71f';}
.mi-drag_handle:before {content: '\e25d';}
.mi-drag_indicator:before {content: '\e945';}
.mi-drag_pan:before {content: '\f71e';}
.mi-draw:before {content: '\e746';}
.mi-draw_abstract:before {content: '\f7f8';}
.mi-draw_collage:before {content: '\f7f7';}
.mi-drawing_recognition:before {content: '\eb00';}
.mi-dresser:before {content: '\e210';}
.mi-drive_eta:before {content: '\eff7';}
.mi-drive_file_move:before {content: '\e9a1';}
.mi-drive_file_move_outline:before {content: '\e9a1';}
.mi-drive_file_move_rtl:before {content: '\e9a1';}
.mi-drive_file_rename_outline:before {content: '\e9a2';}
.mi-drive_folder_upload:before {content: '\e9a3';}
.mi-drive_fusiontable:before {content: '\e678';}
.mi-dropdown:before {content: '\e9a4';}
.mi-dry:before {content: '\f1b3';}
.mi-dry_cleaning:before {content: '\ea58';}
.mi-dual_screen:before {content: '\f6cf';}
.mi-duo:before {content: '\e9a5';}
.mi-dvr:before {content: '\e1b2';}
.mi-dynamic_feed:before {content: '\ea14';}
.mi-dynamic_form:before {content: '\f1bf';}
.mi-e911_avatar:before {content: '\f11a';}
.mi-e911_emergency:before {content: '\f119';}
.mi-e_mobiledata:before {content: '\f002';}
.mi-e_mobiledata_badge:before {content: '\f7e3';}
.mi-earbuds:before {content: '\f003';}
.mi-earbuds_battery:before {content: '\f004';}
.mi-early_on:before {content: '\e2ba';}
.mi-earthquake:before {content: '\f64f';}
.mi-east:before {content: '\f1df';}
.mi-ecg:before {content: '\f80f';}
.mi-ecg_heart:before {content: '\f6e9';}
.mi-eco:before {content: '\ea35';}
.mi-eda:before {content: '\f6e8';}
.mi-edgesensor_high:before {content: '\f005';}
.mi-edgesensor_low:before {content: '\f006';}
.mi-edit:before {content: '\f097';}
.mi-edit_attributes:before {content: '\e578';}
.mi-edit_calendar:before {content: '\e742';}
.mi-edit_document:before {content: '\f88c';}
.mi-edit_location:before {content: '\e568';}
.mi-edit_location_alt:before {content: '\e1c5';}
.mi-edit_note:before {content: '\e745';}
.mi-edit_notifications:before {content: '\e525';}
.mi-edit_off:before {content: '\e950';}
.mi-edit_road:before {content: '\ef4d';}
.mi-edit_square:before {content: '\f88d';}
.mi-editor_choice:before {content: '\f528';}
.mi-egg:before {content: '\eacc';}
.mi-egg_alt:before {content: '\eac8';}
.mi-eject:before {content: '\e8fb';}
.mi-elderly:before {content: '\f21a';}
.mi-elderly_woman:before {content: '\eb69';}
.mi-electric_bike:before {content: '\eb1b';}
.mi-electric_bolt:before {content: '\ec1c';}
.mi-electric_car:before {content: '\eb1c';}
.mi-electric_meter:before {content: '\ec1b';}
.mi-electric_moped:before {content: '\eb1d';}
.mi-electric_rickshaw:before {content: '\eb1e';}
.mi-electric_scooter:before {content: '\eb1f';}
.mi-electrical_services:before {content: '\f102';}
.mi-elevation:before {content: '\f6e7';}
.mi-elevator:before {content: '\f1a0';}
.mi-email:before {content: '\e159';}
.mi-emergency:before {content: '\e1eb';}
.mi-emergency_heat:before {content: '\f15d';}
.mi-emergency_heat_2:before {content: '\f4e5';}
.mi-emergency_home:before {content: '\e82a';}
.mi-emergency_recording:before {content: '\ebf4';}
.mi-emergency_share:before {content: '\ebf6';}
.mi-emergency_share_off:before {content: '\f59e';}
.mi-emoji_emotions:before {content: '\ea22';}
.mi-emoji_events:before {content: '\ea23';}
.mi-emoji_flags:before {content: '\f0c6';}
.mi-emoji_food_beverage:before {content: '\ea1b';}
.mi-emoji_nature:before {content: '\ea1c';}
.mi-emoji_objects:before {content: '\ea24';}
.mi-emoji_people:before {content: '\ea1d';}
.mi-emoji_symbols:before {content: '\ea1e';}
.mi-emoji_transportation:before {content: '\ea1f';}
.mi-emoticon:before {content: '\e5f3';}
.mi-empty_dashboard:before {content: '\f844';}
.mi-enable:before {content: '\f188';}
.mi-encrypted:before {content: '\e593';}
.mi-endocrinology:before {content: '\e0a9';}
.mi-energy:before {content: '\e9a6';}
.mi-energy_program_saving:before {content: '\f15f';}
.mi-energy_program_time_used:before {content: '\f161';}
.mi-energy_savings_leaf:before {content: '\ec1a';}
.mi-engineering:before {content: '\ea3d';}
.mi-enhanced_encryption:before {content: '\e63f';}
.mi-ent:before {content: '\e0aa';}
.mi-enterprise:before {content: '\e70e';}
.mi-enterprise_off:before {content: '\eb4d';}
.mi-equal:before {content: '\f77b';}
.mi-equalizer:before {content: '\e01d';}
.mi-error:before {content: '\f8b6';}
.mi-error_circle_rounded:before {content: '\f8b6';}
.mi-error_med:before {content: '\e49b';}
.mi-error_outline:before {content: '\f8b6';}
.mi-escalator:before {content: '\f1a1';}
.mi-escalator_warning:before {content: '\f1ac';}
.mi-euro:before {content: '\ea15';}
.mi-euro_symbol:before {content: '\e926';}
.mi-ev_charger:before {content: '\e56d';}
.mi-ev_mobiledata_badge:before {content: '\f7e2';}
.mi-ev_shadow:before {content: '\ef8f';}
.mi-ev_shadow_add:before {content: '\f580';}
.mi-ev_shadow_minus:before {content: '\f57f';}
.mi-ev_station:before {content: '\e56d';}
.mi-event:before {content: '\e878';}
.mi-event_available:before {content: '\e614';}
.mi-event_busy:before {content: '\e615';}
.mi-event_list:before {content: '\f683';}
.mi-event_note:before {content: '\e616';}
.mi-event_repeat:before {content: '\eb7b';}
.mi-event_seat:before {content: '\e903';}
.mi-event_upcoming:before {content: '\f238';}
.mi-exclamation:before {content: '\f22f';}
.mi-exercise:before {content: '\f6e6';}
.mi-exit_to_app:before {content: '\e879';}
.mi-expand:before {content: '\e94f';}
.mi-expand_all:before {content: '\e946';}
.mi-expand_circle_down:before {content: '\e7cd';}
.mi-expand_circle_right:before {content: '\f591';}
.mi-expand_circle_up:before {content: '\f5d2';}
.mi-expand_content:before {content: '\f830';}
.mi-expand_less:before {content: '\e5ce';}
.mi-expand_more:before {content: '\e5cf';}
.mi-experiment:before {content: '\e686';}
.mi-explicit:before {content: '\e01e';}
.mi-explore:before {content: '\e87a';}
.mi-explore_nearby:before {content: '\e538';}
.mi-explore_off:before {content: '\e9a8';}
.mi-explosion:before {content: '\f685';}
.mi-export_notes:before {content: '\e0ac';}
.mi-exposure:before {content: '\e3f6';}
.mi-exposure_neg_1:before {content: '\e3cb';}
.mi-exposure_neg_2:before {content: '\e3cc';}
.mi-exposure_plus_1:before {content: '\e800';}
.mi-exposure_plus_2:before {content: '\e3ce';}
.mi-exposure_zero:before {content: '\e3cf';}
.mi-extension:before {content: '\e87b';}
.mi-extension_off:before {content: '\e4f5';}
.mi-eyeglasses:before {content: '\f6ee';}
.mi-face:before {content: '\f008';}
.mi-face_2:before {content: '\f8da';}
.mi-face_3:before {content: '\f8db';}
.mi-face_4:before {content: '\f8dc';}
.mi-face_5:before {content: '\f8dd';}
.mi-face_6:before {content: '\f8de';}
.mi-face_retouching_natural:before {content: '\ef4e';}
.mi-face_retouching_off:before {content: '\f007';}
.mi-face_unlock:before {content: '\f008';}
.mi-fact_check:before {content: '\f0c5';}
.mi-factory:before {content: '\ebbc';}
.mi-falling:before {content: '\f60d';}
.mi-familiar_face_and_zone:before {content: '\e21c';}
.mi-family_history:before {content: '\e0ad';}
.mi-family_home:before {content: '\eb26';}
.mi-family_link:before {content: '\eb19';}
.mi-family_restroom:before {content: '\f1a2';}
.mi-family_star:before {content: '\f527';}
.mi-farsight_digital:before {content: '\f559';}
.mi-fast_forward:before {content: '\e01f';}
.mi-fast_rewind:before {content: '\e020';}
.mi-fastfood:before {content: '\e57a';}
.mi-faucet:before {content: '\e278';}
.mi-favorite:before {content: '\e87e';}
.mi-favorite_border:before {content: '\e87e';}
.mi-fax:before {content: '\ead8';}
.mi-feature_search:before {content: '\e9a9';}
.mi-featured_play_list:before {content: '\e06d';}
.mi-featured_seasonal_and_gifts:before {content: '\ef91';}
.mi-featured_video:before {content: '\e06e';}
.mi-feed:before {content: '\f009';}
.mi-feedback:before {content: '\e87f';}
.mi-female:before {content: '\e590';}
.mi-femur:before {content: '\f891';}
.mi-femur_alt:before {content: '\f892';}
.mi-fence:before {content: '\f1f6';}
.mi-fertile:before {content: '\f6e5';}
.mi-festival:before {content: '\ea68';}
.mi-fiber_dvr:before {content: '\e05d';}
.mi-fiber_manual_record:before {content: '\e061';}
.mi-fiber_new:before {content: '\e05e';}
.mi-fiber_pin:before {content: '\e06a';}
.mi-fiber_smart_record:before {content: '\e062';}
.mi-file_copy:before {content: '\e173';}
.mi-file_copy_off:before {content: '\f4d8';}
.mi-file_download:before {content: '\f090';}
.mi-file_download_done:before {content: '\f091';}
.mi-file_download_off:before {content: '\e4fe';}
.mi-file_map:before {content: '\e2c5';}
.mi-file_open:before {content: '\eaf3';}
.mi-file_present:before {content: '\ea0e';}
.mi-file_save:before {content: '\f17f';}
.mi-file_save_off:before {content: '\e505';}
.mi-file_upload:before {content: '\f09b';}
.mi-file_upload_off:before {content: '\f886';}
.mi-filter:before {content: '\e3d3';}
.mi-filter_1:before {content: '\e3d0';}
.mi-filter_2:before {content: '\e3d1';}
.mi-filter_3:before {content: '\e3d2';}
.mi-filter_4:before {content: '\e3d4';}
.mi-filter_5:before {content: '\e3d5';}
.mi-filter_6:before {content: '\e3d6';}
.mi-filter_7:before {content: '\e3d7';}
.mi-filter_8:before {content: '\e3d8';}
.mi-filter_9:before {content: '\e3d9';}
.mi-filter_9_plus:before {content: '\e3da';}
.mi-filter_alt:before {content: '\ef4f';}
.mi-filter_alt_off:before {content: '\eb32';}
.mi-filter_b_and_w:before {content: '\e3db';}
.mi-filter_center_focus:before {content: '\e3dc';}
.mi-filter_drama:before {content: '\e3dd';}
.mi-filter_frames:before {content: '\e3de';}
.mi-filter_hdr:before {content: '\e3df';}
.mi-filter_list:before {content: '\e152';}
.mi-filter_list_alt:before {content: '\e94e';}
.mi-filter_list_off:before {content: '\eb57';}
.mi-filter_none:before {content: '\e3e0';}
.mi-filter_retrolux:before {content: '\e3e1';}
.mi-filter_tilt_shift:before {content: '\e3e2';}
.mi-filter_vintage:before {content: '\e3e3';}
.mi-finance:before {content: '\e6bf';}
.mi-finance_chip:before {content: '\f84e';}
.mi-finance_mode:before {content: '\ef92';}
.mi-find_in_page:before {content: '\e880';}
.mi-find_replace:before {content: '\e881';}
.mi-fingerprint:before {content: '\e90d';}
.mi-fire_extinguisher:before {content: '\f1d8';}
.mi-fire_hydrant:before {content: '\f1a3';}
.mi-fire_truck:before {content: '\f8f2';}
.mi-fireplace:before {content: '\ea43';}
.mi-first_page:before {content: '\e5dc';}
.mi-fit_page:before {content: '\f77a';}
.mi-fit_screen:before {content: '\ea10';}
.mi-fit_width:before {content: '\f779';}
.mi-fitness_center:before {content: '\eb43';}
.mi-flag:before {content: '\f0c6';}
.mi-flag_circle:before {content: '\eaf8';}
.mi-flag_filled:before {content: '\f0c6';}
.mi-flaky:before {content: '\ef50';}
.mi-flare:before {content: '\e3e4';}
.mi-flash_auto:before {content: '\e3e5';}
.mi-flash_off:before {content: '\e3e6';}
.mi-flash_on:before {content: '\e3e7';}
.mi-flashlight_off:before {content: '\f00a';}
.mi-flashlight_on:before {content: '\f00b';}
.mi-flatware:before {content: '\f00c';}
.mi-flex_direction:before {content: '\f778';}
.mi-flex_no_wrap:before {content: '\f777';}
.mi-flex_wrap:before {content: '\f776';}
.mi-flight:before {content: '\e539';}
.mi-flight_class:before {content: '\e7cb';}
.mi-flight_land:before {content: '\e904';}
.mi-flight_takeoff:before {content: '\e905';}
.mi-flights_and_hotels:before {content: '\e9ab';}
.mi-flightsmode:before {content: '\ef93';}
.mi-flip:before {content: '\e3e8';}
.mi-flip_camera_android:before {content: '\ea37';}
.mi-flip_camera_ios:before {content: '\ea38';}
.mi-flip_to_back:before {content: '\e882';}
.mi-flip_to_front:before {content: '\e883';}
.mi-flood:before {content: '\ebe6';}
.mi-floor:before {content: '\f6e4';}
.mi-floor_lamp:before {content: '\e21e';}
.mi-flourescent:before {content: '\f07d';}
.mi-flowsheet:before {content: '\e0ae';}
.mi-fluid:before {content: '\e483';}
.mi-fluid_balance:before {content: '\f80d';}
.mi-fluid_med:before {content: '\f80c';}
.mi-fluorescent:before {content: '\f07d';}
.mi-flutter:before {content: '\f1dd';}
.mi-flutter_dash:before {content: '\e00b';}
.mi-fmd_bad:before {content: '\f00e';}
.mi-fmd_good:before {content: '\f1db';}
.mi-foggy:before {content: '\e818';}
.mi-folded_hands:before {content: '\f5ed';}
.mi-folder:before {content: '\e2c7';}
.mi-folder_copy:before {content: '\ebbd';}
.mi-folder_data:before {content: '\f586';}
.mi-folder_delete:before {content: '\eb34';}
.mi-folder_limited:before {content: '\f4e4';}
.mi-folder_managed:before {content: '\f775';}
.mi-folder_off:before {content: '\eb83';}
.mi-folder_open:before {content: '\e2c8';}
.mi-folder_shared:before {content: '\e2c9';}
.mi-folder_special:before {content: '\e617';}
.mi-folder_supervised:before {content: '\f774';}
.mi-folder_zip:before {content: '\eb2c';}
.mi-follow_the_signs:before {content: '\f222';}
.mi-font_download:before {content: '\e167';}
.mi-font_download_off:before {content: '\e4f9';}
.mi-food_bank:before {content: '\f1f2';}
.mi-foot_bones:before {content: '\f893';}
.mi-footprint:before {content: '\f87d';}
.mi-for_you:before {content: '\e9ac';}
.mi-forest:before {content: '\ea99';}
.mi-fork_left:before {content: '\eba0';}
.mi-fork_right:before {content: '\ebac';}
.mi-forklift:before {content: '\f868';}
.mi-format_align_center:before {content: '\e234';}
.mi-format_align_justify:before {content: '\e235';}
.mi-format_align_left:before {content: '\e236';}
.mi-format_align_right:before {content: '\e237';}
.mi-format_bold:before {content: '\e238';}
.mi-format_clear:before {content: '\e239';}
.mi-format_color_fill:before {content: '\e23a';}
.mi-format_color_reset:before {content: '\e23b';}
.mi-format_color_text:before {content: '\e23c';}
.mi-format_h1:before {content: '\f85d';}
.mi-format_h2:before {content: '\f85e';}
.mi-format_h3:before {content: '\f85f';}
.mi-format_h4:before {content: '\f860';}
.mi-format_h5:before {content: '\f861';}
.mi-format_h6:before {content: '\f862';}
.mi-format_image_left:before {content: '\f863';}
.mi-format_image_right:before {content: '\f864';}
.mi-format_indent_decrease:before {content: '\e23d';}
.mi-format_indent_increase:before {content: '\e23e';}
.mi-format_ink_highlighter:before {content: '\f82b';}
.mi-format_italic:before {content: '\e23f';}
.mi-format_letter_spacing:before {content: '\f773';}
.mi-format_letter_spacing_2:before {content: '\f618';}
.mi-format_letter_spacing_standard:before {content: '\f617';}
.mi-format_letter_spacing_wide:before {content: '\f616';}
.mi-format_letter_spacing_wider:before {content: '\f615';}
.mi-format_line_spacing:before {content: '\e240';}
.mi-format_list_bulleted:before {content: '\e241';}
.mi-format_list_bulleted_add:before {content: '\f849';}
.mi-format_list_numbered:before {content: '\e242';}
.mi-format_list_numbered_rtl:before {content: '\e267';}
.mi-format_overline:before {content: '\eb65';}
.mi-format_paint:before {content: '\e243';}
.mi-format_paragraph:before {content: '\f865';}
.mi-format_quote:before {content: '\e244';}
.mi-format_shapes:before {content: '\e25e';}
.mi-format_size:before {content: '\e245';}
.mi-format_strikethrough:before {content: '\e246';}
.mi-format_text_clip:before {content: '\f82a';}
.mi-format_text_overflow:before {content: '\f829';}
.mi-format_text_wrap:before {content: '\f828';}
.mi-format_textdirection_l_to_r:before {content: '\e247';}
.mi-format_textdirection_r_to_l:before {content: '\e248';}
.mi-format_underlined:before {content: '\e249';}
.mi-format_underlined_squiggle:before {content: '\f885';}
.mi-forms_add_on:before {content: '\f0c7';}
.mi-forms_apps_script:before {content: '\f0c8';}
.mi-fort:before {content: '\eaad';}
.mi-forum:before {content: '\e8af';}
.mi-forward:before {content: '\f57a';}
.mi-forward_10:before {content: '\e056';}
.mi-forward_30:before {content: '\e057';}
.mi-forward_5:before {content: '\e058';}
.mi-forward_circle:before {content: '\f6f5';}
.mi-forward_media:before {content: '\f6f4';}
.mi-forward_to_inbox:before {content: '\f187';}
.mi-foundation:before {content: '\f200';}
.mi-frame_inspect:before {content: '\f772';}
.mi-frame_person:before {content: '\f8a6';}
.mi-frame_person_off:before {content: '\f7d1';}
.mi-frame_reload:before {content: '\f771';}
.mi-frame_source:before {content: '\f770';}
.mi-free_breakfast:before {content: '\eb44';}
.mi-free_cancellation:before {content: '\e748';}
.mi-front_hand:before {content: '\e769';}
.mi-front_loader:before {content: '\f869';}
.mi-full_coverage:before {content: '\eb12';}
.mi-full_hd:before {content: '\f58b';}
.mi-full_stacked_bar_chart:before {content: '\f212';}
.mi-fullscreen:before {content: '\e5d0';}
.mi-fullscreen_exit:before {content: '\e5d1';}
.mi-function:before {content: '\f866';}
.mi-functions:before {content: '\e24a';}
.mi-g_mobiledata:before {content: '\f010';}
.mi-g_mobiledata_badge:before {content: '\f7e1';}
.mi-g_translate:before {content: '\e927';}
.mi-gallery_thumbnail:before {content: '\f86f';}
.mi-gamepad:before {content: '\e30f';}
.mi-games:before {content: '\e30f';}
.mi-garage:before {content: '\f011';}
.mi-garage_door:before {content: '\e714';}
.mi-garage_home:before {content: '\e82d';}
.mi-garden_cart:before {content: '\f8a9';}
.mi-gas_meter:before {content: '\ec19';}
.mi-gastroenterology:before {content: '\e0f1';}
.mi-gate:before {content: '\e277';}
.mi-gavel:before {content: '\e90e';}
.mi-general_device:before {content: '\e6de';}
.mi-generating_tokens:before {content: '\e749';}
.mi-genetics:before {content: '\e0f3';}
.mi-genres:before {content: '\e6ee';}
.mi-gesture:before {content: '\e155';}
.mi-gesture_select:before {content: '\f657';}
.mi-get_app:before {content: '\f090';}
.mi-gif:before {content: '\e908';}
.mi-gif_box:before {content: '\e7a3';}
.mi-girl:before {content: '\eb68';}
.mi-gite:before {content: '\e58b';}
.mi-glass_cup:before {content: '\f6e3';}
.mi-globe:before {content: '\e64c';}
.mi-globe_asia:before {content: '\f799';}
.mi-globe_uk:before {content: '\f798';}
.mi-glucose:before {content: '\e4a0';}
.mi-glyphs:before {content: '\f8a3';}
.mi-go_to_line:before {content: '\f71d';}
.mi-golf_course:before {content: '\eb45';}
.mi-google_home_devices:before {content: '\e715';}
.mi-google_plus_reshare:before {content: '\f57a';}
.mi-google_tv_remote:before {content: '\f5db';}
.mi-google_wifi:before {content: '\f579';}
.mi-gpp_bad:before {content: '\f012';}
.mi-gpp_good:before {content: '\f013';}
.mi-gpp_maybe:before {content: '\f014';}
.mi-gps_fixed:before {content: '\e55c';}
.mi-gps_not_fixed:before {content: '\e1b7';}
.mi-gps_off:before {content: '\e1b6';}
.mi-grade:before {content: '\e885';}
.mi-gradient:before {content: '\e3e9';}
.mi-grading:before {content: '\ea4f';}
.mi-grain:before {content: '\e3ea';}
.mi-graphic_eq:before {content: '\e1b8';}
.mi-grass:before {content: '\f205';}
.mi-grid_3x3:before {content: '\f015';}
.mi-grid_3x3_off:before {content: '\f67c';}
.mi-grid_4x4:before {content: '\f016';}
.mi-grid_goldenratio:before {content: '\f017';}
.mi-grid_guides:before {content: '\f76f';}
.mi-grid_off:before {content: '\e3eb';}
.mi-grid_on:before {content: '\e3ec';}
.mi-grid_view:before {content: '\e9b0';}
.mi-grocery:before {content: '\ef97';}
.mi-group:before {content: '\ea21';}
.mi-group_add:before {content: '\e7f0';}
.mi-group_off:before {content: '\e747';}
.mi-group_remove:before {content: '\e7ad';}
.mi-group_work:before {content: '\e886';}
.mi-grouped_bar_chart:before {content: '\f211';}
.mi-groups:before {content: '\f233';}
.mi-groups_2:before {content: '\f8df';}
.mi-groups_3:before {content: '\f8e0';}
.mi-gynecology:before {content: '\e0f4';}
.mi-h_mobiledata:before {content: '\f018';}
.mi-h_mobiledata_badge:before {content: '\f7e0';}
.mi-h_plus_mobiledata:before {content: '\f019';}
.mi-h_plus_mobiledata_badge:before {content: '\f7df';}
.mi-hail:before {content: '\e9b1';}
.mi-hallway:before {content: '\e6f8';}
.mi-hand_bones:before {content: '\f894';}
.mi-hand_gesture:before {content: '\ef9c';}
.mi-handshake:before {content: '\ebcb';}
.mi-handwriting_recognition:before {content: '\eb02';}
.mi-handyman:before {content: '\f10b';}
.mi-hangout_video:before {content: '\e0c1';}
.mi-hangout_video_off:before {content: '\e0c2';}
.mi-hard_drive:before {content: '\f80e';}
.mi-hard_drive_2:before {content: '\f7a4';}
.mi-hardware:before {content: '\ea59';}
.mi-hd:before {content: '\e052';}
.mi-hdr_auto:before {content: '\f01a';}
.mi-hdr_auto_select:before {content: '\f01b';}
.mi-hdr_enhanced_select:before {content: '\ef51';}
.mi-hdr_off:before {content: '\e3ed';}
.mi-hdr_off_select:before {content: '\f01c';}
.mi-hdr_on:before {content: '\e3ee';}
.mi-hdr_on_select:before {content: '\f01d';}
.mi-hdr_plus:before {content: '\f01e';}
.mi-hdr_plus_off:before {content: '\e3ef';}
.mi-hdr_strong:before {content: '\e3f1';}
.mi-hdr_weak:before {content: '\e3f2';}
.mi-headphones:before {content: '\f01f';}
.mi-headphones_battery:before {content: '\f020';}
.mi-headset:before {content: '\f01f';}
.mi-headset_mic:before {content: '\e311';}
.mi-headset_off:before {content: '\e33a';}
.mi-healing:before {content: '\e3f3';}
.mi-health_and_beauty:before {content: '\ef9d';}
.mi-health_and_safety:before {content: '\e1d5';}
.mi-health_metrics:before {content: '\f6e2';}
.mi-heap_snapshot_large:before {content: '\f76e';}
.mi-heap_snapshot_multiple:before {content: '\f76d';}
.mi-heap_snapshot_thumbnail:before {content: '\f76c';}
.mi-hearing:before {content: '\e023';}
.mi-hearing_disabled:before {content: '\f104';}
.mi-heart_broken:before {content: '\eac2';}
.mi-heart_check:before {content: '\f60a';}
.mi-heart_minus:before {content: '\f883';}
.mi-heart_plus:before {content: '\f884';}
.mi-heat:before {content: '\f537';}
.mi-heat_pump:before {content: '\ec18';}
.mi-heat_pump_balance:before {content: '\e27e';}
.mi-height:before {content: '\ea16';}
.mi-helicopter:before {content: '\f60c';}
.mi-help:before {content: '\e8fd';}
.mi-help_center:before {content: '\f1c0';}
.mi-help_clinic:before {content: '\f810';}
.mi-help_outline:before {content: '\e8fd';}
.mi-hematology:before {content: '\e0f6';}
.mi-hevc:before {content: '\f021';}
.mi-hexagon:before {content: '\eb39';}
.mi-hide:before {content: '\ef9e';}
.mi-hide_image:before {content: '\f022';}
.mi-hide_source:before {content: '\f023';}
.mi-high_density:before {content: '\f79c';}
.mi-high_quality:before {content: '\e024';}
.mi-high_res:before {content: '\f54b';}
.mi-highlight:before {content: '\e25f';}
.mi-highlight_keyboard_focus:before {content: '\f510';}
.mi-highlight_mouse_cursor:before {content: '\f511';}
.mi-highlight_off:before {content: '\e888';}
.mi-highlight_text_cursor:before {content: '\f512';}
.mi-highlighter_size_1:before {content: '\f76b';}
.mi-highlighter_size_2:before {content: '\f76a';}
.mi-highlighter_size_3:before {content: '\f769';}
.mi-highlighter_size_4:before {content: '\f768';}
.mi-highlighter_size_5:before {content: '\f767';}
.mi-hiking:before {content: '\e50a';}
.mi-history:before {content: '\e8b3';}
.mi-history_edu:before {content: '\ea3e';}
.mi-history_off:before {content: '\f4da';}
.mi-history_toggle_off:before {content: '\f17d';}
.mi-hive:before {content: '\eaa6';}
.mi-hls:before {content: '\eb8a';}
.mi-hls_off:before {content: '\eb8c';}
.mi-holiday_village:before {content: '\e58a';}
.mi-home:before {content: '\e9b2';}
.mi-home_and_garden:before {content: '\ef9f';}
.mi-home_app_logo:before {content: '\e295';}
.mi-home_filled:before {content: '\e9b2';}
.mi-home_health:before {content: '\e4b9';}
.mi-home_improvement_and_tools:before {content: '\efa0';}
.mi-home_iot_device:before {content: '\e283';}
.mi-home_max:before {content: '\f024';}
.mi-home_max_dots:before {content: '\e849';}
.mi-home_mini:before {content: '\f025';}
.mi-home_pin:before {content: '\f14d';}
.mi-home_repair_service:before {content: '\f100';}
.mi-home_speaker:before {content: '\f11c';}
.mi-home_storage:before {content: '\f86c';}
.mi-home_work:before {content: '\f030';}
.mi-horizontal_distribute:before {content: '\e014';}
.mi-horizontal_rule:before {content: '\f108';}
.mi-horizontal_split:before {content: '\e947';}
.mi-hot_tub:before {content: '\eb46';}
.mi-hotel:before {content: '\e549';}
.mi-hotel_class:before {content: '\e743';}
.mi-hourglass:before {content: '\ebff';}
.mi-hourglass_bottom:before {content: '\ea5c';}
.mi-hourglass_disabled:before {content: '\ef53';}
.mi-hourglass_empty:before {content: '\e88b';}
.mi-hourglass_full:before {content: '\e88c';}
.mi-hourglass_top:before {content: '\ea5b';}
.mi-house:before {content: '\ea44';}
.mi-house_siding:before {content: '\f202';}
.mi-house_with_shield:before {content: '\e786';}
.mi-houseboat:before {content: '\e584';}
.mi-household_supplies:before {content: '\efa1';}
.mi-how_to_reg:before {content: '\e174';}
.mi-how_to_vote:before {content: '\e175';}
.mi-hr_resting:before {content: '\f6ba';}
.mi-html:before {content: '\eb7e';}
.mi-http:before {content: '\e902';}
.mi-https:before {content: '\e899';}
.mi-hub:before {content: '\e9f4';}
.mi-humerus:before {content: '\f895';}
.mi-humerus_alt:before {content: '\f896';}
.mi-humidity_high:before {content: '\f163';}
.mi-humidity_indoor:before {content: '\f558';}
.mi-humidity_low:before {content: '\f164';}
.mi-humidity_mid:before {content: '\f165';}
.mi-humidity_percentage:before {content: '\f87e';}
.mi-hvac:before {content: '\f10e';}
.mi-ice_skating:before {content: '\e50b';}
.mi-icecream:before {content: '\ea69';}
.mi-ifl:before {content: '\e025';}
.mi-iframe:before {content: '\f71b';}
.mi-iframe_off:before {content: '\f71c';}
.mi-image:before {content: '\e3f4';}
.mi-image_aspect_ratio:before {content: '\e3f5';}
.mi-image_not_supported:before {content: '\f116';}
.mi-image_search:before {content: '\e43f';}
.mi-imagesearch_roller:before {content: '\e9b4';}
.mi-imagesmode:before {content: '\efa2';}
.mi-immunology:before {content: '\e0fb';}
.mi-import_contacts:before {content: '\e0e0';}
.mi-import_export:before {content: '\e8d5';}
.mi-important_devices:before {content: '\e912';}
.mi-in_home_mode:before {content: '\e833';}
.mi-inactive_order:before {content: '\e0fc';}
.mi-inbox:before {content: '\e156';}
.mi-inbox_customize:before {content: '\f859';}
.mi-incomplete_circle:before {content: '\e79b';}
.mi-indeterminate_check_box:before {content: '\e909';}
.mi-indeterminate_question_box:before {content: '\f56d';}
.mi-info:before {content: '\e88e';}
.mi-info_i:before {content: '\f59b';}
.mi-infrared:before {content: '\f87c';}
.mi-ink_eraser:before {content: '\e6d0';}
.mi-ink_eraser_off:before {content: '\e7e3';}
.mi-ink_highlighter:before {content: '\e6d1';}
.mi-ink_highlighter_move:before {content: '\f524';}
.mi-ink_marker:before {content: '\e6d2';}
.mi-ink_pen:before {content: '\e6d3';}
.mi-inpatient:before {content: '\e0fe';}
.mi-input:before {content: '\e890';}
.mi-input_circle:before {content: '\f71a';}
.mi-insert_chart:before {content: '\f0cc';}
.mi-insert_chart_filled:before {content: '\f0cc';}
.mi-insert_chart_outlined:before {content: '\f0cc';}
.mi-insert_comment:before {content: '\e24c';}
.mi-insert_drive_file:before {content: '\e66d';}
.mi-insert_emoticon:before {content: '\ea22';}
.mi-insert_invitation:before {content: '\e878';}
.mi-insert_link:before {content: '\e250';}
.mi-insert_page_break:before {content: '\eaca';}
.mi-insert_photo:before {content: '\e3f4';}
.mi-insert_text:before {content: '\f827';}
.mi-insights:before {content: '\f092';}
.mi-install_desktop:before {content: '\eb71';}
.mi-install_mobile:before {content: '\eb72';}
.mi-instant_mix:before {content: '\e026';}
.mi-integration_instructions:before {content: '\ef54';}
.mi-interactive_space:before {content: '\f7ff';}
.mi-interests:before {content: '\e7c8';}
.mi-interpreter_mode:before {content: '\e83b';}
.mi-inventory:before {content: '\e179';}
.mi-inventory_2:before {content: '\e1a1';}
.mi-invert_colors:before {content: '\e891';}
.mi-invert_colors_off:before {content: '\e0c4';}
.mi-ios:before {content: '\e027';}
.mi-ios_share:before {content: '\e6b8';}
.mi-iron:before {content: '\e583';}
.mi-iso:before {content: '\e3f6';}
.mi-jamboard_kiosk:before {content: '\e9b5';}
.mi-javascript:before {content: '\eb7c';}
.mi-join:before {content: '\f84f';}
.mi-join_full:before {content: '\f84f';}
.mi-join_inner:before {content: '\eaf4';}
.mi-join_left:before {content: '\eaf2';}
.mi-join_right:before {content: '\eaea';}
.mi-joystick:before {content: '\f5ee';}
.mi-jump_to_element:before {content: '\f719';}
.mi-kayaking:before {content: '\e50c';}
.mi-kebab_dining:before {content: '\e842';}
.mi-kettle:before {content: '\e2b9';}
.mi-key:before {content: '\e73c';}
.mi-key_off:before {content: '\eb84';}
.mi-key_vertical:before {content: '\f51a';}
.mi-key_visualizer:before {content: '\f199';}
.mi-keyboard:before {content: '\e312';}
.mi-keyboard_alt:before {content: '\f028';}
.mi-keyboard_arrow_down:before {content: '\e313';}
.mi-keyboard_arrow_left:before {content: '\e314';}
.mi-keyboard_arrow_right:before {content: '\e315';}
.mi-keyboard_arrow_up:before {content: '\e316';}
.mi-keyboard_backspace:before {content: '\e317';}
.mi-keyboard_capslock:before {content: '\e318';}
.mi-keyboard_capslock_badge:before {content: '\f7de';}
.mi-keyboard_command_key:before {content: '\eae7';}
.mi-keyboard_control_key:before {content: '\eae6';}
.mi-keyboard_double_arrow_down:before {content: '\ead0';}
.mi-keyboard_double_arrow_left:before {content: '\eac3';}
.mi-keyboard_double_arrow_right:before {content: '\eac9';}
.mi-keyboard_double_arrow_up:before {content: '\eacf';}
.mi-keyboard_external_input:before {content: '\f7dd';}
.mi-keyboard_full:before {content: '\f7dc';}
.mi-keyboard_hide:before {content: '\e31a';}
.mi-keyboard_keys:before {content: '\f67b';}
.mi-keyboard_off:before {content: '\f67a';}
.mi-keyboard_onscreen:before {content: '\f7db';}
.mi-keyboard_option_key:before {content: '\eae8';}
.mi-keyboard_previous_language:before {content: '\f7da';}
.mi-keyboard_return:before {content: '\e31b';}
.mi-keyboard_tab:before {content: '\e31c';}
.mi-keyboard_tab_rtl:before {content: '\ec73';}
.mi-keyboard_voice:before {content: '\e31d';}
.mi-kid_star:before {content: '\f526';}
.mi-king_bed:before {content: '\ea45';}
.mi-kitchen:before {content: '\eb47';}
.mi-kitesurfing:before {content: '\e50d';}
.mi-lab_panel:before {content: '\e103';}
.mi-lab_profile:before {content: '\e104';}
.mi-lab_research:before {content: '\f80b';}
.mi-label:before {content: '\e893';}
.mi-label_important:before {content: '\e948';}
.mi-label_important_outline:before {content: '\e948';}
.mi-label_off:before {content: '\e9b6';}
.mi-label_outline:before {content: '\e893';}
.mi-labs:before {content: '\e105';}
.mi-lan:before {content: '\eb2f';}
.mi-landscape:before {content: '\e564';}
.mi-landslide:before {content: '\ebd7';}
.mi-language:before {content: '\e894';}
.mi-language_chinese_array:before {content: '\f766';}
.mi-language_chinese_cangjie:before {content: '\f765';}
.mi-language_chinese_dayi:before {content: '\f764';}
.mi-language_chinese_pinyin:before {content: '\f763';}
.mi-language_chinese_quick:before {content: '\f762';}
.mi-language_chinese_wubi:before {content: '\f761';}
.mi-language_french:before {content: '\f760';}
.mi-language_gb_english:before {content: '\f75f';}
.mi-language_international:before {content: '\f75e';}
.mi-language_japanese_kana:before {content: '\f513';}
.mi-language_korean_latin:before {content: '\f75d';}
.mi-language_pinyin:before {content: '\f75c';}
.mi-language_spanish:before {content: '\f5e9';}
.mi-language_us:before {content: '\f759';}
.mi-language_us_colemak:before {content: '\f75b';}
.mi-language_us_dvorak:before {content: '\f75a';}
.mi-laps:before {content: '\f6b9';}
.mi-laptop:before {content: '\e31e';}
.mi-laptop_chromebook:before {content: '\e31f';}
.mi-laptop_mac:before {content: '\e320';}
.mi-laptop_windows:before {content: '\e321';}
.mi-lasso_select:before {content: '\eb03';}
.mi-last_page:before {content: '\e5dd';}
.mi-launch:before {content: '\e89e';}
.mi-laundry:before {content: '\e2a8';}
.mi-layers:before {content: '\e53b';}
.mi-layers_clear:before {content: '\e53c';}
.mi-lda:before {content: '\e106';}
.mi-leaderboard:before {content: '\f20c';}
.mi-leak_add:before {content: '\e3f8';}
.mi-leak_remove:before {content: '\e3f9';}
.mi-left_click:before {content: '\f718';}
.mi-left_panel_close:before {content: '\f717';}
.mi-left_panel_open:before {content: '\f716';}
.mi-legend_toggle:before {content: '\f11b';}
.mi-lens:before {content: '\e3fa';}
.mi-lens_blur:before {content: '\f029';}
.mi-letter_switch:before {content: '\f758';}
.mi-library_add:before {content: '\e03c';}
.mi-library_add_check:before {content: '\e9b7';}
.mi-library_books:before {content: '\e02f';}
.mi-library_music:before {content: '\e030';}
.mi-license:before {content: '\eb04';}
.mi-lift_to_talk:before {content: '\efa3';}
.mi-light:before {content: '\f02a';}
.mi-light_group:before {content: '\e28b';}
.mi-light_mode:before {content: '\e518';}
.mi-light_off:before {content: '\e9b8';}
.mi-lightbulb:before {content: '\e90f';}
.mi-lightbulb_circle:before {content: '\ebfe';}
.mi-lightbulb_outline:before {content: '\e90f';}
.mi-lightning_stand:before {content: '\efa4';}
.mi-line_axis:before {content: '\ea9a';}
.mi-line_curve:before {content: '\f757';}
.mi-line_end:before {content: '\f826';}
.mi-line_end_arrow:before {content: '\f81d';}
.mi-line_end_arrow_notch:before {content: '\f81c';}
.mi-line_end_circle:before {content: '\f81b';}
.mi-line_end_diamond:before {content: '\f81a';}
.mi-line_end_square:before {content: '\f819';}
.mi-line_start:before {content: '\f825';}
.mi-line_start_arrow:before {content: '\f818';}
.mi-line_start_arrow_notch:before {content: '\f817';}
.mi-line_start_circle:before {content: '\f816';}
.mi-line_start_diamond:before {content: '\f815';}
.mi-line_start_square:before {content: '\f814';}
.mi-line_style:before {content: '\e919';}
.mi-line_weight:before {content: '\e91a';}
.mi-linear_scale:before {content: '\e260';}
.mi-link:before {content: '\e250';}
.mi-link_off:before {content: '\e16f';}
.mi-linked_camera:before {content: '\e438';}
.mi-linked_services:before {content: '\f535';}
.mi-liquor:before {content: '\ea60';}
.mi-list:before {content: '\e896';}
.mi-list_alt:before {content: '\e0ee';}
.mi-list_alt_add:before {content: '\f756';}
.mi-lists:before {content: '\e9b9';}
.mi-live_help:before {content: '\e0c6';}
.mi-live_tv:before {content: '\e63a';}
.mi-living:before {content: '\f02b';}
.mi-local_activity:before {content: '\e553';}
.mi-local_airport:before {content: '\e53d';}
.mi-local_atm:before {content: '\e53e';}
.mi-local_bar:before {content: '\e540';}
.mi-local_cafe:before {content: '\eb44';}
.mi-local_car_wash:before {content: '\e542';}
.mi-local_convenience_store:before {content: '\e543';}
.mi-local_dining:before {content: '\e561';}
.mi-local_drink:before {content: '\e544';}
.mi-local_fire_department:before {content: '\ef55';}
.mi-local_florist:before {content: '\e545';}
.mi-local_gas_station:before {content: '\e546';}
.mi-local_grocery_store:before {content: '\e8cc';}
.mi-local_hospital:before {content: '\e548';}
.mi-local_hotel:before {content: '\e549';}
.mi-local_laundry_service:before {content: '\e54a';}
.mi-local_library:before {content: '\e54b';}
.mi-local_mall:before {content: '\e54c';}
.mi-local_movies:before {content: '\e8da';}
.mi-local_offer:before {content: '\f05b';}
.mi-local_parking:before {content: '\e54f';}
.mi-local_pharmacy:before {content: '\e550';}
.mi-local_phone:before {content: '\f0d4';}
.mi-local_pizza:before {content: '\e552';}
.mi-local_play:before {content: '\e553';}
.mi-local_police:before {content: '\ef56';}
.mi-local_post_office:before {content: '\e554';}
.mi-local_printshop:before {content: '\e8ad';}
.mi-local_see:before {content: '\e557';}
.mi-local_shipping:before {content: '\e558';}
.mi-local_taxi:before {content: '\e559';}
.mi-location_automation:before {content: '\f14f';}
.mi-location_away:before {content: '\f150';}
.mi-location_chip:before {content: '\f850';}
.mi-location_city:before {content: '\e7f1';}
.mi-location_disabled:before {content: '\e1b6';}
.mi-location_home:before {content: '\f152';}
.mi-location_off:before {content: '\e0c7';}
.mi-location_on:before {content: '\f1db';}
.mi-location_pin:before {content: '\f1db';}
.mi-location_searching:before {content: '\e1b7';}
.mi-locator_tag:before {content: '\f8c1';}
.mi-lock:before {content: '\e899';}
.mi-lock_clock:before {content: '\ef57';}
.mi-lock_open:before {content: '\e898';}
.mi-lock_open_right:before {content: '\f656';}
.mi-lock_outline:before {content: '\e899';}
.mi-lock_person:before {content: '\f8f3';}
.mi-lock_reset:before {content: '\eade';}
.mi-login:before {content: '\ea77';}
.mi-logo_dev:before {content: '\ead6';}
.mi-logout:before {content: '\e9ba';}
.mi-looks:before {content: '\e3fc';}
.mi-looks_3:before {content: '\e3fb';}
.mi-looks_4:before {content: '\e3fd';}
.mi-looks_5:before {content: '\e3fe';}
.mi-looks_6:before {content: '\e3ff';}
.mi-looks_one:before {content: '\e400';}
.mi-looks_two:before {content: '\e401';}
.mi-loop:before {content: '\e863';}
.mi-loupe:before {content: '\e402';}
.mi-low_density:before {content: '\f79b';}
.mi-low_priority:before {content: '\e16d';}
.mi-loyalty:before {content: '\e89a';}
.mi-lte_mobiledata:before {content: '\f02c';}
.mi-lte_mobiledata_badge:before {content: '\f7d9';}
.mi-lte_plus_mobiledata:before {content: '\f02d';}
.mi-lte_plus_mobiledata_badge:before {content: '\f7d8';}
.mi-luggage:before {content: '\f235';}
.mi-lunch_dining:before {content: '\ea61';}
.mi-lyrics:before {content: '\ec0b';}
.mi-macro_auto:before {content: '\f6f2';}
.mi-macro_off:before {content: '\f8d2';}
.mi-magic_button:before {content: '\f136';}
.mi-magic_exchange:before {content: '\f7f4';}
.mi-magic_tether:before {content: '\f7d7';}
.mi-magnification_large:before {content: '\f83d';}
.mi-magnification_small:before {content: '\f83c';}
.mi-magnify_docked:before {content: '\f7d6';}
.mi-magnify_fullscreen:before {content: '\f7d5';}
.mi-mail:before {content: '\e159';}
.mi-mail_lock:before {content: '\ec0a';}
.mi-mail_outline:before {content: '\e159';}
.mi-male:before {content: '\e58e';}
.mi-man:before {content: '\e4eb';}
.mi-man_2:before {content: '\f8e1';}
.mi-man_3:before {content: '\f8e2';}
.mi-man_4:before {content: '\f8e3';}
.mi-manage_accounts:before {content: '\f02e';}
.mi-manage_history:before {content: '\ebe7';}
.mi-manage_search:before {content: '\f02f';}
.mi-manga:before {content: '\f5e3';}
.mi-manufacturing:before {content: '\e726';}
.mi-map:before {content: '\e55b';}
.mi-maps_home_work:before {content: '\f030';}
.mi-maps_ugc:before {content: '\ef58';}
.mi-margin:before {content: '\e9bb';}
.mi-mark_as_unread:before {content: '\e9bc';}
.mi-mark_chat_read:before {content: '\f18b';}
.mi-mark_chat_unread:before {content: '\f189';}
.mi-mark_email_read:before {content: '\f18c';}
.mi-mark_email_unread:before {content: '\f18a';}
.mi-mark_unread_chat_alt:before {content: '\eb9d';}
.mi-markdown:before {content: '\f552';}
.mi-markdown_copy:before {content: '\f553';}
.mi-markdown_paste:before {content: '\f554';}
.mi-markunread:before {content: '\e159';}
.mi-markunread_mailbox:before {content: '\e89b';}
.mi-masked_transitions:before {content: '\e72e';}
.mi-masks:before {content: '\f218';}
.mi-match_case:before {content: '\f6f1';}
.mi-match_word:before {content: '\f6f0';}
.mi-matter:before {content: '\e907';}
.mi-maximize:before {content: '\e930';}
.mi-measuring_tape:before {content: '\f6af';}
.mi-media_bluetooth_off:before {content: '\f031';}
.mi-media_bluetooth_on:before {content: '\f032';}
.mi-media_link:before {content: '\f83f';}
.mi-media_output:before {content: '\f4f2';}
.mi-media_output_off:before {content: '\f4f3';}
.mi-mediation:before {content: '\efa7';}
.mi-medical_information:before {content: '\ebed';}
.mi-medical_mask:before {content: '\f80a';}
.mi-medical_services:before {content: '\f109';}
.mi-medication:before {content: '\f033';}
.mi-medication_liquid:before {content: '\ea87';}
.mi-meeting_room:before {content: '\eb4f';}
.mi-memory:before {content: '\e322';}
.mi-memory_alt:before {content: '\f7a3';}
.mi-menstrual_health:before {content: '\f6e1';}
.mi-menu:before {content: '\e5d2';}
.mi-menu_book:before {content: '\ea19';}
.mi-menu_open:before {content: '\e9bd';}
.mi-merge:before {content: '\eb98';}
.mi-merge_type:before {content: '\e252';}
.mi-message:before {content: '\e0c9';}
.mi-metabolism:before {content: '\e10b';}
.mi-mfg_nest_yale_lock:before {content: '\f11d';}
.mi-mic:before {content: '\e31d';}
.mi-mic_double:before {content: '\f5d1';}
.mi-mic_external_off:before {content: '\ef59';}
.mi-mic_external_on:before {content: '\ef5a';}
.mi-mic_none:before {content: '\e31d';}
.mi-mic_off:before {content: '\e02b';}
.mi-microbiology:before {content: '\e10c';}
.mi-microwave:before {content: '\f204';}
.mi-microwave_gen:before {content: '\e847';}
.mi-military_tech:before {content: '\ea3f';}
.mi-mimo:before {content: '\e9be';}
.mi-mimo_disconnect:before {content: '\e9bf';}
.mi-mindfulness:before {content: '\f6e0';}
.mi-minimize:before {content: '\e931';}
.mi-minor_crash:before {content: '\ebf1';}
.mi-mintmark:before {content: '\efa9';}
.mi-missed_video_call:before {content: '\f0ce';}
.mi-missed_video_call_filled:before {content: '\f0ce';}
.mi-missing_controller:before {content: '\e701';}
.mi-mist:before {content: '\e188';}
.mi-mitre:before {content: '\f547';}
.mi-mixture_med:before {content: '\e4c8';}
.mi-mms:before {content: '\e618';}
.mi-mobile_friendly:before {content: '\e200';}
.mi-mobile_off:before {content: '\e201';}
.mi-mobile_screen_share:before {content: '\e0e7';}
.mi-mobiledata_off:before {content: '\f034';}
.mi-mode:before {content: '\f097';}
.mi-mode_comment:before {content: '\e253';}
.mi-mode_cool:before {content: '\f166';}
.mi-mode_cool_off:before {content: '\f167';}
.mi-mode_dual:before {content: '\f557';}
.mi-mode_edit:before {content: '\f097';}
.mi-mode_edit_outline:before {content: '\f097';}
.mi-mode_fan:before {content: '\f168';}
.mi-mode_fan_off:before {content: '\ec17';}
.mi-mode_heat:before {content: '\f16a';}
.mi-mode_heat_cool:before {content: '\f16b';}
.mi-mode_heat_off:before {content: '\f16d';}
.mi-mode_night:before {content: '\f036';}
.mi-mode_of_travel:before {content: '\e7ce';}
.mi-mode_off_on:before {content: '\f16f';}
.mi-mode_standby:before {content: '\f037';}
.mi-model_training:before {content: '\f0cf';}
.mi-monetization_on:before {content: '\e263';}
.mi-money:before {content: '\e57d';}
.mi-money_off:before {content: '\f038';}
.mi-money_off_csred:before {content: '\f038';}
.mi-monitor:before {content: '\ef5b';}
.mi-monitor_heart:before {content: '\eaa2';}
.mi-monitor_weight:before {content: '\f039';}
.mi-monitor_weight_gain:before {content: '\f6df';}
.mi-monitor_weight_loss:before {content: '\f6de';}
.mi-monitoring:before {content: '\f190';}
.mi-monochrome_photos:before {content: '\e403';}
.mi-mood:before {content: '\ea22';}
.mi-mood_bad:before {content: '\e7f3';}
.mi-mop:before {content: '\e28d';}
.mi-more:before {content: '\e619';}
.mi-more_down:before {content: '\f196';}
.mi-more_horiz:before {content: '\e5d3';}
.mi-more_time:before {content: '\ea5d';}
.mi-more_up:before {content: '\f197';}
.mi-more_vert:before {content: '\e5d4';}
.mi-mosque:before {content: '\eab2';}
.mi-motion_blur:before {content: '\f0d0';}
.mi-motion_mode:before {content: '\f842';}
.mi-motion_photos_auto:before {content: '\f03a';}
.mi-motion_photos_off:before {content: '\e9c0';}
.mi-motion_photos_on:before {content: '\e9c1';}
.mi-motion_photos_pause:before {content: '\f227';}
.mi-motion_photos_paused:before {content: '\f227';}
.mi-motion_sensor_active:before {content: '\e792';}
.mi-motion_sensor_alert:before {content: '\e784';}
.mi-motion_sensor_idle:before {content: '\e783';}
.mi-motion_sensor_urgent:before {content: '\e78e';}
.mi-motorcycle:before {content: '\e91b';}
.mi-mountain_flag:before {content: '\f5e2';}
.mi-mouse:before {content: '\e323';}
.mi-move:before {content: '\e740';}
.mi-move_down:before {content: '\eb61';}
.mi-move_group:before {content: '\f715';}
.mi-move_item:before {content: '\f1ff';}
.mi-move_location:before {content: '\e741';}
.mi-move_selection_down:before {content: '\f714';}
.mi-move_selection_left:before {content: '\f713';}
.mi-move_selection_right:before {content: '\f712';}
.mi-move_selection_up:before {content: '\f711';}
.mi-move_to_inbox:before {content: '\e168';}
.mi-move_up:before {content: '\eb64';}
.mi-moved_location:before {content: '\e594';}
.mi-movie:before {content: '\e404';}
.mi-movie_creation:before {content: '\e404';}
.mi-movie_edit:before {content: '\f840';}
.mi-movie_filter:before {content: '\e43a';}
.mi-movie_info:before {content: '\e02d';}
.mi-moving:before {content: '\e501';}
.mi-moving_beds:before {content: '\e73d';}
.mi-moving_ministry:before {content: '\e73e';}
.mi-mp:before {content: '\e9c3';}
.mi-multicooker:before {content: '\e293';}
.mi-multiline_chart:before {content: '\e6df';}
.mi-multiple_stop:before {content: '\f1b9';}
.mi-museum:before {content: '\ea36';}
.mi-music_cast:before {content: '\eb1a';}
.mi-music_note:before {content: '\e405';}
.mi-music_off:before {content: '\e440';}
.mi-music_video:before {content: '\e063';}
.mi-my_location:before {content: '\e55c';}
.mi-mystery:before {content: '\f5e1';}
.mi-nat:before {content: '\ef5c';}
.mi-nature:before {content: '\e406';}
.mi-nature_people:before {content: '\e407';}
.mi-navigate_before:before {content: '\e408';}
.mi-navigate_next:before {content: '\e409';}
.mi-navigation:before {content: '\e55d';}
.mi-near_me:before {content: '\e569';}
.mi-near_me_disabled:before {content: '\f1ef';}
.mi-nearby:before {content: '\e6b7';}
.mi-nearby_error:before {content: '\f03b';}
.mi-nearby_off:before {content: '\f03c';}
.mi-nephrology:before {content: '\e10d';}
.mi-nest_audio:before {content: '\ebbf';}
.mi-nest_cam_floodlight:before {content: '\f8b7';}
.mi-nest_cam_indoor:before {content: '\f11e';}
.mi-nest_cam_iq:before {content: '\f11f';}
.mi-nest_cam_iq_outdoor:before {content: '\f120';}
.mi-nest_cam_magnet_mount:before {content: '\f8b8';}
.mi-nest_cam_outdoor:before {content: '\f121';}
.mi-nest_cam_stand:before {content: '\f8b9';}
.mi-nest_cam_wall_mount:before {content: '\f8ba';}
.mi-nest_cam_wired_stand:before {content: '\ec16';}
.mi-nest_clock_farsight_analog:before {content: '\f8bb';}
.mi-nest_clock_farsight_digital:before {content: '\f8bc';}
.mi-nest_connect:before {content: '\f122';}
.mi-nest_detect:before {content: '\f123';}
.mi-nest_display:before {content: '\f124';}
.mi-nest_display_max:before {content: '\f125';}
.mi-nest_doorbell_visitor:before {content: '\f8bd';}
.mi-nest_eco_leaf:before {content: '\f8be';}
.mi-nest_farsight_weather:before {content: '\f8bf';}
.mi-nest_found_savings:before {content: '\f8c0';}
.mi-nest_gale_wifi:before {content: '\f579';}
.mi-nest_heat_link_e:before {content: '\f126';}
.mi-nest_heat_link_gen_3:before {content: '\f127';}
.mi-nest_hello_doorbell:before {content: '\e82c';}
.mi-nest_locator_tag:before {content: '\f8c1';}
.mi-nest_mini:before {content: '\e789';}
.mi-nest_multi_room:before {content: '\f8c2';}
.mi-nest_protect:before {content: '\e68e';}
.mi-nest_remote:before {content: '\f5db';}
.mi-nest_remote_comfort_sensor:before {content: '\f12a';}
.mi-nest_secure_alarm:before {content: '\f12b';}
.mi-nest_sunblock:before {content: '\f8c3';}
.mi-nest_tag:before {content: '\f8c1';}
.mi-nest_thermostat:before {content: '\e68f';}
.mi-nest_thermostat_e_eu:before {content: '\f12d';}
.mi-nest_thermostat_gen_3:before {content: '\f12e';}
.mi-nest_thermostat_sensor:before {content: '\f12f';}
.mi-nest_thermostat_sensor_eu:before {content: '\f130';}
.mi-nest_thermostat_zirconium_eu:before {content: '\f131';}
.mi-nest_true_radiant:before {content: '\f8c4';}
.mi-nest_wake_on_approach:before {content: '\f8c5';}
.mi-nest_wake_on_press:before {content: '\f8c6';}
.mi-nest_wifi_gale:before {content: '\f132';}
.mi-nest_wifi_mistral:before {content: '\f133';}
.mi-nest_wifi_point:before {content: '\f134';}
.mi-nest_wifi_point_vento:before {content: '\f134';}
.mi-nest_wifi_pro:before {content: '\f56b';}
.mi-nest_wifi_pro_2:before {content: '\f56a';}
.mi-nest_wifi_router:before {content: '\f133';}
.mi-network_cell:before {content: '\e1b9';}
.mi-network_check:before {content: '\e640';}
.mi-network_intelligence_history:before {content: '\f5f6';}
.mi-network_intelligence_update:before {content: '\f5f5';}
.mi-network_locked:before {content: '\e61a';}
.mi-network_manage:before {content: '\f7ab';}
.mi-network_node:before {content: '\f56e';}
.mi-network_ping:before {content: '\ebca';}
.mi-network_wifi:before {content: '\e1ba';}
.mi-network_wifi_1_bar:before {content: '\ebe4';}
.mi-network_wifi_1_bar_locked:before {content: '\f58f';}
.mi-network_wifi_2_bar:before {content: '\ebd6';}
.mi-network_wifi_2_bar_locked:before {content: '\f58e';}
.mi-network_wifi_3_bar:before {content: '\ebe1';}
.mi-network_wifi_3_bar_locked:before {content: '\f58d';}
.mi-network_wifi_locked:before {content: '\f532';}
.mi-neurology:before {content: '\e10e';}
.mi-new_label:before {content: '\e609';}
.mi-new_releases:before {content: '\ef76';}
.mi-new_window:before {content: '\f710';}
.mi-news:before {content: '\e032';}
.mi-newsmode:before {content: '\efad';}
.mi-newspaper:before {content: '\eb81';}
.mi-newsstand:before {content: '\e9c4';}
.mi-next_plan:before {content: '\ef5d';}
.mi-next_week:before {content: '\e16a';}
.mi-nfc:before {content: '\e1bb';}
.mi-night_shelter:before {content: '\f1f1';}
.mi-night_sight_auto:before {content: '\f1d7';}
.mi-night_sight_auto_off:before {content: '\f1f9';}
.mi-night_sight_max:before {content: '\f6c3';}
.mi-nightlife:before {content: '\ea62';}
.mi-nightlight:before {content: '\f03d';}
.mi-nightlight_round:before {content: '\f03d';}
.mi-nights_stay:before {content: '\ea46';}
.mi-no_accounts:before {content: '\f03e';}
.mi-no_adult_content:before {content: '\f8fe';}
.mi-no_backpack:before {content: '\f237';}
.mi-no_crash:before {content: '\ebf0';}
.mi-no_drinks:before {content: '\f1a5';}
.mi-no_encryption:before {content: '\f03f';}
.mi-no_encryption_gmailerrorred:before {content: '\f03f';}
.mi-no_flash:before {content: '\f1a6';}
.mi-no_food:before {content: '\f1a7';}
.mi-no_luggage:before {content: '\f23b';}
.mi-no_meals:before {content: '\f1d6';}
.mi-no_meeting_room:before {content: '\eb4e';}
.mi-no_photography:before {content: '\f1a8';}
.mi-no_sim:before {content: '\e1ce';}
.mi-no_sound:before {content: '\e710';}
.mi-no_stroller:before {content: '\f1af';}
.mi-no_transfer:before {content: '\f1d5';}
.mi-noise_aware:before {content: '\ebec';}
.mi-noise_control_off:before {content: '\ebf3';}
.mi-noise_control_on:before {content: '\f8a8';}
.mi-nordic_walking:before {content: '\e50e';}
.mi-north:before {content: '\f1e0';}
.mi-north_east:before {content: '\f1e1';}
.mi-north_west:before {content: '\f1e2';}
.mi-not_accessible:before {content: '\f0fe';}
.mi-not_accessible_forward:before {content: '\f54a';}
.mi-not_interested:before {content: '\f08c';}
.mi-not_listed_location:before {content: '\e575';}
.mi-not_started:before {content: '\f0d1';}
.mi-note:before {content: '\e66d';}
.mi-note_add:before {content: '\e89c';}
.mi-note_alt:before {content: '\f040';}
.mi-note_stack:before {content: '\f562';}
.mi-note_stack_add:before {content: '\f563';}
.mi-notes:before {content: '\e26c';}
.mi-notification_add:before {content: '\e399';}
.mi-notification_important:before {content: '\e004';}
.mi-notification_multiple:before {content: '\e6c2';}
.mi-notifications:before {content: '\e7f5';}
.mi-notifications_active:before {content: '\e7f7';}
.mi-notifications_none:before {content: '\e7f5';}
.mi-notifications_off:before {content: '\e7f6';}
.mi-notifications_paused:before {content: '\e7f8';}
.mi-notifications_unread:before {content: '\f4fe';}
.mi-numbers:before {content: '\eac7';}
.mi-nutrition:before {content: '\e110';}
.mi-ods:before {content: '\e6e8';}
.mi-odt:before {content: '\e6e9';}
.mi-offline_bolt:before {content: '\e932';}
.mi-offline_pin:before {content: '\e90a';}
.mi-offline_share:before {content: '\e9c5';}
.mi-oil_barrel:before {content: '\ec15';}
.mi-on_device_training:before {content: '\ebfd';}
.mi-on_hub_device:before {content: '\e6c3';}
.mi-oncology:before {content: '\e114';}
.mi-ondemand_video:before {content: '\e63a';}
.mi-online_prediction:before {content: '\f0eb';}
.mi-onsen:before {content: '\f6f8';}
.mi-opacity:before {content: '\e91c';}
.mi-open_in_browser:before {content: '\e89d';}
.mi-open_in_full:before {content: '\f1ce';}
.mi-open_in_new:before {content: '\e89e';}
.mi-open_in_new_down:before {content: '\f70f';}
.mi-open_in_new_off:before {content: '\e4f6';}
.mi-open_in_phone:before {content: '\e702';}
.mi-open_jam:before {content: '\efae';}
.mi-open_with:before {content: '\e89f';}
.mi-ophthalmology:before {content: '\e115';}
.mi-oral_disease:before {content: '\e116';}
.mi-order_approve:before {content: '\f812';}
.mi-order_play:before {content: '\f811';}
.mi-orders:before {content: '\eb14';}
.mi-orthopedics:before {content: '\f897';}
.mi-other_admission:before {content: '\e47b';}
.mi-other_houses:before {content: '\e58c';}
.mi-outbound:before {content: '\e1ca';}
.mi-outbox:before {content: '\ef5f';}
.mi-outbox_alt:before {content: '\eb17';}
.mi-outdoor_garden:before {content: '\e205';}
.mi-outdoor_grill:before {content: '\ea47';}
.mi-outgoing_mail:before {content: '\f0d2';}
.mi-outlet:before {content: '\f1d4';}
.mi-outlined_flag:before {content: '\f0c6';}
.mi-outpatient:before {content: '\e118';}
.mi-outpatient_med:before {content: '\e119';}
.mi-output:before {content: '\ebbe';}
.mi-output_circle:before {content: '\f70e';}
.mi-oven:before {content: '\e9c7';}
.mi-oven_gen:before {content: '\e843';}
.mi-overview:before {content: '\e4a7';}
.mi-overview_key:before {content: '\f7d4';}
.mi-oxygen_saturation:before {content: '\e4de';}
.mi-p2p:before {content: '\f52a';}
.mi-pace:before {content: '\f6b8';}
.mi-pacemaker:before {content: '\e656';}
.mi-package:before {content: '\e48f';}
.mi-package_2:before {content: '\f569';}
.mi-padding:before {content: '\e9c8';}
.mi-page_control:before {content: '\e731';}
.mi-page_info:before {content: '\f614';}
.mi-pageless:before {content: '\f509';}
.mi-pages:before {content: '\e7f9';}
.mi-pageview:before {content: '\e8a0';}
.mi-paid:before {content: '\f041';}
.mi-palette:before {content: '\e40a';}
.mi-pallet:before {content: '\f86a';}
.mi-pan_tool:before {content: '\e925';}
.mi-pan_tool_alt:before {content: '\ebb9';}
.mi-pan_zoom:before {content: '\f655';}
.mi-panorama:before {content: '\e40b';}
.mi-panorama_fish_eye:before {content: '\e40c';}
.mi-panorama_horizontal:before {content: '\e40d';}
.mi-panorama_photosphere:before {content: '\e9c9';}
.mi-panorama_vertical:before {content: '\e40e';}
.mi-panorama_wide_angle:before {content: '\e40f';}
.mi-paragliding:before {content: '\e50f';}
.mi-park:before {content: '\ea63';}
.mi-partly_cloudy_day:before {content: '\f172';}
.mi-partly_cloudy_night:before {content: '\f174';}
.mi-partner_exchange:before {content: '\f7f9';}
.mi-partner_reports:before {content: '\efaf';}
.mi-party_mode:before {content: '\e7fa';}
.mi-passkey:before {content: '\f87f';}
.mi-password:before {content: '\f042';}
.mi-patient_list:before {content: '\e653';}
.mi-pattern:before {content: '\f043';}
.mi-pause:before {content: '\e034';}
.mi-pause_circle:before {content: '\e1a2';}
.mi-pause_circle_filled:before {content: '\e1a2';}
.mi-pause_circle_outline:before {content: '\e1a2';}
.mi-pause_presentation:before {content: '\e0ea';}
.mi-payment:before {content: '\e8a1';}
.mi-payments:before {content: '\ef63';}
.mi-pedal_bike:before {content: '\eb29';}
.mi-pediatrics:before {content: '\e11d';}
.mi-pen_size_1:before {content: '\f755';}
.mi-pen_size_2:before {content: '\f754';}
.mi-pen_size_3:before {content: '\f753';}
.mi-pen_size_4:before {content: '\f752';}
.mi-pen_size_5:before {content: '\f751';}
.mi-pending:before {content: '\ef64';}
.mi-pending_actions:before {content: '\f1bb';}
.mi-pentagon:before {content: '\eb50';}
.mi-people:before {content: '\ea21';}
.mi-people_alt:before {content: '\ea21';}
.mi-people_outline:before {content: '\ea21';}
.mi-percent:before {content: '\eb58';}
.mi-performance_max:before {content: '\e51a';}
.mi-pergola:before {content: '\e203';}
.mi-perm_camera_mic:before {content: '\e8a2';}
.mi-perm_contact_calendar:before {content: '\e8a3';}
.mi-perm_data_setting:before {content: '\e8a4';}
.mi-perm_device_information:before {content: '\e8a5';}
.mi-perm_identity:before {content: '\f0d3';}
.mi-perm_media:before {content: '\e8a7';}
.mi-perm_phone_msg:before {content: '\e8a8';}
.mi-perm_scan_wifi:before {content: '\e8a9';}
.mi-person:before {content: '\f0d3';}
.mi-person_2:before {content: '\f8e4';}
.mi-person_3:before {content: '\f8e5';}
.mi-person_4:before {content: '\f8e6';}
.mi-person_add:before {content: '\ea4d';}
.mi-person_add_alt:before {content: '\ea4d';}
.mi-person_add_disabled:before {content: '\e9cb';}
.mi-person_alert:before {content: '\f567';}
.mi-person_apron:before {content: '\f5a3';}
.mi-person_book:before {content: '\f5e8';}
.mi-person_cancel:before {content: '\f566';}
.mi-person_celebrate:before {content: '\f7fe';}
.mi-person_check:before {content: '\f565';}
.mi-person_edit:before {content: '\f4fa';}
.mi-person_filled:before {content: '\f0d3';}
.mi-person_off:before {content: '\e510';}
.mi-person_outline:before {content: '\f0d3';}
.mi-person_pin:before {content: '\e55a';}
.mi-person_pin_circle:before {content: '\e56a';}
.mi-person_play:before {content: '\f7fd';}
.mi-person_raised_hand:before {content: '\f59a';}
.mi-person_remove:before {content: '\ef66';}
.mi-person_search:before {content: '\f106';}
.mi-personal_bag:before {content: '\eb0e';}
.mi-personal_bag_off:before {content: '\eb0f';}
.mi-personal_bag_question:before {content: '\eb10';}
.mi-personal_injury:before {content: '\e6da';}
.mi-personal_places:before {content: '\e703';}
.mi-personal_video:before {content: '\e63b';}
.mi-pest_control:before {content: '\f0fa';}
.mi-pest_control_rodent:before {content: '\f0fd';}
.mi-pet_supplies:before {content: '\efb1';}
.mi-pets:before {content: '\e91d';}
.mi-phishing:before {content: '\ead7';}
.mi-phone:before {content: '\f0d4';}
.mi-phone_alt:before {content: '\f0d4';}
.mi-phone_android:before {content: '\e324';}
.mi-phone_bluetooth_speaker:before {content: '\e61b';}
.mi-phone_callback:before {content: '\e649';}
.mi-phone_disabled:before {content: '\e9cc';}
.mi-phone_enabled:before {content: '\e9cd';}
.mi-phone_forwarded:before {content: '\e61c';}
.mi-phone_in_talk:before {content: '\e61d';}
.mi-phone_iphone:before {content: '\e325';}
.mi-phone_locked:before {content: '\e61e';}
.mi-phone_missed:before {content: '\e61f';}
.mi-phone_paused:before {content: '\e620';}
.mi-phonelink:before {content: '\e326';}
.mi-phonelink_erase:before {content: '\e0db';}
.mi-phonelink_lock:before {content: '\e0dc';}
.mi-phonelink_off:before {content: '\e327';}
.mi-phonelink_ring:before {content: '\e0dd';}
.mi-phonelink_ring_off:before {content: '\f7aa';}
.mi-phonelink_setup:before {content: '\ef41';}
.mi-photo:before {content: '\e432';}
.mi-photo_album:before {content: '\e411';}
.mi-photo_auto_merge:before {content: '\f530';}
.mi-photo_camera:before {content: '\e412';}
.mi-photo_camera_back:before {content: '\ef68';}
.mi-photo_camera_front:before {content: '\ef69';}
.mi-photo_filter:before {content: '\e43b';}
.mi-photo_frame:before {content: '\f0d9';}
.mi-photo_library:before {content: '\e413';}
.mi-photo_prints:before {content: '\efb2';}
.mi-photo_size_select_actual:before {content: '\e432';}
.mi-photo_size_select_large:before {content: '\e433';}
.mi-photo_size_select_small:before {content: '\e434';}
.mi-php:before {content: '\eb8f';}
.mi-physical_therapy:before {content: '\e11e';}
.mi-piano:before {content: '\e521';}
.mi-piano_off:before {content: '\e520';}
.mi-picture_as_pdf:before {content: '\e415';}
.mi-picture_in_picture:before {content: '\e8aa';}
.mi-picture_in_picture_alt:before {content: '\e911';}
.mi-picture_in_picture_center:before {content: '\f550';}
.mi-picture_in_picture_large:before {content: '\f54f';}
.mi-picture_in_picture_medium:before {content: '\f54e';}
.mi-picture_in_picture_mobile:before {content: '\f517';}
.mi-picture_in_picture_off:before {content: '\f52f';}
.mi-picture_in_picture_small:before {content: '\f54d';}
.mi-pie_chart:before {content: '\f0da';}
.mi-pie_chart_filled:before {content: '\f0da';}
.mi-pie_chart_outline:before {content: '\f0da';}
.mi-pie_chart_outlined:before {content: '\f0da';}
.mi-pill:before {content: '\e11f';}
.mi-pill_off:before {content: '\f809';}
.mi-pin:before {content: '\f045';}
.mi-pin_drop:before {content: '\e55e';}
.mi-pin_end:before {content: '\e767';}
.mi-pin_invoke:before {content: '\e763';}
.mi-pinch:before {content: '\eb38';}
.mi-pinch_zoom_in:before {content: '\f1fa';}
.mi-pinch_zoom_out:before {content: '\f1fb';}
.mi-pip:before {content: '\f64d';}
.mi-pip_exit:before {content: '\f70d';}
.mi-pivot_table_chart:before {content: '\e9ce';}
.mi-place:before {content: '\f1db';}
.mi-place_item:before {content: '\f1f0';}
.mi-plagiarism:before {content: '\ea5a';}
.mi-planner_banner_ad_pt:before {content: '\e692';}
.mi-planner_review:before {content: '\e694';}
.mi-play_arrow:before {content: '\e037';}
.mi-play_circle:before {content: '\e1c4';}
.mi-play_disabled:before {content: '\ef6a';}
.mi-play_for_work:before {content: '\e906';}
.mi-play_lesson:before {content: '\f047';}
.mi-play_music:before {content: '\e6ee';}
.mi-play_pause:before {content: '\f137';}
.mi-play_shapes:before {content: '\f7fc';}
.mi-playing_cards:before {content: '\f5dc';}
.mi-playlist_add:before {content: '\e03b';}
.mi-playlist_add_check:before {content: '\e065';}
.mi-playlist_add_check_circle:before {content: '\e7e6';}
.mi-playlist_add_circle:before {content: '\e7e5';}
.mi-playlist_play:before {content: '\e05f';}
.mi-playlist_remove:before {content: '\eb80';}
.mi-plumbing:before {content: '\f107';}
.mi-plus_one:before {content: '\e800';}
.mi-podcasts:before {content: '\f048';}
.mi-podiatry:before {content: '\e120';}
.mi-podium:before {content: '\f7fb';}
.mi-point_of_sale:before {content: '\f17e';}
.mi-point_scan:before {content: '\f70c';}
.mi-policy:before {content: '\ea17';}
.mi-poll:before {content: '\f0cc';}
.mi-polyline:before {content: '\ebbb';}
.mi-polymer:before {content: '\e8ab';}
.mi-pool:before {content: '\eb48';}
.mi-portable_wifi_off:before {content: '\f087';}
.mi-portrait:before {content: '\e851';}
.mi-position_bottom_left:before {content: '\f70b';}
.mi-position_bottom_right:before {content: '\f70a';}
.mi-position_top_right:before {content: '\f709';}
.mi-post:before {content: '\e705';}
.mi-post_add:before {content: '\ea20';}
.mi-potted_plant:before {content: '\f8aa';}
.mi-power:before {content: '\e63c';}
.mi-power_input:before {content: '\e336';}
.mi-power_off:before {content: '\e646';}
.mi-power_rounded:before {content: '\f8c7';}
.mi-power_settings_new:before {content: '\f8c7';}
.mi-prayer_times:before {content: '\f838';}
.mi-precision_manufacturing:before {content: '\f049';}
.mi-pregnancy:before {content: '\f5f1';}
.mi-pregnant_woman:before {content: '\f5f1';}
.mi-preliminary:before {content: '\e7d8';}
.mi-prescriptions:before {content: '\e121';}
.mi-present_to_all:before {content: '\e0df';}
.mi-preview:before {content: '\f1c5';}
.mi-preview_off:before {content: '\f7af';}
.mi-price_change:before {content: '\f04a';}
.mi-price_check:before {content: '\f04b';}
.mi-print:before {content: '\e8ad';}
.mi-print_add:before {content: '\f7a2';}
.mi-print_connect:before {content: '\f7a1';}
.mi-print_disabled:before {content: '\e9cf';}
.mi-print_error:before {content: '\f7a0';}
.mi-print_lock:before {content: '\f651';}
.mi-priority:before {content: '\e19f';}
.mi-priority_high:before {content: '\e645';}
.mi-privacy:before {content: '\f148';}
.mi-privacy_tip:before {content: '\f0dc';}
.mi-private_connectivity:before {content: '\e744';}
.mi-problem:before {content: '\e122';}
.mi-procedure:before {content: '\e651';}
.mi-process_chart:before {content: '\f855';}
.mi-production_quantity_limits:before {content: '\e1d1';}
.mi-productivity:before {content: '\e296';}
.mi-progress_activity:before {content: '\e9d0';}
.mi-prompt_suggestion:before {content: '\f4f6';}
.mi-propane:before {content: '\ec14';}
.mi-propane_tank:before {content: '\ec13';}
.mi-psychiatry:before {content: '\e123';}
.mi-psychology:before {content: '\ea4a';}
.mi-psychology_alt:before {content: '\f8ea';}
.mi-public:before {content: '\e80b';}
.mi-public_off:before {content: '\f1ca';}
.mi-publish:before {content: '\e255';}
.mi-published_with_changes:before {content: '\f232';}
.mi-pulmonology:before {content: '\e124';}
.mi-pulse_alert:before {content: '\f501';}
.mi-punch_clock:before {content: '\eaa8';}
.mi-push_pin:before {content: '\f10d';}
.mi-qr_code:before {content: '\ef6b';}
.mi-qr_code_2:before {content: '\e00a';}
.mi-qr_code_2_add:before {content: '\f658';}
.mi-qr_code_scanner:before {content: '\f206';}
.mi-query_builder:before {content: '\efd6';}
.mi-query_stats:before {content: '\e4fc';}
.mi-question_answer:before {content: '\e8af';}
.mi-question_exchange:before {content: '\f7f3';}
.mi-question_mark:before {content: '\eb8b';}
.mi-queue:before {content: '\e03c';}
.mi-queue_music:before {content: '\e03d';}
.mi-queue_play_next:before {content: '\e066';}
.mi-quick_phrases:before {content: '\e7d1';}
.mi-quick_reference:before {content: '\e46e';}
.mi-quick_reference_all:before {content: '\f801';}
.mi-quick_reorder:before {content: '\eb15';}
.mi-quickreply:before {content: '\ef6c';}
.mi-quiet_time:before {content: '\e1f9';}
.mi-quiet_time_active:before {content: '\e291';}
.mi-quiz:before {content: '\f04c';}
.mi-r_mobiledata:before {content: '\f04d';}
.mi-radar:before {content: '\f04e';}
.mi-radio:before {content: '\e03e';}
.mi-radio_button_checked:before {content: '\e837';}
.mi-radio_button_partial:before {content: '\f560';}
.mi-radio_button_unchecked:before {content: '\e836';}
.mi-radiology:before {content: '\e125';}
.mi-railway_alert:before {content: '\e9d1';}
.mi-rainy:before {content: '\f176';}
.mi-rainy_heavy:before {content: '\f61f';}
.mi-rainy_light:before {content: '\f61e';}
.mi-rainy_snow:before {content: '\f61d';}
.mi-ramen_dining:before {content: '\ea64';}
.mi-ramp_left:before {content: '\eb9c';}
.mi-ramp_right:before {content: '\eb96';}
.mi-range_hood:before {content: '\e1ea';}
.mi-rate_review:before {content: '\e560';}
.mi-raven:before {content: '\f555';}
.mi-raw_off:before {content: '\f04f';}
.mi-raw_on:before {content: '\f050';}
.mi-read_more:before {content: '\ef6d';}
.mi-readiness_score:before {content: '\f6dd';}
.mi-real_estate_agent:before {content: '\e73a';}
.mi-rear_camera:before {content: '\f6c2';}
.mi-rebase:before {content: '\f845';}
.mi-rebase_edit:before {content: '\f846';}
.mi-receipt:before {content: '\e8b0';}
.mi-receipt_long:before {content: '\ef6e';}
.mi-recent_actors:before {content: '\e03f';}
.mi-recent_patient:before {content: '\f808';}
.mi-recommend:before {content: '\e9d2';}
.mi-record_voice_over:before {content: '\e91f';}
.mi-rectangle:before {content: '\eb54';}
.mi-recycling:before {content: '\e760';}
.mi-redeem:before {content: '\e8f6';}
.mi-redo:before {content: '\e15a';}
.mi-reduce_capacity:before {content: '\f21c';}
.mi-refresh:before {content: '\e5d5';}
.mi-regular_expression:before {content: '\f750';}
.mi-relax:before {content: '\f6dc';}
.mi-release_alert:before {content: '\f654';}
.mi-remember_me:before {content: '\f051';}
.mi-reminder:before {content: '\e6c6';}
.mi-reminders_alt:before {content: '\e6c6';}
.mi-remote_gen:before {content: '\e83e';}
.mi-remove:before {content: '\e15b';}
.mi-remove_circle:before {content: '\f08f';}
.mi-remove_circle_outline:before {content: '\f08f';}
.mi-remove_done:before {content: '\e9d3';}
.mi-remove_from_queue:before {content: '\e067';}
.mi-remove_moderator:before {content: '\e9d4';}
.mi-remove_red_eye:before {content: '\e8f4';}
.mi-remove_road:before {content: '\ebfc';}
.mi-remove_selection:before {content: '\e9d5';}
.mi-remove_shopping_cart:before {content: '\e928';}
.mi-reopen_window:before {content: '\f708';}
.mi-reorder:before {content: '\e8fe';}
.mi-repartition:before {content: '\f8e8';}
.mi-repeat:before {content: '\e040';}
.mi-repeat_on:before {content: '\e9d6';}
.mi-repeat_one:before {content: '\e041';}
.mi-repeat_one_on:before {content: '\e9d7';}
.mi-replay:before {content: '\e042';}
.mi-replay_10:before {content: '\e059';}
.mi-replay_30:before {content: '\e05a';}
.mi-replay_5:before {content: '\e05b';}
.mi-replay_circle_filled:before {content: '\e9d8';}
.mi-reply:before {content: '\e15e';}
.mi-reply_all:before {content: '\e15f';}
.mi-report:before {content: '\f052';}
.mi-report_gmailerrorred:before {content: '\f052';}
.mi-report_off:before {content: '\e170';}
.mi-report_problem:before {content: '\f083';}
.mi-request_page:before {content: '\f22c';}
.mi-request_quote:before {content: '\f1b6';}
.mi-reset_image:before {content: '\f824';}
.mi-reset_tv:before {content: '\e9d9';}
.mi-reset_wrench:before {content: '\f56c';}
.mi-resize:before {content: '\f707';}
.mi-respiratory_rate:before {content: '\e127';}
.mi-responsive_layout:before {content: '\e9da';}
.mi-restart_alt:before {content: '\f053';}
.mi-restaurant:before {content: '\e56c';}
.mi-restaurant_menu:before {content: '\e561';}
.mi-restore:before {content: '\e8b3';}
.mi-restore_from_trash:before {content: '\e938';}
.mi-restore_page:before {content: '\e929';}
.mi-resume:before {content: '\f7d0';}
.mi-reviews:before {content: '\f07c';}
.mi-rewarded_ads:before {content: '\efb6';}
.mi-rheumatology:before {content: '\e128';}
.mi-rib_cage:before {content: '\f898';}
.mi-rice_bowl:before {content: '\f1f5';}
.mi-right_click:before {content: '\f706';}
.mi-right_panel_close:before {content: '\f705';}
.mi-right_panel_open:before {content: '\f704';}
.mi-ring_volume:before {content: '\f0dd';}
.mi-ring_volume_filled:before {content: '\f0dd';}
.mi-ripples:before {content: '\e9db';}
.mi-robot:before {content: '\f882';}
.mi-robot_2:before {content: '\f5d0';}
.mi-rocket:before {content: '\eba5';}
.mi-rocket_launch:before {content: '\eb9b';}
.mi-roller_shades:before {content: '\ec12';}
.mi-roller_shades_closed:before {content: '\ec11';}
.mi-roller_skating:before {content: '\ebcd';}
.mi-roofing:before {content: '\f201';}
.mi-room:before {content: '\f1db';}
.mi-room_preferences:before {content: '\f1b8';}
.mi-room_service:before {content: '\eb49';}
.mi-rotate_90_degrees_ccw:before {content: '\e418';}
.mi-rotate_90_degrees_cw:before {content: '\eaab';}
.mi-rotate_left:before {content: '\e419';}
.mi-rotate_right:before {content: '\e41a';}
.mi-roundabout_left:before {content: '\eb99';}
.mi-roundabout_right:before {content: '\eba3';}
.mi-rounded_corner:before {content: '\e920';}
.mi-route:before {content: '\eacd';}
.mi-router:before {content: '\e328';}
.mi-routine:before {content: '\e20c';}
.mi-rowing:before {content: '\e921';}
.mi-rss_feed:before {content: '\e0e5';}
.mi-rsvp:before {content: '\f055';}
.mi-rtt:before {content: '\e9ad';}
.mi-rubric:before {content: '\eb27';}
.mi-rule:before {content: '\f1c2';}
.mi-rule_folder:before {content: '\f1c9';}
.mi-rule_settings:before {content: '\f64c';}
.mi-run_circle:before {content: '\ef6f';}
.mi-running_with_errors:before {content: '\e51d';}
.mi-rv_hookup:before {content: '\e642';}
.mi-safety_check:before {content: '\ebef';}
.mi-safety_check_off:before {content: '\f59d';}
.mi-safety_divider:before {content: '\e1cc';}
.mi-sailing:before {content: '\e502';}
.mi-salinity:before {content: '\f876';}
.mi-sanitizer:before {content: '\f21d';}
.mi-satellite:before {content: '\e562';}
.mi-satellite_alt:before {content: '\eb3a';}
.mi-sauna:before {content: '\f6f7';}
.mi-save:before {content: '\e161';}
.mi-save_alt:before {content: '\f090';}
.mi-save_as:before {content: '\eb60';}
.mi-saved_search:before {content: '\ea11';}
.mi-savings:before {content: '\e2eb';}
.mi-scale:before {content: '\eb5f';}
.mi-scan:before {content: '\f74e';}
.mi-scan_delete:before {content: '\f74f';}
.mi-scanner:before {content: '\e329';}
.mi-scatter_plot:before {content: '\e268';}
.mi-scene:before {content: '\e2a7';}
.mi-schedule:before {content: '\efd6';}
.mi-schedule_send:before {content: '\ea0a';}
.mi-schema:before {content: '\e4fd';}
.mi-school:before {content: '\e80c';}
.mi-science:before {content: '\ea4b';}
.mi-science_off:before {content: '\f542';}
.mi-score:before {content: '\e269';}
.mi-scoreboard:before {content: '\ebd0';}
.mi-screen_lock_landscape:before {content: '\e1be';}
.mi-screen_lock_portrait:before {content: '\e1bf';}
.mi-screen_lock_rotation:before {content: '\e1c0';}
.mi-screen_record:before {content: '\f679';}
.mi-screen_rotation:before {content: '\e1c1';}
.mi-screen_rotation_alt:before {content: '\ebee';}
.mi-screen_rotation_up:before {content: '\f678';}
.mi-screen_search_desktop:before {content: '\ef70';}
.mi-screen_share:before {content: '\e0e2';}
.mi-screenshot:before {content: '\f056';}
.mi-screenshot_frame:before {content: '\f677';}
.mi-screenshot_keyboard:before {content: '\f7d3';}
.mi-screenshot_monitor:before {content: '\ec08';}
.mi-screenshot_region:before {content: '\f7d2';}
.mi-screenshot_tablet:before {content: '\f697';}
.mi-scrollable_header:before {content: '\e9dc';}
.mi-scuba_diving:before {content: '\ebce';}
.mi-sd:before {content: '\e9dd';}
.mi-sd_card:before {content: '\e623';}
.mi-sd_card_alert:before {content: '\f057';}
.mi-sd_storage:before {content: '\e623';}
.mi-sdk:before {content: '\e720';}
.mi-search:before {content: '\e8b6';}
.mi-search_check:before {content: '\f800';}
.mi-search_hands_free:before {content: '\e696';}
.mi-search_off:before {content: '\ea76';}
.mi-security:before {content: '\e32a';}
.mi-security_key:before {content: '\f503';}
.mi-security_update:before {content: '\f072';}
.mi-security_update_good:before {content: '\f073';}
.mi-security_update_warning:before {content: '\f074';}
.mi-segment:before {content: '\e94b';}
.mi-select:before {content: '\f74d';}
.mi-select_all:before {content: '\e162';}
.mi-select_check_box:before {content: '\f1fe';}
.mi-select_to_speak:before {content: '\f7cf';}
.mi-select_window:before {content: '\e6fa';}
.mi-select_window_off:before {content: '\e506';}
.mi-self_care:before {content: '\f86d';}
.mi-self_improvement:before {content: '\ea78';}
.mi-sell:before {content: '\f05b';}
.mi-send:before {content: '\e163';}
.mi-send_and_archive:before {content: '\ea0c';}
.mi-send_money:before {content: '\e8b7';}
.mi-send_time_extension:before {content: '\eadb';}
.mi-send_to_mobile:before {content: '\f05c';}
.mi-sensor_door:before {content: '\f1b5';}
.mi-sensor_occupied:before {content: '\ec10';}
.mi-sensor_window:before {content: '\f1b4';}
.mi-sensors:before {content: '\e51e';}
.mi-sensors_krx:before {content: '\f556';}
.mi-sensors_krx_off:before {content: '\f515';}
.mi-sensors_off:before {content: '\e51f';}
.mi-sentiment_calm:before {content: '\f6a7';}
.mi-sentiment_content:before {content: '\f6a6';}
.mi-sentiment_dissatisfied:before {content: '\e811';}
.mi-sentiment_excited:before {content: '\f6a5';}
.mi-sentiment_extremely_dissatisfied:before {content: '\f194';}
.mi-sentiment_frustrated:before {content: '\f6a4';}
.mi-sentiment_neutral:before {content: '\e812';}
.mi-sentiment_sad:before {content: '\f6a3';}
.mi-sentiment_satisfied:before {content: '\e813';}
.mi-sentiment_satisfied_alt:before {content: '\e813';}
.mi-sentiment_stressed:before {content: '\f6a2';}
.mi-sentiment_very_dissatisfied:before {content: '\e814';}
.mi-sentiment_very_satisfied:before {content: '\e815';}
.mi-sentiment_worried:before {content: '\f6a1';}
.mi-service_toolbox:before {content: '\e717';}
.mi-set_meal:before {content: '\f1ea';}
.mi-settings:before {content: '\e8b8';}
.mi-settings_accessibility:before {content: '\f05d';}
.mi-settings_account_box:before {content: '\f835';}
.mi-settings_alert:before {content: '\f143';}
.mi-settings_applications:before {content: '\e8b9';}
.mi-settings_b_roll:before {content: '\f625';}
.mi-settings_backup_restore:before {content: '\e8ba';}
.mi-settings_bluetooth:before {content: '\e8bb';}
.mi-settings_brightness:before {content: '\e8bd';}
.mi-settings_cell:before {content: '\e8bc';}
.mi-settings_cinematic_blur:before {content: '\f624';}
.mi-settings_ethernet:before {content: '\e8be';}
.mi-settings_heart:before {content: '\f522';}
.mi-settings_input_antenna:before {content: '\e8bf';}
.mi-settings_input_component:before {content: '\e8c1';}
.mi-settings_input_composite:before {content: '\e8c1';}
.mi-settings_input_hdmi:before {content: '\e8c2';}
.mi-settings_input_svideo:before {content: '\e8c3';}
.mi-settings_motion_mode:before {content: '\f833';}
.mi-settings_night_sight:before {content: '\f832';}
.mi-settings_overscan:before {content: '\e8c4';}
.mi-settings_panorama:before {content: '\f831';}
.mi-settings_phone:before {content: '\e8c5';}
.mi-settings_photo_camera:before {content: '\f834';}
.mi-settings_power:before {content: '\e8c6';}
.mi-settings_remote:before {content: '\e8c7';}
.mi-settings_slow_motion:before {content: '\f623';}
.mi-settings_suggest:before {content: '\f05e';}
.mi-settings_system_daydream:before {content: '\e1c3';}
.mi-settings_timelapse:before {content: '\f622';}
.mi-settings_video_camera:before {content: '\f621';}
.mi-settings_voice:before {content: '\e8c8';}
.mi-settop_component:before {content: '\e2ac';}
.mi-severe_cold:before {content: '\ebd3';}
.mi-shadow:before {content: '\e9df';}
.mi-shadow_add:before {content: '\f584';}
.mi-shadow_minus:before {content: '\f583';}
.mi-shape_line:before {content: '\f8d3';}
.mi-shape_recognition:before {content: '\eb01';}
.mi-shapes:before {content: '\e602';}
.mi-share:before {content: '\e80d';}
.mi-share_location:before {content: '\f05f';}
.mi-share_off:before {content: '\f6cb';}
.mi-share_reviews:before {content: '\f8a4';}
.mi-share_windows:before {content: '\f613';}
.mi-sheets_rtl:before {content: '\f823';}
.mi-shelf_auto_hide:before {content: '\f703';}
.mi-shelf_position:before {content: '\f702';}
.mi-shelves:before {content: '\f86e';}
.mi-shield:before {content: '\e9e0';}
.mi-shield_lock:before {content: '\f686';}
.mi-shield_locked:before {content: '\f592';}
.mi-shield_moon:before {content: '\eaa9';}
.mi-shield_person:before {content: '\f650';}
.mi-shield_question:before {content: '\f529';}
.mi-shield_with_heart:before {content: '\e78f';}
.mi-shield_with_house:before {content: '\e78d';}
.mi-shift:before {content: '\e5f2';}
.mi-shift_lock:before {content: '\f7ae';}
.mi-shop:before {content: '\e8c9';}
.mi-shop_2:before {content: '\e8ca';}
.mi-shop_two:before {content: '\e8ca';}
.mi-shopping_bag:before {content: '\f1cc';}
.mi-shopping_basket:before {content: '\e8cb';}
.mi-shopping_cart:before {content: '\e8cc';}
.mi-shopping_cart_checkout:before {content: '\eb88';}
.mi-shopping_cart_off:before {content: '\f4f7';}
.mi-shoppingmode:before {content: '\efb7';}
.mi-short_stay:before {content: '\e4d0';}
.mi-short_text:before {content: '\e261';}
.mi-shortcut:before {content: '\f57a';}
.mi-show_chart:before {content: '\e6e1';}
.mi-shower:before {content: '\f061';}
.mi-shuffle:before {content: '\e043';}
.mi-shuffle_on:before {content: '\e9e1';}
.mi-shutter_speed:before {content: '\e43d';}
.mi-shutter_speed_add:before {content: '\f57e';}
.mi-shutter_speed_minus:before {content: '\f57d';}
.mi-sick:before {content: '\f220';}
.mi-side_navigation:before {content: '\e9e2';}
.mi-sign_language:before {content: '\ebe5';}
.mi-signal_cellular_0_bar:before {content: '\f0a8';}
.mi-signal_cellular_1_bar:before {content: '\f0a9';}
.mi-signal_cellular_2_bar:before {content: '\f0aa';}
.mi-signal_cellular_3_bar:before {content: '\f0ab';}
.mi-signal_cellular_4_bar:before {content: '\e1c8';}
.mi-signal_cellular_add:before {content: '\f7a9';}
.mi-signal_cellular_alt:before {content: '\e202';}
.mi-signal_cellular_alt_1_bar:before {content: '\ebdf';}
.mi-signal_cellular_alt_2_bar:before {content: '\ebe3';}
.mi-signal_cellular_connected_no_internet_0_bar:before {content: '\f0ac';}
.mi-signal_cellular_connected_no_internet_4_bar:before {content: '\e1cd';}
.mi-signal_cellular_no_sim:before {content: '\e1ce';}
.mi-signal_cellular_nodata:before {content: '\f062';}
.mi-signal_cellular_null:before {content: '\e1cf';}
.mi-signal_cellular_off:before {content: '\e1d0';}
.mi-signal_cellular_pause:before {content: '\f5a7';}
.mi-signal_disconnected:before {content: '\f239';}
.mi-signal_wifi_0_bar:before {content: '\f0b0';}
.mi-signal_wifi_4_bar:before {content: '\f065';}
.mi-signal_wifi_4_bar_lock:before {content: '\e1e1';}
.mi-signal_wifi_bad:before {content: '\f064';}
.mi-signal_wifi_connected_no_internet_4:before {content: '\f064';}
.mi-signal_wifi_off:before {content: '\e1da';}
.mi-signal_wifi_statusbar_4_bar:before {content: '\f065';}
.mi-signal_wifi_statusbar_not_connected:before {content: '\f0ef';}
.mi-signal_wifi_statusbar_null:before {content: '\f067';}
.mi-signature:before {content: '\f74c';}
.mi-signpost:before {content: '\eb91';}
.mi-sim_card:before {content: '\e32b';}
.mi-sim_card_alert:before {content: '\f057';}
.mi-sim_card_download:before {content: '\f068';}
.mi-single_bed:before {content: '\ea48';}
.mi-sip:before {content: '\f069';}
.mi-skateboarding:before {content: '\e511';}
.mi-skeleton:before {content: '\f899';}
.mi-skillet:before {content: '\f543';}
.mi-skillet_cooktop:before {content: '\f544';}
.mi-skip_next:before {content: '\e044';}
.mi-skip_previous:before {content: '\e045';}
.mi-skull:before {content: '\f89a';}
.mi-sledding:before {content: '\e512';}
.mi-sleep:before {content: '\e213';}
.mi-sleep_score:before {content: '\f6b7';}
.mi-slide_library:before {content: '\f822';}
.mi-sliders:before {content: '\e9e3';}
.mi-slideshow:before {content: '\e41b';}
.mi-slow_motion_video:before {content: '\e068';}
.mi-smart_button:before {content: '\f1c1';}
.mi-smart_display:before {content: '\f06a';}
.mi-smart_outlet:before {content: '\e844';}
.mi-smart_screen:before {content: '\f06b';}
.mi-smart_toy:before {content: '\f06c';}
.mi-smartphone:before {content: '\e32c';}
.mi-smb_share:before {content: '\f74b';}
.mi-smoke_free:before {content: '\eb4a';}
.mi-smoking_rooms:before {content: '\eb4b';}
.mi-sms:before {content: '\e625';}
.mi-sms_failed:before {content: '\e87f';}
.mi-snippet_folder:before {content: '\f1c7';}
.mi-snooze:before {content: '\e046';}
.mi-snowboarding:before {content: '\e513';}
.mi-snowing:before {content: '\e80f';}
.mi-snowing_heavy:before {content: '\f61c';}
.mi-snowmobile:before {content: '\e503';}
.mi-snowshoeing:before {content: '\e514';}
.mi-soap:before {content: '\f1b2';}
.mi-social_distance:before {content: '\e1cb';}
.mi-social_leaderboard:before {content: '\f6a0';}
.mi-solar_power:before {content: '\ec0f';}
.mi-sort:before {content: '\e164';}
.mi-sort_by_alpha:before {content: '\e053';}
.mi-sos:before {content: '\ebf7';}
.mi-sound_detection_dog_barking:before {content: '\f149';}
.mi-sound_detection_glass_break:before {content: '\f14a';}
.mi-sound_detection_loud_sound:before {content: '\f14b';}
.mi-sound_sampler:before {content: '\f6b4';}
.mi-soup_kitchen:before {content: '\e7d3';}
.mi-source:before {content: '\f1c8';}
.mi-source_environment:before {content: '\e527';}
.mi-source_notes:before {content: '\e12d';}
.mi-south:before {content: '\f1e3';}
.mi-south_america:before {content: '\e7e4';}
.mi-south_east:before {content: '\f1e4';}
.mi-south_west:before {content: '\f1e5';}
.mi-spa:before {content: '\eb4c';}
.mi-space_bar:before {content: '\e256';}
.mi-space_dashboard:before {content: '\e66b';}
.mi-spatial_audio:before {content: '\ebeb';}
.mi-spatial_audio_off:before {content: '\ebe8';}
.mi-spatial_tracking:before {content: '\ebea';}
.mi-speaker:before {content: '\e32d';}
.mi-speaker_group:before {content: '\e32e';}
.mi-speaker_notes:before {content: '\e8cd';}
.mi-speaker_notes_off:before {content: '\e92a';}
.mi-speaker_phone:before {content: '\e0d2';}
.mi-special_character:before {content: '\f74a';}
.mi-specific_gravity:before {content: '\f872';}
.mi-speech_to_text:before {content: '\f8a7';}
.mi-speed:before {content: '\e9e4';}
.mi-speed_0_5:before {content: '\f4e2';}
.mi-speed_1_2:before {content: '\f4e1';}
.mi-speed_1_5:before {content: '\f4e0';}
.mi-speed_2x:before {content: '\f4eb';}
.mi-spellcheck:before {content: '\e8ce';}
.mi-splitscreen:before {content: '\f06d';}
.mi-splitscreen_add:before {content: '\f4fd';}
.mi-splitscreen_bottom:before {content: '\f676';}
.mi-splitscreen_left:before {content: '\f675';}
.mi-splitscreen_right:before {content: '\f674';}
.mi-splitscreen_top:before {content: '\f673';}
.mi-splitscreen_vertical_add:before {content: '\f4fc';}
.mi-spo2:before {content: '\f6db';}
.mi-spoke:before {content: '\e9a7';}
.mi-sports:before {content: '\ea30';}
.mi-sports_and_outdoors:before {content: '\efb8';}
.mi-sports_bar:before {content: '\f1f3';}
.mi-sports_baseball:before {content: '\ea51';}
.mi-sports_basketball:before {content: '\ea26';}
.mi-sports_cricket:before {content: '\ea27';}
.mi-sports_esports:before {content: '\ea28';}
.mi-sports_football:before {content: '\ea29';}
.mi-sports_golf:before {content: '\ea2a';}
.mi-sports_gymnastics:before {content: '\ebc4';}
.mi-sports_handball:before {content: '\ea33';}
.mi-sports_hockey:before {content: '\ea2b';}
.mi-sports_kabaddi:before {content: '\ea34';}
.mi-sports_martial_arts:before {content: '\eae9';}
.mi-sports_mma:before {content: '\ea2c';}
.mi-sports_motorsports:before {content: '\ea2d';}
.mi-sports_rugby:before {content: '\ea2e';}
.mi-sports_score:before {content: '\f06e';}
.mi-sports_soccer:before {content: '\ea2f';}
.mi-sports_tennis:before {content: '\ea32';}
.mi-sports_volleyball:before {content: '\ea31';}
.mi-sprinkler:before {content: '\e29a';}
.mi-sprint:before {content: '\f81f';}
.mi-square:before {content: '\eb36';}
.mi-square_foot:before {content: '\ea49';}
.mi-ssid_chart:before {content: '\eb66';}
.mi-stack:before {content: '\f609';}
.mi-stack_off:before {content: '\f608';}
.mi-stack_star:before {content: '\f607';}
.mi-stacked_bar_chart:before {content: '\e9e6';}
.mi-stacked_email:before {content: '\e6c7';}
.mi-stacked_inbox:before {content: '\e6c9';}
.mi-stacked_line_chart:before {content: '\f22b';}
.mi-stacks:before {content: '\f500';}
.mi-stadia_controller:before {content: '\f135';}
.mi-stadium:before {content: '\eb90';}
.mi-stairs:before {content: '\f1a9';}
.mi-star:before {content: '\f09a';}
.mi-star_border:before {content: '\f09a';}
.mi-star_border_purple500:before {content: '\f09a';}
.mi-star_half:before {content: '\e839';}
.mi-star_outline:before {content: '\f09a';}
.mi-star_purple500:before {content: '\f09a';}
.mi-star_rate:before {content: '\f0ec';}
.mi-star_rate_half:before {content: '\ec45';}
.mi-stars:before {content: '\e8d0';}
.mi-start:before {content: '\e089';}
.mi-stat_0:before {content: '\e697';}
.mi-stat_1:before {content: '\e698';}
.mi-stat_2:before {content: '\e699';}
.mi-stat_3:before {content: '\e69a';}
.mi-stat_minus_1:before {content: '\e69b';}
.mi-stat_minus_2:before {content: '\e69c';}
.mi-stat_minus_3:before {content: '\e69d';}
.mi-stay_current_landscape:before {content: '\e0d3';}
.mi-stay_current_portrait:before {content: '\e0d4';}
.mi-stay_primary_landscape:before {content: '\e0d5';}
.mi-stay_primary_portrait:before {content: '\e0d6';}
.mi-step:before {content: '\f6fe';}
.mi-step_into:before {content: '\f701';}
.mi-step_out:before {content: '\f700';}
.mi-step_over:before {content: '\f6ff';}
.mi-steppers:before {content: '\e9e7';}
.mi-steps:before {content: '\f6da';}
.mi-stethoscope:before {content: '\f805';}
.mi-stethoscope_arrow:before {content: '\f807';}
.mi-stethoscope_check:before {content: '\f806';}
.mi-sticky_note:before {content: '\e9e8';}
.mi-sticky_note_2:before {content: '\f1fc';}
.mi-stock_media:before {content: '\f570';}
.mi-stockpot:before {content: '\f545';}
.mi-stop:before {content: '\e047';}
.mi-stop_circle:before {content: '\ef71';}
.mi-stop_screen_share:before {content: '\e0e3';}
.mi-storage:before {content: '\e1db';}
.mi-store:before {content: '\e8d1';}
.mi-store_mall_directory:before {content: '\e8d1';}
.mi-storefront:before {content: '\ea12';}
.mi-storm:before {content: '\f070';}
.mi-straight:before {content: '\eb95';}
.mi-straighten:before {content: '\e41c';}
.mi-strategy:before {content: '\f5df';}
.mi-stream:before {content: '\e9e9';}
.mi-stream_apps:before {content: '\f79f';}
.mi-streetview:before {content: '\e56e';}
.mi-stress_management:before {content: '\f6d9';}
.mi-strikethrough_s:before {content: '\e257';}
.mi-stroke_full:before {content: '\f749';}
.mi-stroke_partial:before {content: '\f748';}
.mi-stroller:before {content: '\f1ae';}
.mi-style:before {content: '\e41d';}
.mi-styler:before {content: '\e273';}
.mi-stylus:before {content: '\f604';}
.mi-stylus_laser_pointer:before {content: '\f747';}
.mi-stylus_note:before {content: '\f603';}
.mi-subdirectory_arrow_left:before {content: '\e5d9';}
.mi-subdirectory_arrow_right:before {content: '\e5da';}
.mi-subheader:before {content: '\e9ea';}
.mi-subject:before {content: '\e8d2';}
.mi-subscript:before {content: '\f111';}
.mi-subscriptions:before {content: '\e064';}
.mi-subtitles:before {content: '\e048';}
.mi-subtitles_off:before {content: '\ef72';}
.mi-subway:before {content: '\e56f';}
.mi-summarize:before {content: '\f071';}
.mi-sunny:before {content: '\e81a';}
.mi-sunny_snowing:before {content: '\e819';}
.mi-superscript:before {content: '\f112';}
.mi-supervised_user_circle:before {content: '\e939';}
.mi-supervised_user_circle_off:before {content: '\f60e';}
.mi-supervisor_account:before {content: '\e8d3';}
.mi-support:before {content: '\ef73';}
.mi-support_agent:before {content: '\f0e2';}
.mi-surfing:before {content: '\e515';}
.mi-surgical:before {content: '\e131';}
.mi-surround_sound:before {content: '\e049';}
.mi-swap_calls:before {content: '\e0d7';}
.mi-swap_driving_apps:before {content: '\e69e';}
.mi-swap_driving_apps_wheel:before {content: '\e69f';}
.mi-swap_horiz:before {content: '\e8d4';}
.mi-swap_horizontal_circle:before {content: '\e933';}
.mi-swap_vert:before {content: '\e8d5';}
.mi-swap_vertical_circle:before {content: '\e8d6';}
.mi-sweep:before {content: '\e6ac';}
.mi-swipe:before {content: '\e9ec';}
.mi-swipe_down:before {content: '\eb53';}
.mi-swipe_down_alt:before {content: '\eb30';}
.mi-swipe_left:before {content: '\eb59';}
.mi-swipe_left_alt:before {content: '\eb33';}
.mi-swipe_right:before {content: '\eb52';}
.mi-swipe_right_alt:before {content: '\eb56';}
.mi-swipe_up:before {content: '\eb2e';}
.mi-swipe_up_alt:before {content: '\eb35';}
.mi-swipe_vertical:before {content: '\eb51';}
.mi-switch:before {content: '\e1f4';}
.mi-switch_access:before {content: '\f6fd';}
.mi-switch_access_2:before {content: '\f506';}
.mi-switch_access_shortcut:before {content: '\e7e1';}
.mi-switch_access_shortcut_add:before {content: '\e7e2';}
.mi-switch_account:before {content: '\e9ed';}
.mi-switch_camera:before {content: '\e41e';}
.mi-switch_left:before {content: '\f1d1';}
.mi-switch_right:before {content: '\f1d2';}
.mi-switch_video:before {content: '\e41f';}
.mi-switches:before {content: '\e733';}
.mi-sword_rose:before {content: '\f5de';}
.mi-swords:before {content: '\f889';}
.mi-symptoms:before {content: '\e132';}
.mi-synagogue:before {content: '\eab0';}
.mi-sync:before {content: '\e627';}
.mi-sync_alt:before {content: '\ea18';}
.mi-sync_disabled:before {content: '\e628';}
.mi-sync_lock:before {content: '\eaee';}
.mi-sync_problem:before {content: '\e629';}
.mi-sync_saved_locally:before {content: '\f820';}
.mi-syringe:before {content: '\e133';}
.mi-system_security_update:before {content: '\f072';}
.mi-system_security_update_good:before {content: '\f073';}
.mi-system_security_update_warning:before {content: '\f074';}
.mi-system_update:before {content: '\f072';}
.mi-system_update_alt:before {content: '\e8d7';}
.mi-tab:before {content: '\e8d8';}
.mi-tab_close:before {content: '\f745';}
.mi-tab_close_right:before {content: '\f746';}
.mi-tab_duplicate:before {content: '\f744';}
.mi-tab_group:before {content: '\f743';}
.mi-tab_move:before {content: '\f742';}
.mi-tab_new_right:before {content: '\f741';}
.mi-tab_recent:before {content: '\f740';}
.mi-tab_unselected:before {content: '\e8d9';}
.mi-table:before {content: '\f191';}
.mi-table_bar:before {content: '\ead2';}
.mi-table_chart:before {content: '\e265';}
.mi-table_chart_view:before {content: '\f6ef';}
.mi-table_lamp:before {content: '\e1f2';}
.mi-table_restaurant:before {content: '\eac6';}
.mi-table_rows:before {content: '\f101';}
.mi-table_rows_narrow:before {content: '\f73f';}
.mi-table_view:before {content: '\f1be';}
.mi-tablet:before {content: '\e32f';}
.mi-tablet_android:before {content: '\e330';}
.mi-tablet_mac:before {content: '\e331';}
.mi-tabs:before {content: '\e9ee';}
.mi-tactic:before {content: '\f564';}
.mi-tag:before {content: '\e9ef';}
.mi-tag_faces:before {content: '\ea22';}
.mi-takeout_dining:before {content: '\ea74';}
.mi-tamper_detection_off:before {content: '\e82e';}
.mi-tamper_detection_on:before {content: '\f8c8';}
.mi-tap_and_play:before {content: '\e62b';}
.mi-tapas:before {content: '\f1e9';}
.mi-target:before {content: '\e719';}
.mi-task:before {content: '\f075';}
.mi-task_alt:before {content: '\e2e6';}
.mi-taunt:before {content: '\f69f';}
.mi-taxi_alert:before {content: '\ef74';}
.mi-team_dashboard:before {content: '\e013';}
.mi-temp_preferences_custom:before {content: '\f8c9';}
.mi-temp_preferences_eco:before {content: '\f8ca';}
.mi-temple_buddhist:before {content: '\eab3';}
.mi-temple_hindu:before {content: '\eaaf';}
.mi-tenancy:before {content: '\f0e3';}
.mi-terminal:before {content: '\eb8e';}
.mi-terrain:before {content: '\e564';}
.mi-text_ad:before {content: '\e728';}
.mi-text_decrease:before {content: '\eadd';}
.mi-text_fields:before {content: '\e262';}
.mi-text_fields_alt:before {content: '\e9f1';}
.mi-text_format:before {content: '\e165';}
.mi-text_increase:before {content: '\eae2';}
.mi-text_rotate_up:before {content: '\e93a';}
.mi-text_rotate_vertical:before {content: '\e93b';}
.mi-text_rotation_angledown:before {content: '\e93c';}
.mi-text_rotation_angleup:before {content: '\e93d';}
.mi-text_rotation_down:before {content: '\e93e';}
.mi-text_rotation_none:before {content: '\e93f';}
.mi-text_select_end:before {content: '\f73e';}
.mi-text_select_jump_to_beginning:before {content: '\f73d';}
.mi-text_select_jump_to_end:before {content: '\f73c';}
.mi-text_select_move_back_character:before {content: '\f73b';}
.mi-text_select_move_back_word:before {content: '\f73a';}
.mi-text_select_move_down:before {content: '\f739';}
.mi-text_select_move_forward_character:before {content: '\f738';}
.mi-text_select_move_forward_word:before {content: '\f737';}
.mi-text_select_move_up:before {content: '\f736';}
.mi-text_select_start:before {content: '\f735';}
.mi-text_snippet:before {content: '\f1c6';}
.mi-text_to_speech:before {content: '\f1bc';}
.mi-textsms:before {content: '\e625';}
.mi-texture:before {content: '\e421';}
.mi-texture_add:before {content: '\f57c';}
.mi-texture_minus:before {content: '\f57b';}
.mi-theater_comedy:before {content: '\ea66';}
.mi-theaters:before {content: '\e8da';}
.mi-thermometer:before {content: '\e846';}
.mi-thermometer_add:before {content: '\f582';}
.mi-thermometer_gain:before {content: '\f6d8';}
.mi-thermometer_loss:before {content: '\f6d7';}
.mi-thermometer_minus:before {content: '\f581';}
.mi-thermostat:before {content: '\f076';}
.mi-thermostat_auto:before {content: '\f077';}
.mi-thermostat_carbon:before {content: '\f178';}
.mi-things_to_do:before {content: '\eb2a';}
.mi-thread_unread:before {content: '\f4f9';}
.mi-thumb_down:before {content: '\f578';}
.mi-thumb_down_alt:before {content: '\f578';}
.mi-thumb_down_filled:before {content: '\f578';}
.mi-thumb_down_off:before {content: '\f578';}
.mi-thumb_down_off_alt:before {content: '\f578';}
.mi-thumb_up:before {content: '\f577';}
.mi-thumb_up_alt:before {content: '\f577';}
.mi-thumb_up_filled:before {content: '\f577';}
.mi-thumb_up_off:before {content: '\f577';}
.mi-thumb_up_off_alt:before {content: '\f577';}
.mi-thumbnail_bar:before {content: '\f734';}
.mi-thumbs_up_down:before {content: '\e8dd';}
.mi-thunderstorm:before {content: '\ebdb';}
.mi-tibia:before {content: '\f89b';}
.mi-tibia_alt:before {content: '\f89c';}
.mi-time_auto:before {content: '\f0e4';}
.mi-time_to_leave:before {content: '\eff7';}
.mi-timelapse:before {content: '\e422';}
.mi-timeline:before {content: '\e922';}
.mi-timer:before {content: '\e425';}
.mi-timer_10:before {content: '\e423';}
.mi-timer_10_alt_1:before {content: '\efbf';}
.mi-timer_10_select:before {content: '\f07a';}
.mi-timer_3:before {content: '\e424';}
.mi-timer_3_alt_1:before {content: '\efc0';}
.mi-timer_3_select:before {content: '\f07b';}
.mi-timer_off:before {content: '\e426';}
.mi-tips_and_updates:before {content: '\e79a';}
.mi-tire_repair:before {content: '\ebc8';}
.mi-title:before {content: '\e264';}
.mi-toast:before {content: '\efc1';}
.mi-toc:before {content: '\e8de';}
.mi-today:before {content: '\e8df';}
.mi-toggle_off:before {content: '\e9f5';}
.mi-toggle_on:before {content: '\e9f6';}
.mi-token:before {content: '\ea25';}
.mi-toll:before {content: '\e8e0';}
.mi-tonality:before {content: '\e427';}
.mi-toolbar:before {content: '\e9f7';}
.mi-tools_flat_head:before {content: '\f8cb';}
.mi-tools_installation_kit:before {content: '\e2ab';}
.mi-tools_ladder:before {content: '\e2cb';}
.mi-tools_level:before {content: '\e77b';}
.mi-tools_phillips:before {content: '\f8cc';}
.mi-tools_pliers_wire_stripper:before {content: '\e2aa';}
.mi-tools_power_drill:before {content: '\e1e9';}
.mi-tools_wrench:before {content: '\f8cd';}
.mi-tooltip:before {content: '\e9f8';}
.mi-top_panel_close:before {content: '\f733';}
.mi-top_panel_open:before {content: '\f732';}
.mi-topic:before {content: '\f1c8';}
.mi-tornado:before {content: '\e199';}
.mi-total_dissolved_solids:before {content: '\f877';}
.mi-touch_app:before {content: '\e913';}
.mi-touchpad_mouse:before {content: '\f687';}
.mi-touchpad_mouse_off:before {content: '\f4e6';}
.mi-tour:before {content: '\ef75';}
.mi-toys:before {content: '\e332';}
.mi-toys_and_games:before {content: '\efc2';}
.mi-toys_fan:before {content: '\f887';}
.mi-track_changes:before {content: '\e8e1';}
.mi-traffic:before {content: '\e565';}
.mi-trail_length:before {content: '\eb5e';}
.mi-trail_length_medium:before {content: '\eb63';}
.mi-trail_length_short:before {content: '\eb6d';}
.mi-train:before {content: '\e570';}
.mi-tram:before {content: '\e571';}
.mi-transcribe:before {content: '\f8ec';}
.mi-transfer_within_a_station:before {content: '\e572';}
.mi-transform:before {content: '\e428';}
.mi-transgender:before {content: '\e58d';}
.mi-transit_enterexit:before {content: '\e579';}
.mi-transition_chop:before {content: '\f50e';}
.mi-transition_dissolve:before {content: '\f50d';}
.mi-transition_fade:before {content: '\f50c';}
.mi-transition_push:before {content: '\f50b';}
.mi-transition_slide:before {content: '\f50a';}
.mi-translate:before {content: '\e8e2';}
.mi-transportation:before {content: '\e21d';}
.mi-travel:before {content: '\ef93';}
.mi-travel_explore:before {content: '\e2db';}
.mi-travel_luggage_and_bags:before {content: '\efc3';}
.mi-trending_down:before {content: '\e8e3';}
.mi-trending_flat:before {content: '\e8e4';}
.mi-trending_up:before {content: '\e8e5';}
.mi-trip:before {content: '\e6fb';}
.mi-trip_origin:before {content: '\e57b';}
.mi-trolley:before {content: '\f86b';}
.mi-trophy:before {content: '\ea23';}
.mi-troubleshoot:before {content: '\e1d2';}
.mi-try:before {content: '\f07c';}
.mi-tsunami:before {content: '\ebd8';}
.mi-tsv:before {content: '\e6d6';}
.mi-tty:before {content: '\f1aa';}
.mi-tune:before {content: '\e429';}
.mi-tungsten:before {content: '\f07d';}
.mi-turn_left:before {content: '\eba6';}
.mi-turn_right:before {content: '\ebab';}
.mi-turn_sharp_left:before {content: '\eba7';}
.mi-turn_sharp_right:before {content: '\ebaa';}
.mi-turn_slight_left:before {content: '\eba4';}
.mi-turn_slight_right:before {content: '\eb9a';}
.mi-turned_in:before {content: '\e8e7';}
.mi-turned_in_not:before {content: '\e8e7';}
.mi-tv:before {content: '\e63b';}
.mi-tv_gen:before {content: '\e830';}
.mi-tv_guide:before {content: '\e1dc';}
.mi-tv_off:before {content: '\e647';}
.mi-tv_options_edit_channels:before {content: '\e1dd';}
.mi-tv_options_input_settings:before {content: '\e1de';}
.mi-tv_remote:before {content: '\f5d9';}
.mi-tv_signin:before {content: '\e71b';}
.mi-tv_with_assistant:before {content: '\e785';}
.mi-two_pager:before {content: '\f51f';}
.mi-two_wheeler:before {content: '\e9f9';}
.mi-type_specimen:before {content: '\f8f0';}
.mi-u_turn_left:before {content: '\eba1';}
.mi-u_turn_right:before {content: '\eba2';}
.mi-ulna_radius:before {content: '\f89d';}
.mi-ulna_radius_alt:before {content: '\f89e';}
.mi-umbrella:before {content: '\f1ad';}
.mi-unarchive:before {content: '\e169';}
.mi-undo:before {content: '\e166';}
.mi-unfold_less:before {content: '\e5d6';}
.mi-unfold_less_double:before {content: '\f8cf';}
.mi-unfold_more:before {content: '\e5d7';}
.mi-unfold_more_double:before {content: '\f8d0';}
.mi-ungroup:before {content: '\f731';}
.mi-universal_currency:before {content: '\e9fa';}
.mi-universal_currency_alt:before {content: '\e734';}
.mi-universal_local:before {content: '\e9fb';}
.mi-unknown_2:before {content: '\e6a2';}
.mi-unknown_5:before {content: '\e6a5';}
.mi-unknown_document:before {content: '\f804';}
.mi-unknown_med:before {content: '\eabd';}
.mi-unlicense:before {content: '\eb05';}
.mi-unpublished:before {content: '\f236';}
.mi-unsubscribe:before {content: '\e0eb';}
.mi-upcoming:before {content: '\f07e';}
.mi-update:before {content: '\e923';}
.mi-update_disabled:before {content: '\e075';}
.mi-upgrade:before {content: '\f0fb';}
.mi-upload:before {content: '\f09b';}
.mi-upload_2:before {content: '\f521';}
.mi-upload_file:before {content: '\e9fc';}
.mi-urology:before {content: '\e137';}
.mi-usb:before {content: '\e1e0';}
.mi-usb_off:before {content: '\e4fa';}
.mi-user_attributes:before {content: '\e708';}
.mi-vaccines:before {content: '\e138';}
.mi-vacuum:before {content: '\efc5';}
.mi-valve:before {content: '\e224';}
.mi-vape_free:before {content: '\ebc6';}
.mi-vaping_rooms:before {content: '\ebcf';}
.mi-variable_add:before {content: '\f51e';}
.mi-variable_insert:before {content: '\f51d';}
.mi-variable_remove:before {content: '\f51c';}
.mi-variables:before {content: '\f851';}
.mi-ventilator:before {content: '\e139';}
.mi-verified:before {content: '\ef76';}
.mi-verified_user:before {content: '\f013';}
.mi-vertical_align_bottom:before {content: '\e258';}
.mi-vertical_align_center:before {content: '\e259';}
.mi-vertical_align_top:before {content: '\e25a';}
.mi-vertical_distribute:before {content: '\e076';}
.mi-vertical_shades:before {content: '\ec0e';}
.mi-vertical_shades_closed:before {content: '\ec0d';}
.mi-vertical_split:before {content: '\e949';}
.mi-vibration:before {content: '\e62d';}
.mi-video_call:before {content: '\e070';}
.mi-video_camera_back:before {content: '\f07f';}
.mi-video_camera_front:before {content: '\f080';}
.mi-video_camera_front_off:before {content: '\f83b';}
.mi-video_chat:before {content: '\f8a0';}
.mi-video_file:before {content: '\eb87';}
.mi-video_label:before {content: '\e071';}
.mi-video_library:before {content: '\e04a';}
.mi-video_search:before {content: '\efc6';}
.mi-video_settings:before {content: '\ea75';}
.mi-video_stable:before {content: '\f081';}
.mi-videocam:before {content: '\e04b';}
.mi-videocam_off:before {content: '\e04c';}
.mi-videogame_asset:before {content: '\e338';}
.mi-videogame_asset_off:before {content: '\e500';}
.mi-view_agenda:before {content: '\e8e9';}
.mi-view_array:before {content: '\e8ea';}
.mi-view_carousel:before {content: '\e8eb';}
.mi-view_column:before {content: '\e8ec';}
.mi-view_column_2:before {content: '\f847';}
.mi-view_comfy:before {content: '\e42a';}
.mi-view_comfy_alt:before {content: '\eb73';}
.mi-view_compact:before {content: '\e42b';}
.mi-view_compact_alt:before {content: '\eb74';}
.mi-view_cozy:before {content: '\eb75';}
.mi-view_day:before {content: '\e8ed';}
.mi-view_headline:before {content: '\e8ee';}
.mi-view_in_ar:before {content: '\efc9';}
.mi-view_in_ar_new:before {content: '\efc9';}
.mi-view_in_ar_off:before {content: '\f61b';}
.mi-view_kanban:before {content: '\eb7f';}
.mi-view_list:before {content: '\e8ef';}
.mi-view_module:before {content: '\e8f0';}
.mi-view_quilt:before {content: '\e8f1';}
.mi-view_sidebar:before {content: '\f114';}
.mi-view_stream:before {content: '\e8f2';}
.mi-view_timeline:before {content: '\eb85';}
.mi-view_week:before {content: '\e8f3';}
.mi-vignette:before {content: '\e435';}
.mi-villa:before {content: '\e586';}
.mi-visibility:before {content: '\e8f4';}
.mi-visibility_lock:before {content: '\f653';}
.mi-visibility_off:before {content: '\e8f5';}
.mi-vital_signs:before {content: '\e650';}
.mi-vitals:before {content: '\e13b';}
.mi-voice_chat:before {content: '\e62e';}
.mi-voice_over_off:before {content: '\e94a';}
.mi-voice_selection:before {content: '\f58a';}
.mi-voicemail:before {content: '\e0d9';}
.mi-volcano:before {content: '\ebda';}
.mi-volume_down:before {content: '\e04d';}
.mi-volume_down_alt:before {content: '\e79c';}
.mi-volume_mute:before {content: '\e04e';}
.mi-volume_off:before {content: '\e04f';}
.mi-volume_up:before {content: '\e050';}
.mi-volunteer_activism:before {content: '\ea70';}
.mi-voting_chip:before {content: '\f852';}
.mi-vpn_key:before {content: '\e0da';}
.mi-vpn_key_alert:before {content: '\f6cc';}
.mi-vpn_key_off:before {content: '\eb7a';}
.mi-vpn_lock:before {content: '\e62f';}
.mi-vr180_create2d:before {content: '\efca';}
.mi-vr180_create2d_off:before {content: '\f571';}
.mi-vrpano:before {content: '\f082';}
.mi-wall_art:before {content: '\efcb';}
.mi-wall_lamp:before {content: '\e2b4';}
.mi-wallet:before {content: '\f8ff';}
.mi-wallpaper:before {content: '\e1bc';}
.mi-wallpaper_slideshow:before {content: '\f672';}
.mi-ward:before {content: '\e13c';}
.mi-warehouse:before {content: '\ebb8';}
.mi-warning:before {content: '\f083';}
.mi-warning_amber:before {content: '\f083';}
.mi-warning_off:before {content: '\f7ad';}
.mi-wash:before {content: '\f1b1';}
.mi-watch:before {content: '\e334';}
.mi-watch_button_press:before {content: '\f6aa';}
.mi-watch_later:before {content: '\efd6';}
.mi-watch_off:before {content: '\eae3';}
.mi-watch_screentime:before {content: '\f6ae';}
.mi-watch_wake:before {content: '\f6a9';}
.mi-water:before {content: '\f084';}
.mi-water_bottle:before {content: '\f69d';}
.mi-water_bottle_large:before {content: '\f69e';}
.mi-water_damage:before {content: '\f203';}
.mi-water_do:before {content: '\f870';}
.mi-water_drop:before {content: '\e798';}
.mi-water_ec:before {content: '\f875';}
.mi-water_full:before {content: '\f6d6';}
.mi-water_heater:before {content: '\e284';}
.mi-water_lock:before {content: '\f6ad';}
.mi-water_loss:before {content: '\f6d5';}
.mi-water_lux:before {content: '\f874';}
.mi-water_medium:before {content: '\f6d4';}
.mi-water_orp:before {content: '\f878';}
.mi-water_ph:before {content: '\f87a';}
.mi-water_pump:before {content: '\f5d8';}
.mi-water_voc:before {content: '\f87b';}
.mi-waterfall_chart:before {content: '\ea00';}
.mi-waves:before {content: '\e176';}
.mi-waving_hand:before {content: '\e766';}
.mi-wb_auto:before {content: '\e42c';}
.mi-wb_cloudy:before {content: '\f15c';}
.mi-wb_incandescent:before {content: '\e42e';}
.mi-wb_iridescent:before {content: '\f07d';}
.mi-wb_shade:before {content: '\ea01';}
.mi-wb_sunny:before {content: '\e430';}
.mi-wb_twilight:before {content: '\e1c6';}
.mi-wc:before {content: '\e63d';}
.mi-weather_hail:before {content: '\f67f';}
.mi-weather_mix:before {content: '\f60b';}
.mi-weather_snowy:before {content: '\e2cd';}
.mi-web:before {content: '\e051';}
.mi-web_asset:before {content: '\e069';}
.mi-web_asset_off:before {content: '\ef47';}
.mi-web_stories:before {content: '\e595';}
.mi-web_traffic:before {content: '\ea03';}
.mi-webhook:before {content: '\eb92';}
.mi-weekend:before {content: '\e16b';}
.mi-weight:before {content: '\e13d';}
.mi-west:before {content: '\f1e6';}
.mi-whatshot:before {content: '\e80e';}
.mi-wheelchair_pickup:before {content: '\f1ab';}
.mi-where_to_vote:before {content: '\e177';}
.mi-widgets:before {content: '\e1bd';}
.mi-width:before {content: '\f730';}
.mi-width_full:before {content: '\f8f5';}
.mi-width_normal:before {content: '\f8f6';}
.mi-width_wide:before {content: '\f8f7';}
.mi-wifi:before {content: '\e63e';}
.mi-wifi_1_bar:before {content: '\e4ca';}
.mi-wifi_2_bar:before {content: '\e4d9';}
.mi-wifi_add:before {content: '\f7a8';}
.mi-wifi_calling:before {content: '\ef77';}
.mi-wifi_calling_1:before {content: '\f0f6';}
.mi-wifi_calling_2:before {content: '\f0f6';}
.mi-wifi_calling_3:before {content: '\f0f6';}
.mi-wifi_channel:before {content: '\eb6a';}
.mi-wifi_find:before {content: '\eb31';}
.mi-wifi_home:before {content: '\f671';}
.mi-wifi_lock:before {content: '\e1e1';}
.mi-wifi_notification:before {content: '\f670';}
.mi-wifi_off:before {content: '\e648';}
.mi-wifi_password:before {content: '\eb6b';}
.mi-wifi_protected_setup:before {content: '\f0fc';}
.mi-wifi_proxy:before {content: '\f7a7';}
.mi-wifi_tethering:before {content: '\e1e2';}
.mi-wifi_tethering_error:before {content: '\ead9';}
.mi-wifi_tethering_off:before {content: '\f087';}
.mi-wind_power:before {content: '\ec0c';}
.mi-window:before {content: '\f088';}
.mi-window_closed:before {content: '\e77e';}
.mi-window_open:before {content: '\e78c';}
.mi-window_sensor:before {content: '\e2bb';}
.mi-wine_bar:before {content: '\f1e8';}
.mi-woman:before {content: '\e13e';}
.mi-woman_2:before {content: '\f8e7';}
.mi-work:before {content: '\e943';}
.mi-work_alert:before {content: '\f5f7';}
.mi-work_history:before {content: '\ec09';}
.mi-work_off:before {content: '\e942';}
.mi-work_outline:before {content: '\e943';}
.mi-work_update:before {content: '\f5f8';}
.mi-workflow:before {content: '\ea04';}
.mi-workspace_premium:before {content: '\e7af';}
.mi-workspaces:before {content: '\ea0f';}
.mi-workspaces_outline:before {content: '\ea0f';}
.mi-wounds_injuries:before {content: '\e13f';}
.mi-wrap_text:before {content: '\e25b';}
.mi-wrist:before {content: '\f69c';}
.mi-wrong_location:before {content: '\ef78';}
.mi-wysiwyg:before {content: '\f1c3';}
.mi-yard:before {content: '\f089';}
.mi-your_trips:before {content: '\eb2b';}
.mi-youtube_activity:before {content: '\f85a';}
.mi-youtube_searched_for:before {content: '\e8fa';}
.mi-zone_person_alert:before {content: '\e781';}
.mi-zone_person_idle:before {content: '\e77a';}
.mi-zone_person_urgent:before {content: '\e788';}
.mi-zoom_in:before {content: '\e8ff';}
.mi-zoom_in_map:before {content: '\eb2d';}
.mi-zoom_out:before {content: '\e900';}
.mi-zoom_out_map:before {content: '\e56b';}
.mi-adobe:before {content: '\ea96';}
.mi-airplanemode_off:before {content: '\e194';}
.mi-airplanemode_on:before {content: '\e195';}
.mi-apple:before {content: '\ea80';}
.mi-block_flipped:before {content: '\ef46';}
.mi-bookmark_outline:before {content: '\e867';}
.mi-catching_pokemon:before {content: '\e508';}
.mi-confirmation_num:before {content: '\e638';}
.mi-delivery_dining:before {content: '\ea72';}
.mi-directions_ferry:before {content: '\e532';}
.mi-directions_train:before {content: '\e534';}
.mi-discord:before {content: '\ea6c';}
.mi-discount:before {content: '\ebc9';}
.mi-dnd_forwardslash:before {content: '\e611';}
.mi-enhance_photo_translate:before {content: '\e8fc';}
.mi-exposure_minus_1:before {content: '\e3cb';}
.mi-exposure_minus_2:before {content: '\e3cc';}
.mi-facebook:before {content: '\f234';}
.mi-favorite_outline:before {content: '\e87e';}
.mi-fire_hydrant_alt:before {content: '\f8f1';}
.mi-fitbit:before {content: '\e82b';}
.mi-format_underline:before {content: '\e249';}
.mi-goat:before {content: '\10fffd';}
.mi-highlight_alt:before {content: '\ef52';}
.mi-highlight_remove:before {content: '\e888';}
.mi-info_outline:before {content: '\e88f';}
.mi-invert_colors_on:before {content: '\e891';}
.mi-keyboard_command:before {content: '\eae0';}
.mi-keyboard_control:before {content: '\e5d3';}
.mi-keyboard_option:before {content: '\eadf';}
.mi-leave_bags_at_home:before {content: '\f21b';}
.mi-local_attraction:before {content: '\e53f';}
.mi-local_print_shop:before {content: '\e555';}
.mi-local_restaurant:before {content: '\e556';}
.mi-location_history:before {content: '\e55a';}
.mi-messenger:before {content: '\e0ca';}
.mi-messenger_outline:before {content: '\e0cb';}
.mi-miscellaneous_services:before {content: '\f10c';}
.mi-moped:before {content: '\eb28';}
.mi-multitrack_audio:before {content: '\e1b8';}
.mi-my_library_add:before {content: '\e02e';}
.mi-my_library_books:before {content: '\e02f';}
.mi-my_library_music:before {content: '\e030';}
.mi-no_cell:before {content: '\f1a4';}
.mi-no_meals_ouline:before {content: '\f229';}
.mi-notifications_on:before {content: '\e7f7';}
.mi-now_wallpaper:before {content: '\e1bc';}
.mi-now_widgets:before {content: '\e1bd';}
.mi-outbond:before {content: '\f228';}
.mi-panorama_fisheye:before {content: '\e40c';}
.mi-panorama_horizontal_select:before {content: '\ef60';}
.mi-panorama_photosphere_select:before {content: '\e9ca';}
.mi-panorama_vertical_select:before {content: '\ef61';}
.mi-panorama_wide_angle_select:before {content: '\ef62';}
.mi-paypal:before {content: '\ea8d';}
.mi-perm_contact_cal:before {content: '\e8a3';}
.mi-perm_device_info:before {content: '\e8a5';}
.mi-person_add_alt_1:before {content: '\ef65';}
.mi-person_remove_alt_1:before {content: '\ef67';}
.mi-pix:before {content: '\eaa3';}
.mi-play_circle_fill:before {content: '\e038';}
.mi-play_circle_filled:before {content: '\e038';}
.mi-play_circle_outline:before {content: '\e039';}
.mi-quick_contacts_dialer:before {content: '\e0cf';}
.mi-quick_contacts_mail:before {content: '\e0d0';}
.mi-quora:before {content: '\ea98';}
.mi-radio_button_off:before {content: '\e836';}
.mi-radio_button_on:before {content: '\e837';}
.mi-reddit:before {content: '\eaa0';}
.mi-settings_display:before {content: '\e8bd';}
.mi-share_arrival_time:before {content: '\e524';}
.mi-shopify:before {content: '\ea9d';}
.mi-signal_wifi_statusbar_connected_no_internet_4:before {content: '\f066';}
.mi-snapchat:before {content: '\ea6e';}
.mi-swap_vert_circle:before {content: '\e8d6';}
.mi-system_update_tv:before {content: '\e8d7';}
.mi-telegram:before {content: '\ea6b';}
.mi-tiktok:before {content: '\ea7e';}
.mi-trending_neutral:before {content: '\e8e4';}
.mi-video_collection:before {content: '\e04a';}
.mi-view_comfortable:before {content: '\e42a';}
.mi-wallet_giftcard:before {content: '\e8f6';}
.mi-wallet_membership:before {content: '\e8f7';}
.mi-wallet_travel:before {content: '\e8f8';}
.mi-wb_twighlight:before {content: '\ea02';}
.mi-wechat:before {content: '\ea81';}
.mi-wifi_tethering_error_rounded:before {content: '\f086';}
.mi-woo_commerce:before {content: '\ea6d';}
.mi-wordpress:before {content: '\ea9f';}
.mi-workspaces_filled:before {content: '\ea0d';}
/* The app's deck page (app_decks/show, docs/reference/app-shell.md "Deck page").
   Same rules as app_shell.css, whose tokens it uses: plain CSS scoped under
   body.app-shell, pulled into application.css by require_tree. */

body.app-shell .app-header.app-deck-page-header { justify-content: flex-start; margin-bottom: 8px; }
body.app-shell .app-deck-page-kicker {
  font-family: Oswald, sans-serif;
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--app-muted);
}

/* Top: the commander art, big and rounded, then name, commanders, pips. */
body.app-shell .app-deck-page-hero { margin-bottom: 16px; }
body.app-shell .app-deck-page-art {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid var(--app-border);
  border-radius: 20px;
  background: var(--app-surface-low);
  color: var(--app-muted);
}
body.app-shell .app-deck-page-art img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
body.app-shell .app-deck-page-art .material-symbols-outlined { font-size: 48px; }
body.app-shell .app-deck-page-name {
  margin: 0;
  font-family: Oswald, sans-serif;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
body.app-shell .app-deck-page-commanders { margin: 6px 0 0; font-size: 15px; color: var(--app-text); }
body.app-shell .app-deck-page-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-top: 8px;
  font-size: 13px;
  color: var(--app-muted);
}
body.app-shell .app-deck-page-meta .app-deck-pips { font-size: 15px; gap: 3px; }

/* Facts row: up to four tiles, one row on a phone. */
body.app-shell .app-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 16px;
}
body.app-shell .app-fact {
  min-width: 0;
  padding: 10px 8px;
  border: 1px solid var(--app-border);
  border-radius: 14px;
  background: var(--app-surface);
  text-align: center;
}
body.app-shell .app-fact--wide { grid-column: span 3; text-align: left; padding-left: 14px; }
body.app-shell .app-fact-label {
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--app-muted);
}
body.app-shell .app-fact-value {
  margin: 4px 0 0;
  font-family: Oswald, sans-serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.1;
}
body.app-shell .app-fact-none { margin: 6px 0 0; font-size: 15px; }

/* Playtest: the primary action. */
body.app-shell .app-deck-page-playtest { margin-bottom: 16px; }
body.app-shell .app-deck-page-playtest-form { margin: 0; }
body.app-shell .app-deck-page-playtest .app-deck-page-playtest-btn { gap: 6px; margin-top: 0; }
body.app-shell .app-deck-page-playtest .app-deck-page-playtest-btn:disabled { opacity: 1; background: var(--app-surface); color: var(--app-muted); border: 1px solid var(--app-border); cursor: not-allowed; }
body.app-shell .app-deck-page-reason { margin: 8px 0 0; font-size: 13px; line-height: 1.4; color: #fbbf24; }

/* Source card. */
body.app-shell .app-source {
  margin-bottom: 24px;
  padding: 14px;
  border: 1px solid var(--app-border);
  border-radius: 16px;
  background: var(--app-surface);
}
body.app-shell .app-source-head { display: flex; align-items: center; gap: 8px; }
body.app-shell .app-source-icon { color: var(--app-teal); }
body.app-shell .app-source-title {
  margin: 0;
  font-family: Oswald, sans-serif;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
body.app-shell .app-source-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--app-teal);
  font-size: 15px;
  text-decoration: none;
}
body.app-shell .app-source-synced,
body.app-shell .app-source-text { margin: 0 0 4px; font-size: 13px; color: var(--app-muted); }
body.app-shell .app-source-error { margin: 8px 0 0; font-size: 13px; line-height: 1.4; color: #ffb4ab; }
body.app-shell .app-source-warning { margin: 8px 0 0; font-size: 13px; line-height: 1.4; color: #fbbf24; }
body.app-shell .app-source-status { margin: 8px 0 0; font-size: 13px; color: var(--app-text); }
body.app-shell .app-source-status:empty { display: none; }
body.app-shell .app-source .app-source-sync-btn { gap: 6px; margin-top: 12px; }
body.app-shell .app-source .app-source-sync-btn[hidden] { display: none; }
body.app-shell .app-source-sync-btn:disabled { opacity: 0.5; cursor: progress; }
body.app-shell .app-source-confirm {
  margin-top: 12px;
  padding: 12px;
  border: 1px solid #fbbf24;
  border-radius: 12px;
  background: rgba(251, 191, 36, 0.06);
}
body.app-shell .app-source-confirm[hidden] { display: none; }
body.app-shell .app-source-confirm-text { margin: 0 0 10px; font-size: 14px; line-height: 1.4; }
body.app-shell .app-source-confirm-actions { display: flex; gap: 8px; }
body.app-shell .app-source-confirm-actions > * { flex: 1; }
body.app-shell .app-source-confirm .app-source-confirm-btn { height: 44px; margin-top: 0; font-size: 14px; letter-spacing: 0.04em; }

/* Archive: quiet, at the bottom, opens into a confirm step. */
body.app-shell .app-deck-archive { margin-top: 8px; padding-bottom: 8px; }
body.app-shell .app-deck-archive-summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  list-style: none;
  color: var(--app-muted);
  font-size: 14px;
  cursor: pointer;
}
body.app-shell .app-deck-archive-summary::-webkit-details-marker { display: none; }
body.app-shell .app-deck-archive-summary .material-symbols-outlined { font-size: 20px; }
body.app-shell .app-deck-archive-body {
  padding: 12px;
  border: 1px solid var(--app-border);
  border-radius: 14px;
  background: var(--app-surface-low);
}
body.app-shell .app-deck-archive-text { margin: 0 0 12px; font-size: 13px; line-height: 1.4; color: var(--app-muted); }
body.app-shell .app-deck-archive-form { margin: 0; }

/* The Decks tab's rows open this page: the deck name is the link and its
   ::after stretches over the whole row, while the row's own buttons (Playtest,
   Add a deck link) sit above it and keep their taps. */
body.app-shell .app-deck-row { position: relative; }
body.app-shell .app-deck-link { color: inherit; text-decoration: none; }
body.app-shell .app-deck-link::after { content: ""; position: absolute; inset: 0; border-radius: 14px; }
body.app-shell .app-deck-row .app-playtest-form,
body.app-shell .app-deck-row > button { position: relative; z-index: 1; }

/* A row that opens a sub-screen of the deck (Tracker quick actions). */
body.app-shell .app-deck-link-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  margin-bottom: 16px;
  padding: 10px 14px;
  border: 1px solid var(--app-border);
  border-radius: 16px;
  background: var(--app-surface);
  color: var(--app-text);
  text-decoration: none;
}
body.app-shell .app-deck-link-row-icon { color: var(--app-teal); }
body.app-shell .app-deck-link-row-text { display: flex; flex-direction: column; flex: 1; min-width: 0; }
body.app-shell .app-deck-link-row-label { font-size: 15px; font-weight: 500; }
body.app-shell .app-deck-link-row-hint { font-size: 13px; color: var(--app-muted); }
body.app-shell .app-deck-link-row-chevron { color: var(--app-muted); }

/* The quick actions screen: the builder island brings its own Tailwind styling. */
body.app-shell .app-deck-quick-actions { padding-bottom: 24px; }
body.app-shell .app-deck-quick-actions-title {
  margin: 0 0 6px;
  font-family: Oswald, sans-serif;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
body.app-shell .app-deck-quick-actions-intro { margin: 0 0 16px; font-size: 14px; line-height: 1.4; color: var(--app-muted); }
/* The app's Decks tab, decks with no cards (docs/reference/app-shell.md,
   Decks): the "fetch them" bar and its run's progress panel
   (app_shell/_fetch_bar, _fetch_progress), the row's "Add a deck link" button
   and its status line (app_shell/_deck_row, _link_sheet). Scoped under
   body.app-shell like app_shell.css; pulled into application.css by
   require_tree. */

body.app-shell .app-fetch {
  margin: 0 0 16px;
  padding: 14px;
  border: 1px solid var(--app-border);
  border-radius: 14px;
  background: var(--app-surface);
}

body.app-shell .app-fetch-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
body.app-shell .app-fetch-icon { flex-shrink: 0; color: var(--app-teal); }
body.app-shell .app-fetch-text { flex: 1; min-width: 0; }
body.app-shell .app-fetch-bar-text { flex: 1; margin: 2px 0 0; font-size: 15px; line-height: 1.35; }
body.app-shell .app-fetch-title {
  margin: 0;
  font-family: Oswald, sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body.app-shell .app-fetch-summary { margin: 4px 0 0; font-size: 14px; color: var(--app-muted); }
body.app-shell .app-fetch-head .app-icon-btn { flex-shrink: 0; margin: -8px -8px 0 0; }

body.app-shell .app-fetch-form { margin: 0; }
body.app-shell .app-fetch .app-primary-btn { margin-top: 12px; height: 48px; font-size: 15px; }

body.app-shell .app-fetch-track {
  height: 6px;
  margin-top: 12px;
  overflow: hidden;
  border-radius: 3px;
  background: var(--app-surface-low);
}
body.app-shell .app-fetch-fill {
  height: 100%;
  border-radius: 3px;
  background: var(--app-teal);
  transition: width 0.5s ease;
}
body.app-shell .app-fetch-note { margin: 8px 0 0; font-size: 12px; color: var(--app-muted); }

body.app-shell .app-fetch-failures {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  max-height: 40dvh;
  overflow-y: auto;
  border-top: 1px solid var(--app-border);
}
body.app-shell .app-fetch-failure {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 0;
  border-bottom: 1px solid var(--app-border);
}
body.app-shell .app-fetch-failure:last-child { border-bottom: 0; }
body.app-shell .app-fetch-failure-name { font-size: 14px; overflow-wrap: anywhere; }
body.app-shell .app-fetch-failure-reason { font-size: 12px; color: #fbbf24; }

/* Rows. */
body.app-shell .app-deck-status { margin-top: 4px; font-size: 12px; line-height: 1.35; color: var(--app-teal); }
body.app-shell .app-deck-row .app-deck-link-btn {
  flex-shrink: 0;
  width: auto;
  gap: 4px;
  padding: 0 12px 0 8px;
  border-radius: 12px;
}
body.app-shell .app-deck-link-btn .material-symbols-outlined { color: var(--app-teal); }
body.app-shell .app-deck-link-btn:disabled { opacity: 0.45; cursor: progress; }

body.app-shell .app-link-deck:empty { display: none; }
body.app-shell .app-link-deck { margin: -4px 0 12px; font-size: 15px; font-weight: 500; overflow-wrap: anywhere; }

/* Fill this deck (app_shell/_fill_sheet, docs/reference/app-shell.md "Fill
   this deck"): the Decks row button, the deck page button and the sheet's
   note. Margins, never flex gap or inset: old Android WebViews (Chrome 81)
   have neither. */
body.app-shell .app-deck-row .app-deck-fill-btn { gap: 0; }
body.app-shell .app-deck-fill-btn > * + *,
body.app-shell .app-deck-page-fill-btn > * + * { margin-left: 6px; }
body.app-shell .app-deck-page-playtest .app-deck-page-fill-btn { margin-top: 12px; gap: 0; }
body.app-shell .app-deck-page-fill-btn .material-symbols-outlined { color: var(--app-teal); }
body.app-shell .app-source-fill {
  padding: 0;
  border: 0;
  background: transparent;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}
body.app-shell .app-fill-note { margin: 6px 2px 0; font-size: 13px; line-height: 18px; color: var(--app-muted); }
/* The button sits in the import sheet's sticky action bar
   (.app-import-actions), so a pasted list never pushes it under the keyboard. */
body.app-shell dialog.app-sheet.app-fill-sheet { padding-bottom: 0; }
/* The Decks tab's import sheet (app_shell/_import_sheet, app_import_controller.js,
   docs/reference/app-shell.md "Import sheet"). The sheet itself, the field and
   the buttons are app_shell.css's; this file is the one-field extras: the field
   growing into a decklist box, the hint, the message tones and the deck list a
   username lookup brings back. Scoped under body.app-shell like the rest. */

body.app-shell .app-sheet-input.app-import-input {
  display: block;
  padding: 12px 14px;
  line-height: 22px;
  resize: none;
  overflow: hidden;
  font-family: inherit;
}
/* A pasted (or typed) decklist: room for a few lines, scrolling inside. */
body.app-shell .app-sheet-input.app-import-input.is-list {
  height: 168px;
  overflow-y: auto;
}

body.app-shell .app-import-hint {
  min-height: 18px;
  margin: 8px 2px 0;
  font-size: 13px;
  line-height: 18px;
  color: var(--app-muted);
}

body.app-shell .app-import-message {
  margin: 10px 2px 0;
  font-size: 14px;
  line-height: 1.4;
  color: var(--app-text);
}
body.app-shell .app-import-message[data-tone="error"] { color: #ffb4ab; }
body.app-shell .app-import-message[data-tone="warning"] { color: #fbbf24; }
body.app-shell .app-import-message[data-tone="success"] { color: var(--app-teal); }

/* The decks of a username or profile. */
body.app-shell .app-import-results { margin-top: 14px; }
body.app-shell .app-import-results[hidden] { display: none; }
body.app-shell .app-import-summary { margin: 0 2px 6px; font-size: 15px; font-weight: 500; }
body.app-shell .app-import-note { margin: 0 2px 6px; font-size: 13px; line-height: 1.4; color: #fbbf24; }

body.app-shell .app-import-site { margin-top: 10px; }
body.app-shell .app-import-site-head {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  padding: 0 10px;
  font-family: Oswald, sans-serif;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
body.app-shell .app-import-site-count {
  margin-left: auto;
  font-family: Roboto, system-ui, sans-serif;
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--app-muted);
}

body.app-shell .app-import-decks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
body.app-shell .app-import-deck {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 6px 10px;
  border: 1px solid var(--app-border);
  border-radius: 12px;
  background: var(--app-surface-low);
  cursor: pointer;
}
body.app-shell .app-import-deck:has(input:checked) { border-color: var(--app-border-strong); }
body.app-shell .app-import-site-head input,
body.app-shell .app-import-deck input {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin: 0;
  accent-color: var(--app-teal);
}
body.app-shell .app-import-deck-thumb {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  overflow: hidden;
  border-radius: 8px;
  background: var(--app-surface);
}
body.app-shell .app-import-deck-thumb img { width: 100%; height: 100%; object-fit: cover; }
body.app-shell .app-import-deck-text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
body.app-shell .app-import-deck-name {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 15px;
}
body.app-shell .app-import-deck-meta { margin-top: 2px; font-size: 12px; color: var(--app-muted); }

/* An already-imported deck starts unticked; ticked, it will sync. */
body.app-shell .app-import-deck-tag {
  flex-shrink: 0;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--app-surface);
  font-size: 11px;
  color: var(--app-muted);
}
body.app-shell .app-import-deck .app-import-tag-on { display: none; }
body.app-shell .app-import-deck:has(input:checked) .app-import-tag-on { display: inline; color: var(--app-teal); }
body.app-shell .app-import-deck:has(input:checked) .app-import-tag-off { display: none; }

/* The one button stays in reach while the deck list scrolls inside the sheet.
   The sheet's bottom padding (safe area + 20px) moves onto the button's bar,
   so rows never show beneath the button. */
body.app-shell dialog.app-sheet.app-import-sheet { padding-bottom: 0; }
body.app-shell .app-import-actions {
  position: sticky;
  bottom: 0;
  margin: 0 -16px;
  padding: 0 16px calc(env(safe-area-inset-bottom, 0px) + 20px);
  background: var(--app-surface);
}
body.app-shell .app-import-results:not([hidden]) ~ .app-import-actions { border-top: 1px solid var(--app-border); }
body.app-shell .app-import-actions .app-primary-btn:disabled { cursor: default; }

/* "No link or list? Add a deck by hand" and the hand form's own quiet buttons:
   text buttons, so the one teal button stays the only primary. */
body.app-shell .app-import-switch {
  display: block;
  min-height: 44px;
  margin: 4px 0 0;
  padding: 0 2px;
  border: 0;
  background: none;
  color: var(--app-teal);
  font: inherit;
  font-size: 14px;
  text-align: left;
  cursor: pointer;
}
body.app-shell .app-import-results:not([hidden]) ~ .app-import-switch { display: none; }
body.app-shell .app-import-switch[hidden] { display: none; }
body.app-shell .app-manual-back { margin: 4px auto 0; text-align: center; color: var(--app-muted); }

body.app-shell .app-manual-form[hidden] { display: none; }
body.app-shell .app-manual-field { margin-top: 12px; }
body.app-shell .app-manual-field[hidden] { display: none; }
body.app-shell .app-manual-search { position: relative; }
body.app-shell .app-import-hint.app-manual-hint { min-height: 0; margin-top: 6px; }
body.app-shell .app-manual-partner-add { margin-top: 2px; }

/* A quick action stays a short sheet; more than one text field goes full
   height (docs/reference/app-shell.md, "Bottom sheets and the keyboard").
   The hand form sets dialog[data-size=full]: the sheet's top sits just below
   the status bar, its bottom on --app-keyboard-inset like every sheet, and
   app_import_controller.js animates the height change (not with reduced
   motion). The import head and the drag handle make way for the hand form's
   own header, which stays at the top while the fields scroll under it. */
body.app-shell dialog.app-sheet.app-import-sheet[data-size="full"] {
  --app-full-sheet-height: calc(min(100dvh, var(--app-visible-height, 100dvh)) - env(safe-area-inset-top, 0px) - 8px);
  height: var(--app-full-sheet-height);
  max-height: var(--app-full-sheet-height);
  padding-top: 0;
}
body.app-shell dialog.app-sheet[data-size="full"] > .app-sheet-handle,
body.app-shell dialog.app-sheet[data-size="full"] > .app-sheet-head { display: none; }
/* iPad: the sheet is a centred dialog (app_shell.css, "iPad"), so "full"
   means as tall as the dialog may be, not the whole screen, and the bottom
   home-indicator inset does not apply to a box that does not touch it. */
@media (min-width: 700px) and (min-height: 600px) {
  body.app-shell dialog.app-sheet.app-import-sheet[data-size="full"] {
    --app-full-sheet-height: min(840px, calc(var(--app-visible-height, 100dvh) - 48px));
  }
  body.app-shell dialog.app-sheet .app-import-actions { padding-bottom: 20px; }
  body.app-shell dialog.app-sheet .app-manual-actions { padding-bottom: 12px; }
}

/* Cancel / New deck / Create. Create is the hand form's one submit and the
   sheet's one primary, so it is the only teal fill. */
body.app-shell .app-manual-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
  min-height: 56px;
  margin: 0 -16px 12px;
  padding: 0 12px;
  border-bottom: 1px solid var(--app-border);
  background: var(--app-surface);
}
body.app-shell .app-manual-title {
  margin: 0;
  font-family: Oswald, sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
body.app-shell .app-manual-cancel {
  justify-self: start;
  min-height: 44px;
  padding: 0 4px;
  border: 0;
  background: none;
  color: var(--app-text);
  font: inherit;
  font-size: 16px;
  cursor: pointer;
}
body.app-shell .app-manual-create {
  justify-self: end;
  min-width: 80px;
  height: 36px;
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: var(--app-teal);
  color: #00201c;
  font-family: Oswald, sans-serif;
  font-size: 15px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
body.app-shell .app-manual-create:disabled {
  background: var(--app-surface-low);
  color: var(--app-muted);
  cursor: default;
}

/* The focused field (lib/keyboardInset.js) and an opened search (the
   controller scrolls the search box to the top) land below the header. */
body.app-shell .app-manual-form .app-sheet-input,
body.app-shell .app-manual-search { scroll-margin-top: 68px; scroll-margin-bottom: 12px; }

/* Under the fields, the quiet way back to the import field. Nothing is
   pinned here: a pinned Create bar once covered the deck name on a phone with
   the keyboard up (Johannes, 2026-10-06). It keeps the sheet's bottom padding
   the import sheet drops. */
body.app-shell .app-manual-actions {
  margin-top: 16px;
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 12px);
}

/* Commander search results (api/commanders/index, at most 10 of the
   website's rows) sit in the sheet's flow under the field. When they open the
   search box scrolls to just under the header, so the cap is the visible
   height less the header, the field and the margins: on a tall phone all ten
   show, with the keyboard up about six, and the list scrolls inside. */
body.app-shell .app-manual-results {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  max-height: max(160px, calc(var(--app-visible-height, 100dvh) - env(safe-area-inset-top, 0px) - 150px));
  overflow-y: auto;
  border: 1px solid var(--app-border-strong);
  border-radius: 12px;
  background: var(--app-surface-low);
  scroll-margin-bottom: 8px;
}
body.app-shell .app-manual-results[hidden] { display: none; }
body.app-shell .app-manual-results [role="option"] { min-height: 52px; }
body.app-shell .app-manual-results [role="option"].active,
body.app-shell .app-manual-results [role="option"][aria-selected="true"] { background: var(--app-surface); }
/* The Live lobby inside the mobile app (docs/reference/app-shell.md, "The
   lobby in app mode"). Every rule is scoped to .app-lobby, the class
   live_sessions/lobby adds to its root only when app_mode?, under body.app-shell
   (the application layout's app-mode body class), so the website lobby, desktop
   and phone alike, never sees any of it. The --app-* tokens come from
   app_shell.css on body.app-shell.

   Two rules this file lives by:
   - Never set `display` on an element that the lobby's Stimulus controllers
     reveal or hide with Tailwind's `.hidden` (Close/Leave, Randomize seats, the
     deck bar, the pick-mode host buttons, voice hints). These selectors outrank
     `.hidden`, so a `display` here would show a host-only control to everyone.
   - The warm-up offer (#lobbyWarmup) is a frozen A/B surface: nothing here
     targets it, which is why panels are listed by id instead of `.live-panel`. */

/* One 16px gutter: the layout's <main class="px-4"> already gives it, so the
   lobby root drops its own px-4 / md:px-6 / lg:px-8. The bottom padding keeps
   the end of the page clear of the fixed action bar (see "Bottom stack"). */
body.app-shell .app-lobby {
  --app-lobby-bar: 132px;
  padding-left: 0;
  padding-right: 0;
  margin-top: 12px;
  margin-bottom: 0;
  padding-bottom: calc(env(safe-area-inset-bottom) + 12px + var(--app-lobby-bar) + 16px);
}
/* A guest's bar holds only the readiness line (and the chat button). */
body.app-shell .app-lobby:has(#lobbyWaitingHint),
body.app-shell .app-lobby:has([data-pregame-channel-target="pickHostActions"].hidden) {
  --app-lobby-bar: 80px;
}
body.app-shell .app-lobby:has(#lobbyActions [data-pregame-channel-target="voiceHint"]:not(.hidden)) {
  padding-bottom: calc(env(safe-area-inset-bottom) + 12px + var(--app-lobby-bar) + 28px + 16px);
}

/* The phone tip is dropped server-side on the lobby; this catches any other
   Live page that still renders it in app mode. */
body.app-shell .live-mobile-notice { display: none !important; }

/* ── Toolbar: voice segmented control on its own row, then device settings
   and Close lobby / Leave. The stepper is not rendered in app mode. ── */
/* No stepper, so no website 1fr/auto/1fr grid (lg:grid) on a wide tablet. */
body.app-shell .app-lobby .lobby-topbar { display: block; margin-bottom: 12px; }
body.app-shell .app-lobby .lobby-toolbar {
  position: static;
  transform: none;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 8px;
  margin-top: 0;
}
body.app-shell .app-lobby .lobby-toolbar { flex-wrap: nowrap; align-items: flex-start; }
body.app-shell .app-lobby .lobby-toolbar > [data-controller~="voice-controls"] {
  flex: 1 1 auto;
  min-width: 0;
  align-items: stretch;
}
body.app-shell .app-lobby .lobby-toolbar > [data-controller~="voice-controls"] > div:first-child {
  display: flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--app-border);
  border-radius: 9999px;
  background: var(--app-surface-low);
}
body.app-shell .app-lobby .lobby-toolbar [data-voice-controls-target="modeBtn"] {
  flex: 1 1 0;
  justify-content: center;
  height: 44px;
  min-width: 0;
  padding: 0 4px;
  gap: 4px;
  font-size: 13px;
}
body.app-shell .app-lobby .lobby-toolbar [data-voice-controls-target="requirementCaption"],
body.app-shell .app-lobby .lobby-toolbar [data-voice-controls-target="toast"] {
  align-self: center;
  max-width: none;
  margin-top: 4px;
}
/* Settings and Close lobby / Leave: round icon buttons, as tall as the voice
   control, on the same row. Close and Leave keep their text as the accessible
   name (visually hidden), and their confirm dialog. */
body.app-shell .app-lobby .lobby-toolbar > button[aria-label="Device settings"],
body.app-shell .app-lobby .lobby-toolbar .live-quiet {
  flex-shrink: 0;
  justify-content: center;
  width: 54px;
  height: 54px;
  padding: 0;
  border: 1px solid var(--app-border);
  border-radius: 9999px;
  background: var(--app-surface);
}
body.app-shell .app-lobby .lobby-toolbar .live-quiet .mi { font-size: 18px !important; }
body.app-shell .app-lobby .lobby-toolbar .live-quiet > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ── Cards: app surface, border and radius, 16px inside. ── */
body.app-shell .app-lobby :is(#lobbySessionInfoCard, #lobbyDeckPicker, #lobbyDeckBar) {
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  box-shadow: none;
}
body.app-shell .app-lobby :is(#lobbySessionInfoCard, #lobbyDeckPicker) > div:first-child {
  padding: 16px;
}
body.app-shell .app-lobby #lobbyDeckBar { padding: 12px 16px; gap: 12px; }
body.app-shell .app-lobby #lobbyDeckBar .live-deck-bar__info { min-width: 0; }
body.app-shell .app-lobby .lobby-table-section { margin-top: 12px; }
/* The deck section sits between the info card and the table. Closed it is
   only the "Pick your deck" button, which carries the gap itself, so a player
   with a deck sees no empty 12px above the seats. */
body.app-shell .app-lobby .lobby-deck-section { margin-top: 0; }

/* Section titles: Oswald uppercase at the app's 16px, not an 11px kicker. */
body.app-shell .app-lobby #lobbyDeckPicker > div > .flex:first-child .live-kicker {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--app-text);
}

/* The table is just the seat cards: no "The Table" heading or subtitle (not
   rendered in app mode), no panel around them. The head row keeps only the
   host's Randomize seats, right-aligned, and goes when Randomize is hidden
   (everyone but the host). The row is never toggled with .hidden itself. */
body.app-shell .app-lobby .lobby-table-section > .live-panel {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
body.app-shell .app-lobby .lobby-table-section > .live-panel > div:first-child { padding: 0; }
body.app-shell .app-lobby .lobby-table-head {
  flex-wrap: nowrap;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 8px;
}
body.app-shell .app-lobby .lobby-table-head:not(:has(> :not(.hidden))) { display: none; }
body.app-shell .app-lobby [data-testid="pg-lobby-randomize"] {
  flex-shrink: 0;
  min-height: 40px;
  padding: 0 12px;
}
body.app-shell .app-lobby [data-testid="pg-lobby-randomize"] .mi { color: var(--app-teal); }
body.app-shell .app-lobby #lobbySeatGrid { gap: 8px; }
body.app-shell .app-lobby .live-seat-card__top { flex-wrap: nowrap; }
body.app-shell .app-lobby #lobbyDeckPicker > div > .flex:first-child { margin-bottom: 12px; }

/* Info card, one compact block:
     row 1  host (or playgroup) name ................ 1 / 4 seated
     row 2  Waiting ......................... [Copy invite link]
     row 3  rule chips in ONE horizontally scrolling row
   The hero's right-hand cluster is display:contents so its pieces (status
   pill, seated count, invite button) become items of the hero row and can be
   ordered around a forced line break (the row's ::after). Copy invite link is
   a SECONDARY: the one primary on this screen is the start bar's action. */
body.app-shell .app-lobby #lobbySessionInfoCard > div:first-child { padding: 12px 16px; }
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:first-child {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:first-child::after {
  content: "";
  order: 2;
  flex-basis: 100%;
  height: 0;
}
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:first-child > div:first-child {
  order: 0;
  flex: 1 1 0;
}
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:first-child > div:last-child { display: contents; }
body.app-shell .app-lobby #lobbySessionInfoCard .live-kicker { font-size: 10px; }
body.app-shell .app-lobby #lobbySessionInfoCard .text-3xl {
  margin-top: 4px;
  overflow: hidden;
  font-size: 18px;
  line-height: 1.15;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-overflow: ellipsis;
}
body.app-shell .app-lobby #lobbyPlayerCount {
  order: 1;
  align-self: flex-end;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
body.app-shell .app-lobby #lobbyPlayerCount > div:first-child { font-size: 20px; }
body.app-shell .app-lobby #lobbyPlayerCount > div:first-child .text-2xl { font-size: 14px; }
body.app-shell .app-lobby #lobbyPlayerCount .live-kicker { margin-top: 0; }
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:first-child .live-fact { order: 3; padding-left: 10px; padding-right: 10px; letter-spacing: 0.1em; }
body.app-shell .app-lobby #copyLinkBtn {
  order: 4;
  margin-left: auto;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid var(--app-border-strong);
  border-radius: 12px;
  background: var(--app-surface);
  color: var(--app-text);
  font-size: 13px;
  font-weight: 400;
  box-shadow: none;
}
body.app-shell .app-lobby #copyLinkBtn .mi { color: var(--app-teal); }

/* The rules strip: one row that scrolls sideways, bleeding to the card edges,
   chips at 30px. The "Table rules" label goes (the row explains itself). */
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:nth-child(2) {
  flex-wrap: nowrap;
  gap: 6px;
  margin: 10px -16px 0;
  padding: 10px 16px 2px;
  overflow-x: auto;
  scrollbar-width: none;
  border-color: var(--app-border);
}
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:nth-child(2)::-webkit-scrollbar { display: none; }
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:nth-child(2) > .live-kicker:first-child { display: none; }
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:nth-child(2) > * { flex-shrink: 0; white-space: nowrap; }
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:nth-child(2) .live-fact,
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:nth-child(2) .live-ctrl {
  height: 30px;
  padding: 0 10px;
  font-size: 11px;
  white-space: nowrap;
}
body.app-shell .app-lobby #lobbySessionInfoCard > div > div:nth-child(2) > .text-xs { padding-left: 4px; font-size: 11px; }
/* The bracket picker is a bottom sheet. It used to be fixed "under its chip"
   with no top, so it took its static position, which inside the sideways
   scrolling row landed below the screen: the chip looked dead (2026-10-08).
   Now the panel (shown and hidden with .hidden by lobby_bracket_popover, so no
   `display` here) covers the screen as the dimmed backdrop, and its card sits
   at the bottom above the keyboard inset and the safe area. A tap on the
   backdrop closes it (lobby-bracket-popover#backdrop). Offsets, not `inset`,
   for old WebViews. Above the action bar (40) and the chat dock (45). */
body.app-shell .app-lobby [data-lobby-bracket-popover-target="panel"] {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: auto;
  margin: 0;
  z-index: 49;
  background: rgba(0, 0, 0, 0.6);
}
body.app-shell .app-lobby [data-lobby-bracket-popover-target="panel"] > div {
  position: absolute;
  right: 0;
  bottom: var(--app-keyboard-inset, 0px);
  left: 0;
  box-sizing: border-box;
  max-width: 720px;
  max-height: 88vh;
  max-height: min(88dvh, calc(var(--app-visible-height, 100dvh) - 16px));
  margin: 0 auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 20px 16px calc(env(safe-area-inset-bottom, 0px) + 20px);
  border: 1px solid var(--app-border);
  border-bottom: 0;
  border-radius: 20px 20px 0 0;
  background: var(--app-surface);
  box-shadow: none;
}
body.app-shell .app-lobby #lobbyBracketSelector .live-kicker { font-size: 16px; font-weight: 500; letter-spacing: 0.06em; color: var(--app-text); }
body.app-shell .app-lobby #lobbyBracketSelector [data-lobby-bracket-target="pill"] { height: 44px; padding: 0 14px; font-size: 13px; }
body.app-shell .app-lobby #lobbyBracketSelector [data-lobby-bracket-target="warning"] { font-size: 13px; }
/* No flex gap before Chrome 84: the pills get margins instead. */
@supports not (aspect-ratio: 1 / 1) {
  body.app-shell .app-lobby #lobbyBracketSelector [data-lobby-bracket-target="pill"] { margin: 0 8px 8px 0; }
  body.app-shell .app-lobby #lobbyBracketSelector [data-lobby-bracket-target="pill"] > * + * { margin-left: 8px; }
}
/* The experiment explainer under the strip. */
body.app-shell .app-lobby [data-testid="pg-lobby-experiment-explainer"] { margin-top: 10px; padding: 10px 12px; }

/* Buttons: secondaries are 44px dark surface + grey outline everywhere. */
body.app-shell .app-lobby .live-secondary {
  min-height: 44px;
  min-width: 44px;
  border-radius: 12px;
  border-color: var(--app-border-strong);
  background: var(--app-surface);
  font-size: 13px;
}

/* ── Seat cards: app surface, shorter, 44px header targets. ── */
body.app-shell .app-lobby .live-seat-card {
  min-height: 8.5rem;
  border-color: var(--app-border);
  background: var(--app-surface);
}
body.app-shell .app-lobby .live-seat-card__inner { --seat-row-h: 44px; }
body.app-shell .app-lobby .live-seat-card__inner .live-seat-disc { width: 28px; height: 28px; font-size: 14px; }
body.app-shell .app-lobby .live-seat-card .live-vchip,
body.app-shell .app-lobby .live-seat-card .live-seat-card__first-tag { height: 28px; }
body.app-shell .app-lobby .live-seat-card--empty {
  min-height: 0;
  padding: 14px 16px;
  background: var(--app-surface-low);
  border-color: var(--app-border-strong);
}
body.app-shell .app-lobby .live-seat-card__empty-sub { margin: 4px 0 10px; }

/* ── "Your deck" as a bottom sheet (app_deck_sheet_controller). Closed, the
   section shows only the "Pick your deck" button, and only while the viewer
   is picking (no deck yet). The confirmation bar never shows in the app: the
   own seat card carries the deck and its Change deck. ── */
body.app-shell .app-lobby #lobbyDeckBar { display: none !important; }
body.app-shell .app-lobby .lobby-deck-section[data-controller~="app-deck-sheet"]:not(.is-sheet-open):not(.is-sheet-closing) #lobbyDeckPicker { display: none !important; }
body.app-shell .app-lobby .app-lobby-pick-deck {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 52px;
  margin-top: 12px;
  border: 0;
  border-radius: 14px;
  background: var(--app-teal);
  color: #00201c;
  font-family: Oswald, sans-serif;
  font-size: 16px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
body.app-shell .app-lobby .app-lobby-pick-deck[hidden] { display: none; }
body.app-shell .app-lobby .app-deck-sheet-backdrop { display: none; }
body.app-shell .app-lobby .lobby-deck-section:is(.is-sheet-open, .is-sheet-closing) .app-deck-sheet-backdrop {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 47;
  background: rgba(0, 0, 0, 0.6);
}
body.app-shell .app-lobby .lobby-deck-section:is(.is-sheet-open, .is-sheet-closing) #lobbyDeckPicker {
  position: fixed;
  left: 0;
  right: 0;
  /* Above the keyboard: see the bottom-sheet note in app_shell.css. */
  bottom: var(--app-keyboard-inset, 0px);
  z-index: 48;
  max-width: 720px;
  max-height: min(88dvh, calc(var(--app-visible-height, 100dvh) - 16px));
  margin: 0 auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-bottom: 0;
  border-radius: 20px 20px 0 0;
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 16px);
}
body.app-shell .app-lobby .lobby-deck-section:is(.is-sheet-open, .is-sheet-closing) #lobbyDeckPicker::before {
  content: "";
  display: block;
  width: 40px;
  height: 4px;
  margin: 8px auto 0;
  border-radius: 2px;
  background: var(--app-border-strong);
}
/* The page lists the decks; the sheet scrolls as a whole. */
body.app-shell .app-lobby .lobby-deck-section:is(.is-sheet-open, .is-sheet-closing) [data-deck-picker-target="deckList"] { max-height: none; }
html.app-deck-sheet-lock, html.app-deck-sheet-lock body { overflow: hidden; }
/* Sheet motion, matching the <dialog> sheets in app_shell.css: the picker
   slides up from below the screen as it leaves display: none (@starting-style)
   and the backdrop fades in. On close app_deck_sheet_controller keeps
   .is-sheet-closing for 200ms while it slides back down, also when
   pregame_channel just hid the picker (a deck was picked). Transform and
   opacity only; no motion without @starting-style, a fade under reduced motion. */
body.app-shell .app-lobby .lobby-deck-section.is-sheet-open #lobbyDeckPicker {
  transition: transform 280ms cubic-bezier(0, 0, 0, 1);
}
body.app-shell .app-lobby .lobby-deck-section.is-sheet-open .app-deck-sheet-backdrop {
  transition: opacity 280ms linear;
}
@starting-style {
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-open #lobbyDeckPicker {
    transform: translateY(calc(100% + var(--app-keyboard-inset, 0px)));
  }
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-open .app-deck-sheet-backdrop { opacity: 0; }
}
body.app-shell .app-lobby .lobby-deck-section.is-sheet-closing #lobbyDeckPicker {
  display: block !important;
  transform: translateY(calc(100% + var(--app-keyboard-inset, 0px)));
  transition: transform 200ms cubic-bezier(0.3, 0, 1, 1);
  pointer-events: none;
}
body.app-shell .app-lobby .lobby-deck-section.is-sheet-closing .app-deck-sheet-backdrop {
  opacity: 0;
  transition: opacity 200ms linear;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-open #lobbyDeckPicker { transition: opacity 120ms linear; }
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-open .app-deck-sheet-backdrop { transition: opacity 120ms linear; }
  @starting-style {
    body.app-shell .app-lobby .lobby-deck-section.is-sheet-open #lobbyDeckPicker { transform: none; opacity: 0; }
  }
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-closing #lobbyDeckPicker {
    transform: none;
    opacity: 0;
    transition: opacity 120ms linear;
  }
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-closing .app-deck-sheet-backdrop { transition: opacity 120ms linear; }
}
body.app-shell .app-deck-sheet-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--app-border);
  border-radius: 9999px;
  background: var(--app-surface-low);
  color: var(--app-text);
  cursor: pointer;
}
/* The picker's header holds four controls in the sheet: let it wrap, with
   Close at the right end of the button row. */
body.app-shell .app-lobby #lobbyDeckPicker > div > .flex:first-child { flex-wrap: wrap; }
body.app-shell .app-lobby #lobbyDeckPicker > div > .flex:first-child > div:last-child { flex: 1 1 100%; }
/* iPad: the deck sheet becomes a centred dialog like the <dialog> sheets
   (app_shell.css, "iPad"): centred above the keyboard, 640px wide at most,
   four round corners, no drag handle, a 24px rise and fade instead of the
   slide from the screen edge. height: fit-content lets the auto margins
   centre it; where that keyword is missing the max-height still holds it. */
@media (min-width: 700px) and (min-height: 600px) {
  body.app-shell .app-lobby .lobby-deck-section:is(.is-sheet-open, .is-sheet-closing) #lobbyDeckPicker {
    top: 0;
    bottom: var(--app-keyboard-inset, 0px);
    height: fit-content;
    max-width: 640px;
    max-height: min(840px, calc(var(--app-visible-height, 100dvh) - 48px));
    margin: auto;
    padding-bottom: 16px;
    border: 1px solid var(--app-border);
    border-radius: 20px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  }
  body.app-shell .app-lobby .lobby-deck-section:is(.is-sheet-open, .is-sheet-closing) #lobbyDeckPicker::before { display: none; }
  /* The website's lg:grid-cols-2 would squeeze two decks into 640px. */
  body.app-shell .app-lobby .lobby-deck-section:is(.is-sheet-open, .is-sheet-closing) [data-deck-picker-target="deckList"] { grid-template-columns: minmax(0, 1fr); }
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-open #lobbyDeckPicker {
    transition: transform 280ms cubic-bezier(0, 0, 0, 1), opacity 200ms linear;
  }
  @starting-style {
    body.app-shell .app-lobby .lobby-deck-section.is-sheet-open #lobbyDeckPicker { transform: translateY(24px); opacity: 0; }
  }
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-closing #lobbyDeckPicker {
    transform: translateY(24px);
    opacity: 0;
    transition: transform 200ms cubic-bezier(0.3, 0, 1, 1), opacity 200ms linear;
  }
}
@media (min-width: 700px) and (min-height: 600px) and (prefers-reduced-motion: reduce) {
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-open #lobbyDeckPicker { transition: opacity 120ms linear; }
  @starting-style {
    body.app-shell .app-lobby .lobby-deck-section.is-sheet-open #lobbyDeckPicker { transform: none; opacity: 0; }
  }
  body.app-shell .app-lobby .lobby-deck-section.is-sheet-closing #lobbyDeckPicker { transform: none; transition: opacity 120ms linear; }
}
body.app-shell .app-deck-sheet-close { margin-left: auto; }

/* Order on the page: the info card, "Pick your deck" (the next step for a
   player without one), the seat cards, then the warm-up. That is the markup
   order in app mode (lobby.html.haml renders the deck section above the
   table there). The root stays a column, which the geometry was tuned on. */
body.app-shell .app-lobby { display: flex; flex-direction: column; }

/* Open seats: one compact row each (seat, "Open seat", Copy invite link)
   instead of a centred card with a sentence. */
body.app-shell .app-lobby .live-seat-card--empty { padding: 8px 12px 8px 16px; }
body.app-shell .app-lobby .live-seat-card--empty > div:last-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
}
body.app-shell .app-lobby .live-seat-card--empty .live-seat-card__empty-sub { display: none; }
body.app-shell .app-lobby .live-seat-card--empty .live-secondary { flex-shrink: 0; padding: 0 12px; }

/* ── Warm-up in the app (_app_lobby_warmup): two secondary buttons, no copy.
   One row, equal widths and heights: the grid stretches both cells to the
   taller one, the join alert's wrapper passes that height to its button, and
   each label is centred inside. The alert's caption is not rendered in app
   mode; its On/Off token stays inside the button. ── */
body.app-shell .app-lobby .app-lobby-warmup { margin-top: 12px; }
body.app-shell .app-lobby .app-lobby-warmup__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 8px;
}
body.app-shell .app-lobby .app-lobby-warmup__actions.hidden { display: none; }
body.app-shell .app-lobby .app-lobby-warmup__alert { display: flex; min-width: 0; }
/* Push notifications blocked on the phone (docs/reference/push-notifications.md):
   the help line runs full width under both buttons. Only while it shows does the
   alert wrapper step aside (display: contents), so its button stays the second
   grid cell and the help takes a row of its own; otherwise nothing moves. */
body.app-shell .app-lobby .app-lobby-warmup__alert:has(> .join-alert-help:not([hidden])) { display: contents; }
body.app-shell .app-lobby .app-lobby-warmup__alert > .join-alert-help {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--app-muted);
  font-size: 13px;
  line-height: 1.4;
}
body.app-shell .app-lobby .app-lobby-warmup__actions .live-secondary {
  box-sizing: border-box;
  flex: 1 1 auto;
  width: 100%;
  min-height: 56px;
  margin: 0;
  padding: 8px 12px;
  gap: 6px;
  border-color: var(--app-border-strong);
  background: var(--app-surface);
  color: var(--app-text);
  font-size: 12px;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-align: center;
}
body.app-shell .app-lobby .app-lobby-warmup__actions .live-secondary .mi { flex-shrink: 0; color: var(--app-teal); }
/* Disabled (no deck yet): the same button gone quiet, never a faded teal. */
body.app-shell .app-lobby .app-lobby-warmup__actions .live-secondary:disabled,
body.app-shell .app-lobby .app-lobby-warmup__actions .live-secondary:disabled:hover {
  opacity: 1;
  border-color: var(--app-border);
  background: var(--app-surface-low);
  color: var(--app-muted);
  cursor: not-allowed;
}
body.app-shell .app-lobby .app-lobby-warmup__actions .live-secondary:disabled .mi { color: var(--app-muted); }
/* The paused-warm-up pill (inline-positioned for the website's sticky bar)
   sits above the app's fixed bottom bar instead. */
body.app-shell .app-lobby [data-lobby-warmup-target="pill"] {
  right: 16px !important;
  bottom: calc(env(safe-area-inset-bottom) + 12px + var(--app-lobby-bar) + 8px) !important;
}

/* ── Bottom stack: the action bar is fixed to the bottom inside the 16px
   gutter (safe-area aware), and the collapsed chat dock is a 52px button
   sitting INSIDE the bar's bottom-right corner, in room the bar reserves for
   it, so it never covers the readiness line or the start action. The page
   reserves the bar's height at its end (padding-bottom on .app-lobby). ── */
body.app-shell .app-lobby #lobbyActions {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: calc(env(safe-area-inset-bottom) + 12px);
  z-index: 40;
  max-width: 688px;
  margin: 0 auto;
}
body.app-shell .app-lobby .live-startbar {
  gap: 8px 12px;
  min-height: 76px;
  padding: 12px;
  border: 1px solid var(--app-border);
  border-radius: 16px;
  background: var(--app-surface-low);
  box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.55);
}
body.app-shell:has(#lobbyChatMount .lobby-chat) .app-lobby .live-startbar { padding-right: 72px; }
body.app-shell .app-lobby .live-startbar__readiness { flex: 1 1 100%; gap: 10px; }
body.app-shell .app-lobby .live-startbar__readiness > span { min-width: 0; }
body.app-shell .app-lobby .live-startbar [data-pregame-channel-target="voiceHint"],
body.app-shell .app-lobby .live-startbar [data-starting-player-picker-target="rollError"] { flex: 1 1 100%; }
body.app-shell .app-lobby #lobbyStartBtn form { flex: 1 1 100%; margin: 0; }
body.app-shell .app-lobby .live-startbar [data-pregame-channel-target="pickHostActions"] { flex: 1 1 100%; gap: 8px; }
body.app-shell .app-lobby .live-startbar [data-pregame-channel-target="pickHostActions"] .live-secondary { height: 52px; flex: 0 0 auto; }

/* THE primary: the host's Pick Starting Player (waiting) / Start game (pick).
   Solid teal, dark text, 52px. While it cannot be pressed it wears the
   secondary look, so the screen never shows a teal button that does nothing. */
body.app-shell .app-lobby .live-startbar .live-primary {
  width: 100%;
  height: 52px;
  flex: 1 1 auto;
  border-radius: 14px;
  border-color: var(--app-teal);
  background: var(--app-teal);
  color: #00201c;
  font-size: 16px;
  font-weight: 500;
  box-shadow: none;
}
body.app-shell .app-lobby .live-startbar .live-primary:disabled {
  opacity: 1;
  border-color: var(--app-border-strong);
  background: var(--app-surface);
  color: var(--app-muted);
}

/* The chat dock (LobbyChat.vue, scoped styles: these selectors outrank them).
   Collapsed: a 52px chat button in the bar's reserved corner, label kept for
   screen readers. Open: the panel grows up from the same corner. */
body.app-shell .lobby-chat {
  right: max(28px, calc((100vw - 688px) / 2 + 12px));
  bottom: calc(env(safe-area-inset-bottom) + 24px);
  z-index: 45;
  max-width: calc(100vw - 32px);
  border-color: var(--app-border-strong);
  border-radius: 14px;
  box-shadow: none;
}
body.app-shell .lobby-chat:not(.lobby-chat--open) {
  width: 52px;
  height: 52px;
  overflow: visible;
}
body.app-shell .lobby-chat:not(.lobby-chat--open) .lobby-chat-header {
  position: relative;
  justify-content: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border-radius: 14px;
  background: var(--app-surface);
}
body.app-shell .lobby-chat-header::before {
  content: "chat";
  font-family: "Material Symbols Outlined";
  font-size: 24px;
  line-height: 1;
  font-feature-settings: "liga";
  color: var(--app-teal);
}
body.app-shell .lobby-chat:not(.lobby-chat--open) .lobby-chat-title {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
body.app-shell .lobby-chat:not(.lobby-chat--open) .lobby-chat-spacer,
body.app-shell .lobby-chat:not(.lobby-chat--open) .lobby-chat-chevron { display: none; }
body.app-shell .lobby-chat:not(.lobby-chat--open) .chat-unread-badge {
  position: absolute;
  top: -6px;
  right: -6px;
}
body.app-shell .lobby-chat--open { width: min(320px, calc(100vw - 32px)); }
body.app-shell .lobby-chat--open .lobby-chat-header { min-height: 44px; }

/* ── Seat discs: the number sits in the middle of the circle. The open seat's
   disc lives inside .live-seat-card__empty-title, whose 0.2em letter-spacing
   it inherited, so the digit carried a trailing space and sat left of centre.
   Flex centring works on old WebViews (only flex gap is missing there), so the
   title gives the disc a margin instead of its gap. ── */
body.app-shell .app-lobby .live-seat-disc {
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
  text-indent: 0;
}
body.app-shell .app-lobby .live-seat-card--empty .live-seat-card__empty-title { gap: 0; }
body.app-shell .app-lobby .live-seat-card--empty .live-seat-disc {
  width: 28px;
  height: 28px;
  margin-right: 10px;
  font-size: 14px;
}

/* ── Teal budget (Johannes, 2026-10-08): in the app lobby teal marks only the
   voice control, the seated count and the invite link (the info card's Copy
   invite link). The screen's single primary button keeps its fill (the start
   bar's action, Pick your deck). Everything else is neutral: rule chips on
   or off, the bracket picker, kickers, Randomize seats, the status dot, the
   chat button, the warm-up icons, and every hover tint (a tap leaves :hover
   stuck on a touch screen, which painted tapped buttons teal). ── */
body.app-shell .app-lobby .live-kicker,
body.app-shell .app-lobby .live-seat-card__deck-k { color: var(--app-muted); }
body.app-shell .app-lobby #lobbyPlayerCount .live-kicker { color: rgba(28, 222, 202, 0.72); }
body.app-shell .app-lobby #lobbySessionInfoCard .live-fact > .bg-primary { background: var(--app-muted); }
body.app-shell .app-lobby .live-ctrl,
body.app-shell .app-lobby .live-ctrl:hover {
  border-color: var(--app-border-strong);
  background: var(--app-surface-low);
  color: var(--app-muted);
}
body.app-shell .app-lobby .live-ctrl--on,
body.app-shell .app-lobby .live-ctrl--on:hover {
  border-color: var(--app-text);
  background: rgba(230, 239, 236, 0.08);
  color: var(--app-text);
}
body.app-shell .app-lobby .live-ctrl--on b { color: var(--app-text); }
body.app-shell .app-lobby .live-fact--good,
body.app-shell .app-lobby .live-fact--good b {
  border-color: var(--app-border-strong);
  color: var(--app-text);
}
body.app-shell .app-lobby .live-secondary:hover {
  border-color: var(--app-border-strong);
  color: var(--app-text);
}
body.app-shell .app-lobby .live-player-chip:hover { border-color: rgba(255, 255, 255, 0.14); }
body.app-shell .app-lobby .live-seat-card__ready { color: var(--app-text); }
body.app-shell .app-lobby [data-testid="pg-lobby-randomize"] .mi { color: var(--app-muted); }
body.app-shell .app-lobby .app-lobby-warmup__actions .live-secondary .mi { color: var(--app-muted); }
body.app-shell .lobby-chat-header::before { color: var(--app-text); }
/* The bracket picker's pills: the chosen one is outlined in the text colour,
   the rest quiet; hover never tints (the pills carry Tailwind hover classes). */
body.app-shell .app-lobby #lobbyBracketSelector [data-lobby-bracket-target="pill"],
body.app-shell .app-lobby #lobbyBracketSelector [data-lobby-bracket-target="pill"]:hover {
  border-color: var(--app-border-strong);
  background: var(--app-surface-low);
  color: var(--app-muted);
}
body.app-shell .app-lobby #lobbyBracketSelector [data-lobby-bracket-target="pill"].border-primary,
body.app-shell .app-lobby #lobbyBracketSelector [data-lobby-bracket-target="pill"].border-primary:hover {
  border-color: var(--app-text);
  background: rgba(230, 239, 236, 0.08);
  color: var(--app-text);
}
/* Create a game (live_sessions/new) inside the mobile app (docs/reference/
   app-shell.md, "Create a game in app mode"). Every rule is scoped to
   .app-new-game, the class the view adds to its root only when app_mode?, under
   body.app-shell, so the website's create flow never sees any of it. The
   --app-* tokens come from app_shell.css.

   Rules this file lives by:
   - Margins, never flex `gap` (old Android WebViews, Chrome < 84, ignore it) and
     never `inset` (Chrome < 87). Rows the markup lays out with gap-* get gap: 0
     here and margins instead, so old and new WebViews space them the same.
   - Never set `display` on anything live_session_form / cube_lobby_option show
     or hide with `.hidden` (league, schedule fields, languages, hints): these
     selectors outrank the utility and would reveal it.
   - One teal button: Create Lobby. Picked chips are a teal outline on a dark
     tint, not a teal fill. */

/* One 16px gutter: the layout's <main class="px-4"> gives it, so the root drops
   its own px-4 / md:px-6 and the panel drops its chrome and padding. The form
   stays in the page flow, so the keyboard (the WebView resizes) never covers
   the field being typed in or traps the button under it. */
body.app-shell .app-new-game {
  max-width: none;
  margin: 16px 0 0;
  padding: 0 0 calc(env(safe-area-inset-bottom) + 24px);
}
body.app-shell .app-new-game > .live-panel {
  overflow: visible;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
body.app-shell .app-new-game > .live-panel > div:first-child { padding: 0; }

/* Sections: 20px apart, as margins. */
body.app-shell .app-new-game form { gap: 0; }
body.app-shell .app-new-game form > div { margin-bottom: 20px; }

/* Section labels: the app's Oswald at 14px in body text colour, not an 11px
   teal kicker. */
body.app-shell .app-new-game .live-kicker {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--app-text);
}
body.app-shell .app-new-game form label.live-kicker { margin-bottom: 8px; }
body.app-shell .app-new-game form p.text-xs { font-size: 12px; line-height: 1.4; color: var(--app-muted); }
body.app-shell .app-new-game form p.text-xs.text-amber-300,
body.app-shell .app-new-game form p.text-xs.text-amber-400,
body.app-shell .app-new-game form p.text-xs.text-red-400 { color: #fbbf24; }
body.app-shell .app-new-game form p.text-xs.mt-2 { margin-top: 6px; }

/* Fields: app surface, 48px, 16px text (no zoom on focus in iOS WebViews). */
body.app-shell .app-new-game .live-field {
  height: 48px;
  border: 1px solid var(--app-border-strong);
  border-radius: 12px;
  background-color: var(--app-surface);
  color: var(--app-text);
  font-size: 16px;
}
body.app-shell .app-new-game textarea.live-field { height: auto; }
body.app-shell .app-new-game .live-field:focus { border-color: var(--app-teal); }

/* "+ New playgroup" / "+ New league": a 40px tap target, same teal text. */
body.app-shell .app-new-game form button.text-primary[type="button"] {
  min-height: 40px;
  margin-top: 0;
  padding: 0;
  color: var(--app-teal);
}

/* Archidekt import note above the form. */
body.app-shell .app-new-game > .live-panel > div > .mb-6 {
  margin-bottom: 16px;
  border-color: var(--app-border);
  border-radius: 12px;
  background: var(--app-surface);
}
body.app-shell .app-new-game > .live-panel > div > .mb-6 .flex { gap: 0; }
body.app-shell .app-new-game > .live-panel > div > .mb-6 .mi { margin-right: 8px; }

/* Chip rows (bracket, starting life, languages): margins instead of gap-2. */
body.app-shell .app-new-game form .flex-wrap.gap-2 {
  gap: 0;
  margin-bottom: -8px;
}
body.app-shell .app-new-game form .flex-wrap.gap-2 > label { margin: 0 8px 8px 0; }

/* Bracket and life chips: 44px, tighter, app surface. Bracket fits two rows at
   380px; life is four equal segments on one row. */
body.app-shell .app-new-game [data-live-session-form-target="bracketOption"],
body.app-shell .app-new-game [data-live-session-form-target="lifeOption"] {
  gap: 0;
  height: 44px;
  padding: 0 12px;
  border-color: var(--app-border-strong);
  border-radius: 12px;
  background: var(--app-surface);
}
body.app-shell .app-new-game [data-live-session-form-target="bracketOption"] > * + * { margin-left: 6px; }
body.app-shell .app-new-game [data-live-session-form-target="bracketOption"] .font-oswald.uppercase { letter-spacing: 0.08em; }
body.app-shell .app-new-game [data-live-session-form-target="lifeOptions"] { flex-wrap: nowrap; }
body.app-shell .app-new-game [data-live-session-form-target="lifeOptions"] > label { flex: 1 1 0; min-width: 0; }
body.app-shell .app-new-game [data-live-session-form-target="lifeOptions"] > label:last-child { margin-right: 0; }
body.app-shell .app-new-game [data-live-session-form-target="lifeOption"] { display: flex; width: 100%; padding: 0 8px; }
/* Picked: teal outline and text on a dark teal tint (the form controller adds
   bg-primary / text-on-primary / border-primary). */
body.app-shell .app-new-game [data-live-session-form-target="bracketOption"].bg-primary,
body.app-shell .app-new-game [data-live-session-form-target="lifeOption"].bg-primary {
  border-color: var(--app-teal);
  background: rgba(28, 222, 202, 0.12);
  color: var(--app-teal);
}
body.app-shell .app-new-game [data-live-session-form-target="customLifeWrapper"] { margin-top: 16px; }
body.app-shell .app-new-game [data-live-session-form-target="languageChip"] { height: 36px; padding: 0 12px; }
body.app-shell .app-new-game [data-live-session-form-target="languageWrapper"] { margin-top: 20px; }

/* Switch rows: one list, a hairline between rows, 12px inside each, the
   switch 12px clear of the text. */
body.app-shell .app-new-game form > .live-new-toggle,
body.app-shell .app-new-game form > [data-live-session-form-target="scheduleFields"] {
  margin-bottom: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--app-border);
}
body.app-shell .app-new-game form > [data-live-session-form-target="leagueWrapper"] + .live-new-toggle {
  border-top: 1px solid var(--app-border);
}
body.app-shell .app-new-game .live-new-toggle > label { gap: 0; min-height: 44px; }
body.app-shell .app-new-game .live-new-toggle > label > div:last-child,
body.app-shell .app-new-game [data-cube-lobby-option-target="wrapper"] label > div:last-child {
  flex-shrink: 0;
  margin-left: 12px;
}
body.app-shell .app-new-game .live-new-toggle .live-kicker { font-size: 13px; }
body.app-shell .app-new-game .live-new-toggle p.mt-1 { margin-top: 2px; }

/* Cube option card. */
body.app-shell .app-new-game [data-cube-lobby-option-target="wrapper"] label {
  gap: 0;
  padding: 12px 16px;
  border-radius: 12px;
}

/* Schedule date and time side by side, as margins. */
body.app-shell .app-new-game [data-live-session-form-target="scheduleFields"] > .flex { gap: 0; margin-bottom: 12px; }
body.app-shell .app-new-game [data-live-session-form-target="scheduleFields"] > .flex > div:first-child { margin-right: 12px; }
body.app-shell .app-new-game [data-live-session-form-target="scheduleFields"] > .mb-4 { margin-bottom: 12px; }
body.app-shell .app-new-game [data-live-session-form-target="scheduleFields"] > .-mt-2 { margin-top: -4px; }

/* The one primary: Create Lobby, 52px teal, square-ish like the app's buttons. */
body.app-shell .app-new-game form > .flex:last-child { margin: 24px 0 0; }
body.app-shell .app-new-game form button[type="submit"] {
  gap: 0;
  height: 52px;
  border-radius: 14px;
  background: var(--app-teal);
  box-shadow: none;
  font-size: 16px;
}
body.app-shell .app-new-game form button[type="submit"] .mi { margin-right: 8px; }
/* The mobile app shell (layouts/app_shell, docs/reference/app-shell.md).
   Plain CSS rather than Tailwind utilities: the screens use the approved
   design's own surface and border tones (#16201e, #121b19, #1f2b28), which are
   not theme tokens, and every rule here is scoped under body.app-shell so
   nothing leaks onto the website. Pulled into application.css by require_tree. */

body.app-shell {
  --app-bg: #0e1513;
  --app-surface: #16201e;
  --app-surface-low: #121b19;
  --app-border: #1f2b28;
  --app-border-strong: #3f4947;
  --app-text: #e6efec;
  --app-muted: #8fa39e;
  --app-teal: #1cdeca;
  --app-tabbar-h: 64px;

  margin: 0;
  min-height: 100dvh;
  background: var(--app-bg);
  color: var(--app-text);
  font-family: Roboto, system-ui, sans-serif;
  -webkit-tap-highlight-color: transparent;
}

/* Focus rings: none after a tap, teal for the keyboard. A tapped button keeps
   focus, and an old Android WebView (Chrome < 86, no :focus-visible) draws its
   amber :focus ring on it, so the plain :focus rule clears the ring and the
   :focus-visible rule (dropped whole by those WebViews) brings a teal one back
   for keyboard focus in every current browser. Fields keep their own :focus
   border. docs/reference/app-shell.md "Old Android WebViews". */
body.app-shell a:focus,
body.app-shell button:focus,
body.app-shell summary:focus,
body.app-shell [role="tab"]:focus,
body.app-shell [tabindex]:focus { outline: none; }
body.app-shell a:focus-visible,
body.app-shell button:focus-visible,
body.app-shell summary:focus-visible,
body.app-shell [role="tab"]:focus-visible,
body.app-shell [tabindex]:focus-visible { outline: 2px solid var(--app-teal); outline-offset: 2px; }

body.app-shell .material-symbols-outlined {
  font-size: 24px;
  line-height: 1;
}

body.app-shell .app-main {
  max-width: 720px;
  margin: 0 auto;
  padding: calc(env(safe-area-inset-top) + 12px) 16px calc(var(--app-tabbar-h) + env(safe-area-inset-bottom) + 24px);
}

/* Page header: Oswald title top left, optional 44px icon button right. */
body.app-shell .app-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 52px;
  margin-bottom: 12px;
}

body.app-shell .app-title {
  margin: 0;
  font-family: Oswald, sans-serif;
  font-size: 28px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--app-text);
}

body.app-shell .app-icon-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 9999px;
  border: 1px solid var(--app-border);
  background: var(--app-surface);
  color: var(--app-text);
  cursor: pointer;
}

body.app-shell .app-flash {
  margin: calc(env(safe-area-inset-top) + 8px) 16px 0;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid var(--app-border-strong);
  background: var(--app-surface);
  font-size: 14px;
}
body.app-shell .app-flash--alert,
body.app-shell .app-flash--danger { border-color: #93000a; }

/* "Back to your game" banner. */
body.app-shell .app-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  margin-bottom: 16px;
  padding: 10px 14px;
  border: 1px solid var(--app-teal);
  border-radius: 14px;
  background: rgba(28, 222, 202, 0.06);
  color: var(--app-text);
  text-decoration: none;
}
body.app-shell .app-banner-icon,
body.app-shell .app-banner-chevron { color: var(--app-teal); flex-shrink: 0; }
body.app-shell .app-banner-text { display: flex; flex-direction: column; flex: 1; min-width: 0; }
body.app-shell .app-banner-title {
  font-family: Oswald, sans-serif;
  font-size: 16px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body.app-shell .app-banner-sub { font-size: 13px; color: var(--app-muted); }

/* Create a game: full width, 52px, outlined secondary, with clear space. */
body.app-shell .app-create-btn {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 52px;
  margin: 8px 0 24px;
  border: 1px solid var(--app-border-strong);
  border-radius: 14px;
  background: var(--app-surface);
  color: var(--app-text);
  font-family: Oswald, sans-serif;
  font-size: 16px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}
body.app-shell .app-create-btn .material-symbols-outlined { color: var(--app-teal); }

/* Bottom tab bar. */
body.app-shell .app-tabbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  display: flex;
  justify-content: center;
  background: var(--app-surface-low);
  border-top: 1px solid var(--app-border);
  padding-bottom: env(safe-area-inset-bottom);
}
/* With interactive-widget=resizes-content the keyboard would lift the bar
   above the keys; native apps hide it while typing (lib/keyboardInset.js). */
html[data-app-keyboard="open"] body.app-shell .app-tabbar { display: none; }

body.app-shell .app-tab {
  flex: 1;
  max-width: 180px;
  height: var(--app-tabbar-h);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--app-muted);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-decoration: none;
}

body.app-shell .app-tab-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 30px;
  border-radius: 15px;
  transition: background-color 0.15s ease;
}

/* A margin, not flex gap (docs/reference/app-shell.md "Old Android WebViews"). */
body.app-shell .app-tab-label { margin-top: 4px; }

body.app-shell .app-tab.is-active { color: var(--app-teal); }
body.app-shell .app-tab.is-active .app-tab-pill { background: rgba(28, 222, 202, 0.16); }
body.app-shell .app-tab.is-active .material-symbols-outlined { font-variation-settings: "FILL" 1; }

/* Tab switching (docs/reference/app-shell.md "Tab switching"): a tab answers
   on touch-down (app_tabbar_controller), so no double-tap-zoom wait, no grey
   tap flash, no long-press link menu or text selection, and the bar never
   starts a page scroll (a scroll begun on a tab would cancel its press). */
body.app-shell .app-tabbar {
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}
body.app-shell .app-tab {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}
/* :active is the same press before app_tabbar_controller has connected (a
   first load over a slow network), so a touch always shows. */
body.app-shell .app-tab.is-pressed .app-tab-pill,
body.app-shell .app-tab:active .app-tab-pill {
  background: rgba(28, 222, 202, 0.28);
  transform: scale(0.94);
}
body.app-shell .app-tab-pill { transition: background-color 0.15s ease, transform 0.08s ease; }

/* The target screen's skeleton (.app-tab-skeleton) styles itself inline:
   app_shell/_tab_skeleton_styles, shared with the tracker layout. */
@media (prefers-reduced-motion: reduce) {
  body.app-shell .app-tab-pill { transition: none; }
  body.app-shell .app-tab.is-pressed .app-tab-pill,
  body.app-shell .app-tab:active .app-tab-pill { transform: none; }
}

/* Play: segmented control, presence line, card grids, empty states. */
body.app-shell .app-segmented {
  display: flex;
  gap: 4px;
  padding: 4px;
  margin-bottom: 12px;
  border: 1px solid var(--app-border);
  border-radius: 9999px;
  background: var(--app-surface-low);
}

body.app-shell .app-seg {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  border: 0;
  border-radius: 9999px;
  background: transparent;
  color: var(--app-muted);
  font-family: Oswald, sans-serif;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
}

body.app-shell .app-seg.is-active {
  background: rgba(28, 222, 202, 0.14);
  color: var(--app-teal);
}

body.app-shell .app-seg-count {
  min-width: 22px;
  padding: 2px 6px;
  border-radius: 9999px;
  background: var(--app-surface);
  font-size: 11px;
  line-height: 1.2;
}
body.app-shell .app-seg.is-active .app-seg-count { background: rgba(28, 222, 202, 0.22); }

/* The shared presence partial carries the index page's negative margins. */
body.app-shell .app-presence #lobby_index_presence > div { margin: 0 0 12px; }

body.app-shell .app-card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
@media (min-width: 640px) {
  body.app-shell .app-card-grid { grid-template-columns: 1fr 1fr; }
}

body.app-shell .app-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 40px 16px;
  border: 1px solid var(--app-border);
  border-radius: 16px;
  background: var(--app-surface-low);
}
body.app-shell .app-empty-icon { font-size: 32px; color: var(--app-muted); margin-bottom: 12px; }
body.app-shell .app-empty-title {
  margin: 0 0 6px;
  font-family: Oswald, sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
body.app-shell .app-empty-text { margin: 0; max-width: 32ch; font-size: 14px; color: var(--app-muted); }

/* "Your playgroups" (B2026-10-09-4): the member's groups' tables as thin rows
   above the public cards, then an "Open to everyone" heading over them. The
   wrapper is toggled with [hidden], so it stays block: a display class would
   beat [hidden] (app/views/CLAUDE.md). */
body.app-shell .app-group-band { display: block; }
body.app-shell .app-group-band[hidden] { display: none; }
body.app-shell .app-band { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }
body.app-shell .app-band--public { margin: 28px 0 12px; }
body.app-shell .app-band-title {
  margin: 0;
  font-family: Oswald, sans-serif;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--app-muted);
}
body.app-shell .app-band-count {
  font-family: Oswald, sans-serif;
  font-size: 13px;
  color: var(--app-text);
  font-variant-numeric: tabular-nums;
}
body.app-shell .app-band-rule { flex: 1; height: 1px; background: var(--app-border); }
body.app-shell .app-band-sub { margin: 0 0 14px; font-size: 13px; color: var(--app-muted); }
body.app-shell .app-group-rows { display: flex; flex-direction: column; gap: 12px; }
/* The containers are `display: contents` lists; their rows are the column's items. */
body.app-shell .app-group-rows > ul { list-style: none; margin: 0; padding: 0; }

/* Under "Open to everyone" when only the member's groups have tables. */
body.app-shell .app-thin-empty {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border: 1px dashed var(--app-border-strong);
  border-radius: 14px;
  font-size: 13px;
  color: var(--app-muted);
}
body.app-shell .app-thin-empty[hidden] { display: none; }
body.app-shell .app-thin-empty .material-symbols-outlined { font-size: 18px; }

/* Decks: search, rows, Playtest. Rows and buttons are at least 44px tall. */
body.app-shell .app-search {
  position: relative;
  margin-bottom: 12px;
}
body.app-shell .app-search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--app-muted);
  pointer-events: none;
}
body.app-shell .app-search-input,
body.app-shell .app-sheet-input {
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid var(--app-border-strong);
  border-radius: 12px;
  background: var(--app-surface-low);
  color: var(--app-text);
  font-size: 16px; /* 16px keeps iOS from zooming into the field */
}
body.app-shell .app-search-input { padding-left: 46px; }
body.app-shell .app-search-input:focus,
body.app-shell .app-sheet-input:focus {
  outline: none;
  border-color: var(--app-teal);
  box-shadow: none;
}

body.app-shell .app-deck-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

body.app-shell .app-deck-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 8px 10px 8px 8px;
  border: 1px solid var(--app-border);
  border-radius: 14px;
  background: var(--app-surface);
}
body.app-shell .app-deck-row[hidden] { display: none; }

body.app-shell .app-deck-thumb {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 48px;
  overflow: hidden;
  border-radius: 10px;
  background: var(--app-surface-low);
  color: var(--app-muted);
}
body.app-shell .app-deck-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }

body.app-shell .app-deck-text { flex: 1; min-width: 0; }
body.app-shell .app-deck-name {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 15px;
  font-weight: 500;
}
body.app-shell .app-deck-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-top: 4px;
  font-size: 12px;
  color: var(--app-muted);
}
body.app-shell .app-deck-pips { display: inline-flex; gap: 2px; font-size: 12px; }
body.app-shell .app-deck-reason { margin-top: 4px; font-size: 12px; line-height: 1.35; color: #fbbf24; }

body.app-shell .app-playtest-form { flex-shrink: 0; margin: 0; }
body.app-shell .app-playtest-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 44px;
  padding: 0 14px 0 10px;
  border: 1px solid var(--app-border-strong);
  border-radius: 12px;
  background: transparent;
  color: var(--app-text);
  font-family: Oswald, sans-serif;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
body.app-shell .app-playtest-btn .material-symbols-outlined { color: var(--app-teal); }
body.app-shell .app-playtest-btn:disabled { opacity: 0.45; cursor: not-allowed; }
body.app-shell .app-playtest-btn:disabled .material-symbols-outlined { color: var(--app-muted); }

body.app-shell .app-no-match { margin: 16px 0; text-align: center; max-width: none; }
body.app-shell .app-empty-action { width: auto; padding: 0 20px; margin: 20px 0 0; }

/* Bottom sheets: a <dialog> pinned to the bottom of the screen (import, Add a
   deck link, Account). Above the on-screen keyboard: on Android the viewport
   meta's interactive-widget=resizes-content shrinks the layout viewport (and
   100dvh) with it; elsewhere lib/keyboardInset.js publishes
   --app-keyboard-inset (what the keyboard hides) and --app-visible-height.
   The height cap keeps the whole sheet on screen while typing and it scrolls
   inside, so its bottom links stay reachable. docs/reference/app-shell.md,
   "Bottom sheets and the keyboard". */
body.app-shell dialog.app-sheet {
  box-sizing: border-box;
  width: 100%;
  max-width: 560px;
  max-height: min(90dvh, calc(var(--app-visible-height, 100dvh) - 16px));
  margin: auto auto var(--app-keyboard-inset, 0px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 8px 16px calc(env(safe-area-inset-bottom, 0px) + 20px);
  border: 1px solid var(--app-border);
  border-bottom: 0;
  border-radius: 20px 20px 0 0;
  background: var(--app-surface);
  color: var(--app-text);
}
body.app-shell dialog.app-sheet::backdrop { background: rgba(0, 0, 0, 0.6); }

/* Sheet motion, CSS only: the sheet slides up from below the screen on
   showModal() and back down on close(), and the backdrop fades. @starting-style
   sets the first frame after opening; allow-discrete on display and overlay
   keeps a closing dialog rendered, in the top layer, until the slide ends.
   Only transform and opacity move, so a sheet that changes height while open
   (the import sheet's hand form) is never animated. Browsers without
   @starting-style (Chrome < 117, Safari < 17.5) show and hide at once.
   Open 280ms, Material standard decelerate; close 200ms, accelerate. The
   lobby's deck sheet (app_lobby.css) moves the same way. */
body.app-shell dialog.app-sheet {
  transform: translateY(calc(100% + var(--app-keyboard-inset, 0px)));
  transition:
    transform 200ms cubic-bezier(0.3, 0, 1, 1),
    overlay 200ms allow-discrete,
    display 200ms allow-discrete;
}
body.app-shell dialog.app-sheet[open] {
  transform: none;
  transition:
    transform 280ms cubic-bezier(0, 0, 0, 1),
    overlay 280ms allow-discrete,
    display 280ms allow-discrete;
}
body.app-shell dialog.app-sheet::backdrop {
  opacity: 0;
  transition:
    opacity 200ms linear,
    overlay 200ms allow-discrete,
    display 200ms allow-discrete;
}
body.app-shell dialog.app-sheet[open]::backdrop {
  opacity: 1;
  transition:
    opacity 280ms linear,
    overlay 280ms allow-discrete,
    display 280ms allow-discrete;
}
@starting-style {
  body.app-shell dialog.app-sheet[open] { transform: translateY(calc(100% + var(--app-keyboard-inset, 0px))); }
  body.app-shell dialog.app-sheet[open]::backdrop { opacity: 0; }
}
/* lib/openSheet's fallback where showModal() is missing or throws: an open
   dialog outside the top layer, so it pins itself to the bottom above
   everything and its shadow stands in for the backdrop. */
body.app-shell dialog.app-sheet.app-sheet--fallback {
  position: fixed;
  top: auto;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10000;
  transform: none;
  box-shadow: 0 0 0 100vmax rgba(0, 0, 0, 0.6);
}

/* iPad (and any screen at least 700px wide and 600px tall): a sheet glued to
   the bottom of a 1366px screen reads as a phone screen blown up, so it
   becomes a centred dialog with four round corners, the way iPad apps show a
   form sheet. It centres in the area above the keyboard (its bottom edge is
   --app-keyboard-inset) and never grows past 840px or the visible height. A
   phone in landscape (under 600px tall) and an iPad app in a narrow Split
   View keep the bottom sheet. It rises 24px and fades instead of sliding up
   from the screen edge. docs/reference/app-shell.md, "iPad". */
@media (min-width: 700px) and (min-height: 600px) {
  body.app-shell dialog.app-sheet {
    inset: 0 0 var(--app-keyboard-inset, 0px) 0;
    margin: auto;
    max-height: min(840px, calc(var(--app-visible-height, 100dvh) - 48px));
    padding-bottom: 20px;
    border-bottom: 1px solid var(--app-border);
    border-radius: 20px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
    opacity: 0;
    transform: translateY(24px);
    transition:
      transform 200ms cubic-bezier(0.3, 0, 1, 1),
      opacity 200ms linear,
      overlay 200ms allow-discrete,
      display 200ms allow-discrete;
  }
  body.app-shell dialog.app-sheet[open] {
    opacity: 1;
    transform: none;
    transition:
      transform 280ms cubic-bezier(0, 0, 0, 1),
      opacity 200ms linear,
      overlay 280ms allow-discrete,
      display 280ms allow-discrete;
  }
  @starting-style {
    body.app-shell dialog.app-sheet[open] { opacity: 0; transform: translateY(24px); }
  }
  /* The drag handle means "bottom sheet"; a centred dialog has none. */
  body.app-shell dialog.app-sheet > .app-sheet-handle { display: none; }
  body.app-shell dialog.app-sheet > .app-sheet-head { margin-top: 8px; }
}
/* Reduced motion: no slide, only a quick fade of sheet and backdrop. */
@media (prefers-reduced-motion: reduce) {
  body.app-shell dialog.app-sheet { transform: none; opacity: 0; }
  body.app-shell dialog.app-sheet[open] { opacity: 1; }
  body.app-shell dialog.app-sheet,
  body.app-shell dialog.app-sheet[open],
  body.app-shell dialog.app-sheet::backdrop,
  body.app-shell dialog.app-sheet[open]::backdrop {
    transition:
      opacity 120ms linear,
      overlay 120ms allow-discrete,
      display 120ms allow-discrete;
  }
  @starting-style {
    body.app-shell dialog.app-sheet[open] { transform: none; opacity: 0; }
  }
}

body.app-shell .app-sheet-handle {
  width: 40px;
  height: 4px;
  margin: 4px auto 8px;
  border-radius: 2px;
  background: var(--app-border-strong);
}
body.app-shell .app-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
body.app-shell .app-sheet-title {
  margin: 0;
  font-family: Oswald, sans-serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
body.app-shell .app-sheet-head form { margin: 0; }
body.app-shell .app-sheet-label { display: block; margin-bottom: 8px; font-size: 14px; color: var(--app-muted); }
body.app-shell .app-sheet-message:empty { display: none; }

body.app-shell .app-primary-btn,
body.app-shell .app-secondary-btn {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 52px;
  border-radius: 14px;
  font-family: Oswald, sans-serif;
  font-size: 16px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}
body.app-shell .app-primary-btn {
  margin-top: 16px;
  border: 0;
  background: var(--app-teal);
  color: #00201c;
}
body.app-shell .app-primary-btn:disabled { opacity: 0.6; cursor: progress; }
body.app-shell .app-secondary-btn {
  height: 44px;
  border: 1px solid var(--app-border-strong);
  background: transparent;
  color: var(--app-text);
  font-size: 14px;
}

body.app-shell .app-sheet-more {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--app-border);
}
body.app-shell .app-sheet-more-title { margin: 0 0 10px; font-size: 14px; color: var(--app-muted); }
body.app-shell .app-sheet-more-links { display: flex; gap: 8px; }

/* The picker sheet (app_shell/_picker_sheet, app_picker_controller): every
   <select> on an app page opens this list instead of Android's native picker.
   A short sheet; the title, close and search stay on top while a long list
   scrolls under them. A searchable list keeps one height so the sheet does not
   jump while the player types. Margins, never flex gap or inset (Chrome 81).
   docs/reference/app-shell.md "Pickers". */
body.app-shell dialog.app-picker { padding-top: 0; }
body.app-shell dialog.app-picker[data-searchable] {
  height: 70vh;
  height: min(70dvh, calc(var(--app-visible-height, 100dvh) - 16px));
}
body.app-shell .app-picker-top {
  position: sticky;
  top: 0;
  z-index: 1;
  padding-top: 8px;
  padding-bottom: 4px;
  background: var(--app-surface);
}
body.app-shell .app-picker-top .app-sheet-head { margin-bottom: 8px; }
body.app-shell .app-picker-top .app-sheet-title {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  min-width: 0;
  margin-right: 12px;
}
body.app-shell .app-picker-search { padding-bottom: 8px; }
body.app-shell .app-picker-search[hidden] { display: none; }
body.app-shell .app-picker-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
body.app-shell .app-picker-list { list-style: none; margin: 0; padding: 0; }
body.app-shell .app-picker-group {
  padding: 14px 14px 6px;
  font-family: Oswald, sans-serif;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--app-muted);
}
body.app-shell .app-picker-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52px;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 16px;
  line-height: 1.3;
  color: var(--app-text);
  cursor: pointer;
}
body.app-shell .app-picker-option + .app-picker-option { margin-top: 2px; }
body.app-shell .app-picker-option:active { background: rgba(230, 239, 236, 0.06); }
/* A tapped-open sheet focuses the current row without a ring; a key press
   (data-input=keyboard) brings the ring and focus tint back. */
body.app-shell dialog.app-picker[data-input="keyboard"] .app-picker-option:focus { background: rgba(230, 239, 236, 0.06); }
body.app-shell dialog.app-picker[data-input="keyboard"] .app-picker-option[aria-selected="true"]:focus { background: rgba(28, 222, 202, 0.2); }
body.app-shell dialog.app-picker[data-input="pointer"] .app-picker-option:focus-visible { outline: none; }
body.app-shell .app-picker-option[aria-selected="true"] {
  background: rgba(28, 222, 202, 0.14);
  color: var(--app-teal);
  font-weight: 500;
}
body.app-shell .app-picker-option[aria-disabled="true"] { opacity: 0.45; cursor: default; }
body.app-shell .app-picker-option-label { flex: 1; min-width: 0; overflow-wrap: anywhere; }
body.app-shell .app-picker-check { flex-shrink: 0; margin-left: 12px; color: var(--app-teal); }
body.app-shell .app-picker-empty { margin: 16px 14px; font-size: 14px; color: var(--app-muted); }
body.app-shell .app-picker-empty[hidden] { display: none; }

/* Reused website pages in app mode (application layout, app_mode?): the slim
   app header instead of the site navbar, and room for the tab bar on a tab
   root such as Stats. */
body.app-shell .app-page-header {
  position: sticky;
  top: 0;
  z-index: 35;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: calc(env(safe-area-inset-top) + 8px) 16px 8px;
  background: var(--app-bg);
  border-bottom: 1px solid var(--app-border);
}
body.app-shell .app-page-title {
  flex: 1;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-family: Oswald, sans-serif;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--app-text);
}
body.app-shell .app-back-btn { text-decoration: none; }
body.app-shell.app-shell--page > .flex.flex-col.h-screen { height: auto; min-height: calc(100dvh - 72px); }
body.app-shell.app-shell--tabbed main { padding-bottom: calc(var(--app-tabbar-h) + env(safe-area-inset-bottom) + 24px); }

/* Safety net for the store rules (docs/reference/app-shell.md): a Supporter,
   subscription or checkout link that a reused page still renders is never
   shown in app mode. Known surfaces are removed server-side; this catches the
   long tail. */
body.app-shell a[href^="/support"],
body.app-shell a[href^="https://playgroup.gg/support"],
body.app-shell a[href^="/subscriptions"],
body.app-shell a[href^="/premium"],
body.app-shell a[href*="checkout.stripe.com"],
body.app-shell a[href*="billing.stripe.com"] {
  display: none !important;
}

/* An explicit external link (opens the phone's browser) wears this icon. */
body.app-shell .app-external-icon { font-size: 16px; vertical-align: -3px; margin-left: 2px; }

/* Account sheet. */
body.app-shell .app-account-who { display: flex; flex-direction: column; gap: 2px; margin: 0 0 16px; }
body.app-shell .app-account-name { font-size: 16px; font-weight: 500; }
body.app-shell .app-account-email { font-size: 13px; color: var(--app-muted); overflow-wrap: anywhere; }
body.app-shell .app-account-form { margin: 0; }
body.app-shell .app-account-signout { gap: 8px; }
body.app-shell .app-account-danger-title {
  margin: 0 0 8px;
  font-family: Oswald, sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #ffb4ab;
}
body.app-shell .app-account-warning { margin: 0 0 12px; font-size: 13px; color: #fbbf24; }
body.app-shell .app-danger-btn {
  box-sizing: border-box;
  width: 100%;
  height: 52px;
  margin-top: 12px;
  border: 1px solid #93000a;
  border-radius: 14px;
  background: #93000a;
  color: #ffdad6;
  font-family: Oswald, sans-serif;
  font-size: 16px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}
body.app-shell .app-danger-btn:disabled { opacity: 0.4; cursor: not-allowed; }

/* Confirm and alert sheet (app_shell/_confirm_sheet_template, lib/appDialog.js):
   the message, then Cancel and the confirm action side by side, 52px each.
   An alert keeps only its OK button, full width. Grid, not flex gap, for old
   WebViews ("Old Android WebViews"). */
body.app-shell .app-confirm-message {
  margin: 8px 0 20px;
  font-size: 16px;
  line-height: 1.45;
  letter-spacing: normal;
  color: var(--app-text);
}
body.app-shell .app-confirm-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-gap: 8px;
  gap: 8px;
}
body.app-shell .app-confirm-actions > :only-child { grid-column: 1 / -1; }
body.app-shell .app-confirm-actions > button {
  height: 52px;
  margin: 0;
  padding: 0 8px;
  font-size: 15px;
}

/* Loading screen (app_shell/_loading_screen, app_loading_controller): its own
   styles are inline in the partial, so it paints centred before this file
   arrives. Here only Turbo's blue progress bar, which it replaces. The bar is a
   child of <html> placed BEFORE <body>, so no body.app-shell selector can reach
   it; :has() keys it off the body class instead, and !important beats the
   inline <style> Turbo injects. */
html:has(> body.app-shell) .turbo-progress-bar { display: none !important; }

/* Old Android WebViews (docs/reference/app-shell.md "Old Android WebViews"):
   the store app runs in the phone's own WebView, and one that was never updated
   (Chrome < 84) lays out flex containers without a gap, running icons, labels
   and rows together. aspect-ratio arrived just after flex gap (Chrome 88), so a
   browser without it gets the same spacing as margins. Grids are fine there. */
@supports not (aspect-ratio: 1 / 1) {
  body.app-shell .app-header > * + *,
  body.app-shell .app-page-header > * + *,
  body.app-shell .app-banner > * + *,
  body.app-shell .app-deck-row > * + * { margin-left: 12px; }
  body.app-shell .app-create-btn > * + *,
  body.app-shell .app-seg > * + *,
  body.app-shell .app-account-signout > * + *,
  body.app-shell .app-sheet-more-links > * + * { margin-left: 8px; }
  body.app-shell .app-segmented > * + *,
  body.app-shell .app-playtest-btn > * + * { margin-left: 4px; }
  body.app-shell .app-deck-meta > * { margin-right: 10px; }
  body.app-shell .app-stats-decks .app-deck-meta > * { margin-right: 0; }
  body.app-shell .app-deck-list > * + * { margin-top: 8px; }
  body.app-shell .app-account-who > * + * { margin-top: 2px; }
}
/* The app's Profile tab, /app/profile (app_shell/profile, the Stats tab until
   2026-10-08; docs/reference/app-shell.md "Profile and Account"). The class
   names keep their app-stats prefix. Reuses the deck page's number tiles (.app-facts in
   app_deck.css) and the Decks tab's rows (.app-deck-row in app_shell.css).
   Scoped under body.app-shell like every app style. */

body.app-shell .app-stats-section { margin-bottom: 20px; }
body.app-shell .app-stats-heading {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--app-muted);
}
body.app-shell .app-stats-facts { margin-bottom: 0; }

body.app-shell .app-stats-decks .app-deck-row { padding-right: 6px; }
body.app-shell .app-stats-chevron { flex-shrink: 0; color: var(--app-muted); }

/* The one link out: the full stats page on the website, in the browser. */
body.app-shell .app-stats-website {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  min-height: 64px;
  margin-top: 4px;
  padding: 12px 16px;
  border: 1px solid var(--app-border);
  border-radius: 14px;
  background: var(--app-surface-low);
  color: var(--app-text);
  text-decoration: none;
}
body.app-shell .app-stats-website-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
body.app-shell .app-stats-website-title { font-size: 15px; font-weight: 500; color: var(--app-teal); }
body.app-shell .app-stats-website-sub { font-size: 13px; line-height: 1.4; color: var(--app-muted); }
body.app-shell .app-empty + .app-stats-website { margin-top: 16px; }

/* Account sheet: the Help and legal group (contact, terms, privacy, deletion). */
body.app-shell .app-account-help-title {
  margin: 0 0 8px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--app-muted);
}
body.app-shell .app-account-help-list { margin: 0; padding: 0; list-style: none; }
body.app-shell .app-account-help-link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  min-height: 44px;
  font-size: 15px;
  color: var(--app-teal);
  text-decoration: none;
}
body.app-shell .app-account-help-sub { font-size: 13px; color: var(--app-muted); }

/* "3 games · 33% win rate": a visible separator with its own margins, not the
   row's flex gap, which old Android WebViews (Chrome < 84) ignore and run the
   two values together. docs/reference/app-shell.md "Old Android WebViews". */
body.app-shell .app-stats-decks .app-deck-meta { gap: 0; }
body.app-shell .app-stats-deck-sep { margin: 0 6px; }
@tailwind base;
@tailwind components;
@tailwind utilities;

/* Scryfall mana symbol SVG icons */
.mana-symbol {
  height: 1em;
  width: 1em;
  vertical-align: text-bottom;
  margin: 0 1px;
  display: inline;
}
.mana-symbol-sm {
  height: 0.95em;
  width: 0.95em;
  vertical-align: text-bottom;
  margin: 0 1px;
  display: inline;
}
.mana-symbol-lg {
  height: 1.5em;
  width: 1.5em;
  vertical-align: middle;
  margin: 0 1px;
  display: inline;
}

@layer base {
  html {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  }
}

/* Tier tables (commander tier list, color pages, precons) server-render rows
   past the visible limit with [data-tier-overflow]; the tier-expand Stimulus
   controller only toggles this container class. Keeping show/hide in one CSS
   rule (instead of per-row JS style writes) keeps the expand tap cheap. */
.tier-rows-collapsed [data-tier-overflow] {
  display: none;
}

/* live_sessions#index lobby cards are pushed identically to every connected
   browser via a shared turbo stream (LiveSessionIndexBroadcasts), so the
   partial can't branch on user_signed_in?. Both Join labels render; the
   page wrapper's data-viewer marker (set server-side, once, per page load)
   hides whichever one doesn't match the viewer. Broadcast-appended cards
   inherit the ancestor marker automatically since it's a CSS selector, not
   a per-card render decision. */
[data-viewer="guest"] [data-join-label="member"] {
  display: none;
}
[data-viewer="member"] [data-join-label="guest"] {
  display: none;
}
/* The lobby card's deck-fit line is per-viewer, filled client-side by
   lobby_bracket_fit_controller. Members get its height reserved from first
   paint so cards never jump; guests own no decks, so it never shows. */
[data-viewer="guest"] [data-bracket-fit-slot] {
  display: none;
}
/* The In Progress card renders both Continue and Watch, since a broadcast copy
   has no viewer. data-own-game (server-set on the index render, kept by
   lobby_own_game_controller after every broadcast) shows Continue to a seated
   viewer and Watch to everyone else. */
[id^="spectatable_session_card_"]:not([data-own-game]) [data-card-action="continue"],
[id^="spectatable_session_card_"][data-own-game] [data-card-action="watch"] {
  display: none;
}
/* A "Your playgroups" open table (B2026-10-09-4) renders both its action labels
   for the same reason: "Your table" for a seated viewer, Join or Full for
   everyone else, picked off the same data-own-game mark. */
[id^="live_session_card_"] [data-now-label="seated"],
[id^="live_session_card_"][data-own-game] [data-now-label="other"] {
  display: none;
}
[id^="live_session_card_"][data-own-game] [data-now-label="seated"] {
  display: revert;
}
/* The index card reuses the lobby's voice chip, whose icon class (mi-md-14)
   has no rule, so its glyph falls back to the icon font's 24px default. */
[data-index-seat] .live-vchip .mi {
  font-size: 13px;
}

/* begin custom tom-select styles */
.ts-control, .full .ts-control, 
.ts-wrapper.single.input-active .ts-control  {
  @apply rounded-lg bg-surface_container_low text-on-surface_variant border-2 border-outline focus:border-primary focus:outline-none focus:ring-0;
}

.ts-dropdown {
  @apply bg-surface_container_low text-on-surface_variant
}

.ts-control input {
  @apply bg-surface_container_low text-on-surface_variant
}

/* searchable-select (searchable_select_controller.js): the wrapper takes the
   select's own classes, so the control inside it is flat and the wrapper
   draws the field, with the native select's chevron. */
.searchable-select.ts-wrapper {
  @apply flex items-stretch pr-10 cursor-pointer;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 0.5rem center;
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
}
.searchable-select.ts-wrapper.focus {
  @apply border-primary;
}
.searchable-select .ts-control,
.searchable-select.full .ts-control,
.searchable-select.single.input-active .ts-control,
.searchable-select .ts-control input {
  @apply flex-1 items-center min-w-0 m-0 p-0 rounded-none border-0 bg-transparent shadow-none text-on-surface;
  font-size: inherit;
  line-height: 1.4;
}
.searchable-select-typing .ts-control > .item {
  display: none;
}
.searchable-select .ts-control input::placeholder {
  @apply text-on-surface_variant;
}
.searchable-select .ts-dropdown {
  @apply mt-1 rounded-[10px] border border-outline_variant bg-surface_container_low text-on-surface shadow-lg overflow-hidden;
  font-size: inherit;
  line-height: 1.4;
}
.searchable-select .ts-dropdown-content {
  max-height: min(18rem, 50vh);
}
.searchable-select .ts-dropdown .option,
.searchable-select .ts-dropdown .no-results {
  @apply px-3 py-2;
}
.searchable-select .ts-dropdown .no-results {
  @apply text-on-surface_variant;
}
.searchable-select .ts-dropdown .active {
  @apply bg-surface_container_high text-on-surface;
}
.searchable-select .ts-dropdown .selected {
  @apply text-primary;
}
/* end tom-select styles */

html { @apply overflow-y-auto}
  
 body {
    @apply text-on-surface bg-surface font-normal text-sm;

  }
  body > div:last-child > span + img {
    display: inline !important;
  }
  label {
    @apply text-white font-normal text-sm block;

  }

  .shirts label {
    @apply text-on-inverse_surface;
  }

  .nav-item {
    @apply block py-6 text-xl text-center font-normal text-on-surface_variant md:text-sm md:py-2 pl-3 pr-3;
  }

  
  .mobile-nav-item {
    @apply h-14 text-sm items-center rounded-full gap-3 mx-3 px-6 flex flex-row leading-none interactive-surface-surface_container_low text-on-surface_variant bg-inherit;
  
  }

  .mobile-nav-item.active {
    @apply interactive-surface-secondary_container md:text-on-surface text-on-secondary_container font-semibold ;
}

  .writing a {
    @apply text-primary
  }

  .sub-nav-item {
    @apply block py-2 pl-3 pr-4 w-full interactive-surface-surface_container_highest;
  }


  .card-title {
    @apply  font-medium text-base;
  }

  .card {
    @apply bg-surface_container_low p-4 rounded-md shadow-M3_Elevation_Dark_1;
  }

  .card-item {
    @apply  text-white;
  }

  .card-cmdr_img {
    @apply  sm:aspect-w-2 sm:aspect-h-1 aspect-w-2 aspect-h-1;
  }



  caption {
    @apply font-medium py-3  w-fit  }

  table {
    @apply text-left table-fixed w-full text-sm md:text-base;
  }
  .selected-tab {
    @apply text-white bg-pg_gray_accent rounded-full px-2 py-1 hover:text-white;
  }
  .hint {
    display: block;
    @apply text-on-surface_variant text-xs mt-1;
  }
  /*
  [aria-selected="true"] {
    @apply selected-tab;
  }*/

  tr {
    @apply border-b border-b-outline_variant last:border-b-0;
  }

  th {
    @apply h-14 font-medium
  }

  td, th{
    @apply overflow-hidden h-[52px] text-sm
  }

  th {
    @apply font-medium
  }

  select {
    @apply rounded-lg bg-surface_container_low  border-outline focus:outline-none focus:border-primary focus:ring-0
  }

  label.datetime {
    display: block;
  }
  .select .optional, .select .required {
    display: block;
  }

  textarea, input[type="text"], input[type="email"], input[type="password"], input[type="url"] {
    @apply rounded-lg
  }

  input {
    @apply rounded-lg
  }

  input[type="checkbox"] {
    @apply w-[18px] h-[18px] rounded-[2px] mr-2 -mt-1
  }

  span.page.next {
    @apply pl-3
  }

  span.page.prev {
    @apply pr-3
  }


  #error_explanation {
    @apply text-error
  }
  input[type="password"]:-webkit-autofill,
  input[type="password"]:-webkit-autofill:hover,
  input[type="password"]:-webkit-autofill:focus,
  input:-webkit-autofill,
  input:-webkit-autofill:hover,
  input:-webkit-autofill:focus,
  textarea:-webkit-autofill,
  textarea:-webkit-autofill:hover,
  textarea:-webkit-autofill:focus
  {
  -webkit-text-fill-color: #fff;
  /* -webkit-box-shadow: 0 0 0px 1000px #1b1b6c inset; */
  transition: background-color 5000s ease-in-out 0s;
  }
  .counter_kind {
    @apply flex flex-col gap-y-2 mt-4 mb-4
     
  }
  .deck_deck_options {
    @apply flex flex-col gap-y-2
  }
  .deck_counters {
    @apply grid grid-cols-2 gap-2
  }
  .counter_playgroups {
    @apply grid grid-cols-1 gap-2 mb-4

  }
  .counter_decks {
    @apply grid grid-cols-2 gap-2 mb-4
  }
  
  .notice {
    @apply text-sm text-on-primary text-center p-4 bg-primary w-full;
  }
  .rewind-notice {
    @apply text-sm text-on-primary text-center p-4 bg-primary w-full block hover:bg-primary/90 transition-colors relative z-0;
  }
  .danger {
    @apply p-4 mb-4 text-sm font-light text-white bg-pg_primary/50 rounded-md max-w-screen-xl mx-auto w-full;
  }
  .important {
    @apply text-sm bg-surface_container_highest w-full p-4 rounded-md max-w-screen-xl mx-auto w-full;
  }
  .alert {
    @apply  text-sm text-on-error text-left p-4 bg-error w-full mb-0.5 rounded-md max-w-screen-xl mx-auto w-full mt-4;
  }

  /* ── Site notice (layouts/partials/_site_notice, SiteNotice): outages and
     maintenance windows for signed-in players. Amber on purpose: it is the one
     warm full-width surface on the site, where teal already means good news
     (.notice, .rewind-notice) and error red means "you did something wrong".
     The card glyph sits tapped (turned 90deg, "not available right now") and
     taps once on the first page of a browser session. ── */
  @layer components {
  .site-notice {
    @apply bg-amber-400 text-amber-950;
  }
  .site-notice-row {
    @apply flex items-start gap-3 py-3;
  }
  .site-notice-card {
    @apply relative flex-none;
    width: 16px;
    height: 22px;
    /* The layout box stays upright; the tapped glyph is 22px wide. */
    margin: 0 3px;
    border: 1.5px solid currentColor;
    border-radius: 2.5px;
    transform: rotate(90deg);
  }
  /* Art window, then two rules of text box. Without the text box the tapped
     card reads as a battery with its charge showing. */
  .site-notice-card::before,
  .site-notice-card::after {
    content: "";
    position: absolute;
    left: 2px;
    right: 2px;
    background: currentColor;
  }
  .site-notice-card::before {
    top: 2px;
    height: 8px;
    border-radius: 1px;
    opacity: 0.4;
  }
  .site-notice-card::after {
    top: 12.5px;
    height: 1.5px;
    box-shadow: 0 3px 0 currentColor;
    opacity: 0.55;
  }
  .site-notice-card--tap {
    animation: site-notice-tap 300ms ease-out 450ms both;
  }
  .site-notice-body {
    @apply flex min-w-0 flex-1 flex-col gap-y-1 md:flex-row md:items-baseline md:justify-between md:gap-x-8;
  }
  .site-notice-message {
    @apply font-medium;
    font-size: 15px;
    line-height: 1.4;
    max-width: 72ch;
  }
  .site-notice-meta {
    @apply flex flex-wrap items-baseline gap-x-4 gap-y-1 text-sm md:flex-none md:whitespace-nowrap;
    color: rgb(69 26 3 / 0.8);
  }
  .site-notice-link {
    @apply font-medium text-amber-950 underline underline-offset-2;
    text-decoration-color: rgb(69 26 3 / 0.4);
  }
  .site-notice-link:hover {
    text-decoration-color: currentColor;
  }
  .site-notice-close {
    @apply -my-2 -mr-2 inline-flex h-10 w-10 flex-none items-center justify-center rounded-full transition-colors duration-150;
    color: rgb(69 26 3 / 0.7);
  }
  .site-notice-close:hover {
    @apply text-amber-950;
    background: rgb(69 26 3 / 0.1);
  }
  .site-notice-link:focus-visible,
  .site-notice-close:focus-visible {
    outline: 2px solid #451a03;
    outline-offset: 2px;
  }
  }
  @keyframes site-notice-tap {
    from { transform: rotate(0deg); }
    to { transform: rotate(90deg); }
  }
  @media (prefers-reduced-motion: reduce) {
    .site-notice-card--tap { animation: none; }
  }

  .button {
    @apply cursor-pointer !text-on-primary relative inline-flex flex-row items-center justify-center gap-x-2 px-6 text-sm font-medium interactive-surface-primary py-2.5 rounded-[6.25rem] tracking-[.00714em];
  }

  .button_tonal {
    @apply cursor-pointer !text-on-secondary_container relative inline-flex flex-row items-center justify-center gap-x-2 px-6 text-sm font-medium interactive-surface-secondary_container py-2.5 rounded-[6.25rem] tracking-[.00714em];
  }

  /* Same pill shape as .button_tonal, in the house supporter gold (#d4af37,
     the Premium Unlock component's eyebrow/hairline color) to mark a
     Supporter-gated action (a locked cosmetics tile's "Unlock" control).
     Deliberately NOT stock Tailwind amber: gold is Playgroup's one Supporter
     signal, and it must be the same gold everywhere. Quiet fill, hairline
     border that wakes on hover, matching the Premium Unlock card's hover. */
  .unlock_tonal {
    @apply cursor-pointer relative inline-flex flex-row items-center justify-center gap-x-2 px-6 text-sm font-medium py-2.5 rounded-[6.25rem] tracking-[.00714em] transition-colors;
    background-color: rgba(212, 175, 55, 0.08);
    color: #d4af37;
    border: 1px solid rgba(212, 175, 55, 0.35);
  }
  .unlock_tonal:hover {
    background-color: rgba(212, 175, 55, 0.14);
    border-color: rgba(212, 175, 55, 0.65);
  }
  .unlock_tonal:focus-visible {
    outline: 2px solid rgba(212, 175, 55, 0.8);
    outline-offset: 2px;
  }

  /* ── Playgroup Live "Console" surface vocabulary. HAML-side mirror of the game
     board's theme.css (.lm-* tokens) so the pre-game lobby/pregame flow carries
     the board's teal-hairline + glow chrome instead of a separate look.
     Inside @layer components (like the lobby vocabulary below) so single-purpose
     Tailwind utilities can override these on an instance — e.g. the session
     card's overflow-visible must beat .live-panel's overflow-hidden or the
     bracket popover gets clipped at the card edge. ── */
  @layer components {
  .live-panel {
    @apply relative overflow-hidden rounded-2xl;
    background: linear-gradient(180deg, rgba(28, 222, 202, 0.05), transparent 140px), #101a18;
    border: 1px solid rgba(28, 222, 202, 0.18);
    box-shadow: 0 0 0 1px rgba(28, 222, 202, 0.10),
                0 24px 60px -14px rgba(0, 0, 0, 0.70),
                0 0 56px -12px rgba(28, 222, 202, 0.06);
  }
  .live-raised {
    background: #18211f;
    border: 1px solid rgba(28, 222, 202, 0.10);
  }
  .live-field {
    @apply border border-outline_variant;
    background: #0c1413;
  }
  .live-kicker {
    @apply font-oswald uppercase font-semibold;
    font-size: 11px;
    letter-spacing: 0.18em;
    color: rgba(28, 222, 202, 0.72);
  }
  }

  /* ── Lobby control vocabulary. squared = pressable, round = read-only; color
     encodes state, never interactivity. Mirrors the sketch
     (docs/plans/live-lobby-redesign-sketch.html) and the board theme.css .lm-*
     tokens (.lm-btn/.lm-chip squared, .lm-badge/.lm-tag round).
     Wrapped in @layer components so Tailwind utilities (notably `.hidden`, which
     drives the hostActions/nonHostActions reveal) win over these `display`
     declarations — an unlayered rule would otherwise beat the utilities layer. ── */
  @layer components {

  /* Fact pill — round, hairline, read-only. Never reacts to hover. */
  .live-fact {
    @apply inline-flex items-center gap-1.5 font-oswald uppercase;
    border-radius: 999px;
    border: 1px solid rgba(63, 73, 71, 0.55);
    color: #93a49f;
    font-size: 11px;
    letter-spacing: 0.1em;
    padding: 7px 13px;
    line-height: 1;
  }
  .live-fact b { font-weight: 700; color: #dee6e3; font-variant-numeric: tabular-nums; }
  .live-fact--good { color: rgba(28, 222, 202, 0.82); border-color: rgba(28, 222, 202, 0.30); }
  .live-fact--good b { color: rgba(28, 222, 202, 0.90); }

  /* Setting chip — squared, pressable. Caret (menu) or switch glyph (toggle).
     On-state (.live-ctrl--on) tints teal so an active toggle can't read as a
     plain button. */
  .live-ctrl {
    @apply inline-flex items-center gap-2 font-oswald uppercase cursor-pointer;
    border-radius: 8px;
    border: 1px solid #3f4947;
    background: #18211f;
    color: #93a49f;
    font-size: 11px;
    letter-spacing: 0.1em;
    padding: 7px 13px;
    line-height: 1;
    transition: border-color 0.14s ease, color 0.14s ease, background 0.14s ease;
  }
  .live-ctrl:hover { border-color: #1cdeca; color: #1cdeca; }
  .live-ctrl b { font-weight: 700; color: #dee6e3; font-variant-numeric: tabular-nums; }
  .live-ctrl__caret { font-size: 8px; opacity: 0.7; }
  .live-ctrl--on { background: rgba(28, 222, 202, 0.10); border-color: rgba(28, 222, 202, 0.40); color: #1cdeca; }
  .live-ctrl--on b { color: #1cdeca; }
  .live-ctrl--on:hover { color: #1cdeca; }
  /* A switch the table cannot use right now (its title says why). */
  .live-ctrl:disabled { opacity: 0.45; cursor: not-allowed; }
  .live-ctrl:disabled:hover { border-color: #3f4947; color: #93a49f; }

  /* Toggle glyph inside a setting chip. */
  .live-switch {
    width: 20px; height: 11px; border-radius: 99px;
    border: 1px solid currentColor; position: relative; opacity: 0.85; flex-shrink: 0;
  }
  .live-switch::after {
    content: ""; position: absolute; top: 1px; left: 2px;
    width: 7px; height: 7px; border-radius: 50%; background: currentColor;
    transition: left 0.14s ease, right 0.14s ease;
  }
  .live-ctrl--on .live-switch::after { left: auto; right: 2px; }

  /* Primary action — teal fill, squared. At most ONE per screen. */
  .live-primary {
    @apply inline-flex items-center justify-center gap-2 font-oswald uppercase font-semibold cursor-pointer;
    border-radius: 8px;
    background: #1cdeca;
    color: #04231f;
    border: 1px solid #1cdeca;
    font-size: 13px;
    letter-spacing: 0.08em;
    padding: 12px 22px;
    box-shadow: 0 0 24px -8px rgba(28, 222, 202, 0.55);
    transition: background 0.14s ease;
  }
  .live-primary:hover { background: #2ce6d3; }
  .live-primary:disabled { opacity: 0.38; cursor: not-allowed; box-shadow: none; }

  /* Secondary action — raised fill, outline, bright label, squared. Hover teal.
     (Consumed in Phase 2's seat cards; defined now for reuse.) */
  .live-secondary {
    @apply inline-flex items-center justify-center gap-2 font-oswald uppercase cursor-pointer;
    border-radius: 8px;
    background: #18211f;
    border: 1px solid #3f4947;
    color: #dee6e3;
    font-size: 11px;
    letter-spacing: 0.14em;
    padding: 8px 14px;
    transition: border-color 0.14s ease, color 0.14s ease, background 0.14s ease;
  }
  .live-secondary:hover { border-color: #1cdeca; color: #1cdeca; }
  /* Keyboard users get the same "this one" signal a mouse gets from :hover.
     Same ring idiom as .live-seat-pick, offset outward so the button's own
     border stays readable. */
  .live-secondary:focus-visible { outline: 2px solid #1cdeca; outline-offset: 2px; }
  .live-secondary--danger { background: rgba(248, 113, 113, 0.12); border-color: rgba(248, 113, 113, 0.40); color: #f87171; }
  .live-secondary--danger:hover { background: rgba(248, 113, 113, 0.22); border-color: rgba(248, 113, 113, 0.60); color: #f87171; }

  /* Quiet action — text + dotted underline, for rare / escape actions. */
  .live-quiet {
    @apply inline-flex items-center gap-1.5 font-oswald uppercase cursor-pointer;
    background: transparent;
    border: 0;
    border-bottom: 1px dotted #3f4947;
    color: #93a49f;
    font-size: 11px;
    letter-spacing: 0.14em;
    padding: 5px 2px 3px;
    transition: color 0.14s ease, border-color 0.14s ease;
  }
  .live-quiet:hover { color: #f87171; border-bottom-color: rgba(248, 113, 113, 0.60); }

  /* Seat token — small round disc carrying the turn-order number (Phase 2). */
  .live-seat-disc {
    width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 12px;
    color: #06100e; box-shadow: 0 0 0 2px rgba(8, 14, 12, 0.5);
  }

  /* Player chip — squared raised identity container w/ chevron (Phase 2). */
  .live-player-chip {
    @apply inline-flex items-center gap-2 cursor-pointer;
    background: rgba(8, 14, 12, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    padding: 5px 10px;
    color: #dee6e3;
    text-align: left;
    transition: border-color 0.14s ease;
  }
  .live-player-chip:hover { border-color: #1cdeca; }
  .live-player-chip__name { @apply font-medium; font-size: 14px; }
  /* Phase 5: the chip is the pressable player-card trigger. The chevron marks it
     openable per the control vocabulary (squared + caret = pressable); it tints
     teal on hover alongside the border. */
  .live-player-chip__car { flex-shrink: 0; font-size: 15px; line-height: 1; color: #93a49f; opacity: 0.7; }
  .live-player-chip:hover .live-player-chip__car { color: #1cdeca; opacity: 1; }

  /* ── Seat cards (Phase 2 seat-card merge). One full-bleed card per seat:
     seat-color rail, commander art + bottom scrim, header (seat disc + player
     chip + voice chip + kick), deck body pinned to the scrim, readiness/Change
     footer. Empty seats reuse the shell as a dashed invite. Mirrors the sketch
     (docs/plans/live-lobby-redesign-sketch.html). ── */
  .live-seat-card {
    @apply relative flex flex-col overflow-hidden;
    border-radius: 16px;
    border: 1px solid rgba(28, 222, 202, 0.16);
    background: #18211f;
    min-height: 15.5rem;
    transition: border-color 0.16s ease;
    /* Sized by the card's own width, not the window: the grid puts 1, 2 or 3
       cards across, so a card's width varies more than the viewport's. */
    container: seat-card / inline-size;
  }
  .live-seat-card:hover { border-color: rgba(28, 222, 202, 0.42); }
  .live-seat-card__rail { position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px; border-radius: 3px; z-index: 12; }
  .live-seat-card__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; z-index: 1; }
  .live-seat-card__scrim {
    position: absolute; inset: 0; z-index: 2;
    background: linear-gradient(180deg, rgba(8, 14, 12, 0.06) 0%, rgba(8, 14, 12, 0.5) 45%, rgba(10, 16, 14, 0.96) 100%);
  }
  /* Three zones, one job each (2026-09-24): the header says WHO sits here
     (seat, player, read-only voice/camera facts), the body shows the deck, the
     footer holds the viewer's OWN actions. Every header item shares one row
     height (--seat-row-h) so the squared player chip (pressable) and the round
     fact chips (read-only) line up as one system. The header wraps instead of
     overlapping: the facts drop to a second line before the name is covered. */
  .live-seat-card__inner {
    --seat-row-h: 28px;
    position: relative; z-index: 10; flex: 1 1 auto; display: flex; flex-direction: column; padding: 14px 16px 12px 19px;
  }
  .live-seat-card__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
  .live-seat-card__top-left { display: flex; align-items: center; gap: 8px; flex: 1 1 auto; min-width: 0; }
  .live-seat-card__top-right { display: flex; align-items: center; gap: 6px; flex-shrink: 0; margin-left: auto; }
  /* Scoped to the inner wrapper that defines --seat-row-h: the open-seat card has
     none, and an undefined var let its disc collapse to the digit's width. */
  .live-seat-card__inner .live-seat-disc { width: var(--seat-row-h); height: var(--seat-row-h); font-size: calc(var(--seat-row-h) * 0.5); }
  .live-seat-card .live-player-chip { height: var(--seat-row-h); padding: 0 10px; min-width: 0; max-width: 100%; }
  .live-seat-card .live-player-chip__name { min-width: 0; }
  .live-seat-card .live-vchip { height: var(--seat-row-h); padding: 0 11px; }
  /* The voice chip's icon carries a dead size class (mi-md-14 is not built), so
     it rendered at the icon font's full size, twice the chip's text. */
  .live-seat-card .live-vchip .mi { font-size: 14px; }
  .live-seat-card .live-seat-kick { width: var(--seat-row-h); height: var(--seat-row-h); }
  .live-seat-card .live-seat-card__first-tag { height: var(--seat-row-h); padding: 0 11px; }
  .live-seat-card__body { margin-top: auto; padding-top: 12px; }
  .live-seat-card__deck-k {
    @apply font-oswald uppercase block;
    font-size: 9px; letter-spacing: 0.24em; color: rgba(28, 222, 202, 0.72); margin-bottom: 4px;
  }
  .live-seat-card__dname {
    @apply font-oswald uppercase block;
    font-size: 16px; font-weight: 600; letter-spacing: 0.04em; line-height: 1.15;
  }
  /* Win-odds line under the deck name. Empty until renderStats fills the % (which
     brings its own large font); the min-height reserves the row so cards don't
     jump when odds land. */
  .live-seat-card__odds { display: block; margin-top: 3px; min-height: 1.1em; font-size: 12px; }
  .live-seat-card__links { margin-top: 8px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
  .live-seat-card__foot {
    position: relative; z-index: 10;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    background: rgba(8, 14, 12, 0.45);
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 10px;
    padding: 9px 16px 9px 19px;
    min-height: 50px;
  }
  /* The viewer's own buttons (camera, Change deck), right-aligned; they wrap
     under the readiness line on a narrow card rather than squeezing it. */
  .live-seat-card__actions { display: flex; align-items: center; gap: 8px; margin-left: auto; min-width: 0; }
  .live-seat-card__actions .live-secondary { min-width: 0; }
  .live-seat-card__cam-label { min-width: 0; max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .live-seat-card__ready {
    @apply inline-flex items-center font-oswald uppercase;
    gap: 7px; font-size: 10px; letter-spacing: 0.18em; color: #1cdeca;
  }
  .live-seat-card__ready::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
  .live-seat-card__ready.is-waiting { color: #93a49f; }

  /* "Goes first" tag (Phase 6 spotlight rework) — dormant in every seat card's
     header, revealed only via .live-seat-card--picked further down. Deliberately
     NOT border/box-shadow (that channel belongs to voice's is-speaking ring). */
  .live-seat-card__first-tag {
    display: none;
    @apply items-center font-oswald uppercase;
    font-size: 9.5px; letter-spacing: 0.16em; line-height: 1; flex-shrink: 0;
    color: #041210; background: #fbbf24; border-radius: 999px; padding: 4px 10px;
  }

  /* Voice chip — round read-only badge; state by color, not shape. */
  .live-vchip {
    @apply inline-flex items-center font-oswald uppercase;
    gap: 6px; font-size: 9.5px; letter-spacing: 0.16em; color: #93a49f;
    background: rgba(8, 14, 12, 0.55); border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 999px; padding: 4px 10px; opacity: 0.85;
  }
  .live-vchip--audio { color: #1cdeca; border-color: rgba(28, 222, 202, 0.35); opacity: 1; }
  .live-vchip--listening { opacity: 1; }

  /* Kick — small red-tinted danger button; host-revealed via hostActions. */
  .live-seat-kick {
    @apply inline-flex items-center justify-center cursor-pointer shrink-0;
    width: 26px; height: 26px; border-radius: 8px; line-height: 1;
    background: rgba(248, 113, 113, 0.12); border: 1px solid rgba(248, 113, 113, 0.4); color: #f87171;
    transition: background 0.14s ease;
  }
  .live-seat-kick:hover { background: rgba(248, 113, 113, 0.22); }

  /* Roomy seat cards: a wide card (one or two across on a desktop) gets more
     margin and bigger type. Narrow cards (three across, phones) keep the
     compact sizes above. Container queries style the card's descendants only,
     never the card itself. */
  @container seat-card (min-width: 520px) {
    .live-seat-card__inner { --seat-row-h: 32px; padding: 20px 24px 16px 27px; }
    .live-seat-card__top-left { gap: 10px; }
    .live-seat-card__top-right { gap: 8px; }
    .live-player-chip__name { font-size: 15px; }
    .live-seat-card .live-vchip { font-size: 10.5px; padding: 0 13px; }
    .live-seat-card .live-seat-card__first-tag { font-size: 10.5px; }
    .live-seat-card__body { padding-top: 16px; }
    .live-seat-card__deck-k { font-size: 10px; margin-bottom: 6px; }
    .live-seat-card__dname { font-size: 20px; }
    .live-seat-card__odds { font-size: 13px; }
    .live-seat-card__foot { padding: 12px 24px 12px 27px; min-height: 58px; }
    .live-seat-card__ready { font-size: 11px; }
    .live-seat-card__foot .live-secondary { font-size: 12px; padding: 9px 16px; }
  }

  /* Empty seat — dashed shell repeating the invite. */
  .live-seat-card--empty {
    border-style: dashed; border-color: rgba(63, 73, 71, 0.8);
    background: rgba(255, 255, 255, 0.012);
    align-items: center; justify-content: center; text-align: center;
    padding: 24px 20px;
  }
  .live-seat-card--empty .live-seat-card__rail { opacity: 0.4; }
  .live-seat-card__empty-title {
    @apply inline-flex items-center font-oswald uppercase;
    gap: 8px; font-size: 13px; letter-spacing: 0.2em; color: #93a49f;
  }
  .live-seat-card__empty-sub { font-size: 12px; color: #93a49f; opacity: 0.75; margin: 8px 0 14px; max-width: 22rem; }

  /* Amber "bracket mismatch" fact — a read-only fact-pill variant (still round,
     no hover) mirroring the seat-card warning chip's tone. Used by the deck
     confirmation bar's legality slot. */
  .live-fact--warn { color: #fbbf24; border-color: rgba(251, 191, 36, 0.40); }
  .live-fact--warn b { color: #fbbf24; }

  /* ── Starting-player takeover (Phase 6, docs/plans/live-lobby-redesign.md). The
     lobby flips in place on start: data-lobby-mode="pick" on the root reveals a
     dormant pick overlay on each seat card, folds the deck section + empty seats,
     hides the waiting-mode escape/kick/randomize-seats controls, and swaps the
     footer to Randomize + Start game. The overlay is the single hit target per
     card (the player chip yields via the Phase 5 hook); guests get it disabled
     via hostOnlyControl. ── */
  .live-seat-pick {
    position: absolute; inset: 0; z-index: 20; display: none;
    flex-direction: column; align-items: stretch; justify-content: flex-start;
    padding: 12px; margin: 0; border: 0; cursor: pointer;
    background: transparent; text-align: left;
    transition: background 0.14s ease;
  }
  [data-lobby-mode="pick"] .live-seat-pick { display: flex; }
  .live-seat-pick:hover { background: rgba(28, 222, 202, 0.10); }
  .live-seat-pick:focus-visible { outline: 2px solid #1cdeca; outline-offset: -2px; }
  .live-seat-pick__tag {
    @apply font-oswald uppercase;
    align-self: flex-end;
    font-size: 9.5px; letter-spacing: 0.18em; color: #041210;
    background: #1cdeca; border-radius: 999px; padding: 4px 10px;
    opacity: 0; transition: opacity 0.14s ease;
  }
  .live-seat-pick:hover .live-seat-pick__tag { opacity: 1; }
  /* Guests: overlay disabled + visually inert (no hover tint, no hint tag). */
  .live-seat-pick:disabled { cursor: default; }
  .live-seat-pick:disabled:hover { background: transparent; }
  .live-seat-pick:disabled .live-seat-pick__tag { display: none; }

  /* Roulette spotlight sweep + terminal pick. Border/box-shadow on the seat-card
     ROOT is voice's is-speaking channel ALONE (see the [data-voice-identity]
     rule further down) — the old amber roulette/picked glow lived there too and
     the two fought visually whenever a player spoke during the pick. Neither
     state below touches border or box-shadow; the sweep dims via `filter`
     (never transform/opacity/scale — the grid's overlap math assumes cards
     never resize or fade) and the terminal pick reveals a dormant tag instead
     of a glow.

     .is-rouletting is toggled on #lobbySeatGrid by starting-player-picker for
     the animation's duration (added at start, removed when the tick loop ends);
     pregame_channel's handleStartingPlayer also removes it defensively so a
     terminal event that outruns a client's local animation timer still ends the
     dim cleanly. Every card dims except the current --roulette cursor card,
     which stays full brightness and gets an amber background wash (a ::after
     layer, z-indexed above the art/scrim but below the card's text) so the
     sweep reads as a spotlight scanning the table. */
  .is-rouletting .live-seat-card {
    filter: brightness(0.55) saturate(0.6);
    transition: filter 100ms ease;
  }
  .is-rouletting .live-seat-card.live-seat-card--roulette {
    filter: none;
  }
  .live-seat-card--roulette::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 5;
    background: rgba(251, 191, 36, 0.22);
    pointer-events: none;
  }
  @media (prefers-reduced-motion: reduce) {
    .is-rouletting .live-seat-card { transition: none; }
  }

  /* Deck-picker roll reel — the same gesture as the seat roulette above, applied
     to the deck rows, and deliberately the same vocabulary: dim the list, keep
     the cursor row bright with an amber ::after wash. The wash is a ::after
     rather than a `background` for the reason the seat card gives — the row's
     own `bg-primary_container` (a utility, added by selectDeck) would otherwise
     beat a layered background and the selected row would sit out the sweep.

     The 28-step / 30→240ms schedule is duplicated in deck_picker_controller,
     matching starting_player_picker_controller and the tracker's useSlotPick.
     NOT extracted into a shared helper on purpose: the seat roll is server-
     authored (PlaygroupExperiments::StartingSeatRoller mints every Randomize
     and refuses a client roll), the deck roll is purely local, and the two need
     to stay free to diverge. */
  .is-deck-rolling [data-deck-id] {
    filter: brightness(0.55) saturate(0.6);
    transition: filter 100ms ease;
    pointer-events: none;
  }
  .is-deck-rolling [data-deck-id].deck-row--rolling { filter: none; }
  .deck-row--rolling::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 5;
    border-radius: inherit;
    background: rgba(251, 191, 36, 0.18);
    pointer-events: none;
  }
  @media (prefers-reduced-motion: reduce) {
    .is-deck-rolling [data-deck-id] { transition: none; }
  }

  /* Where the roll landed — a RESULT, not a selection. Amber (the roll's colour)
     against selection's teal `ring-2`, so "rolled this" can never read as
     "locked this in": the player still taps the row, and that is what keeps a
     reroll private — a DeckSelect writes an event and broadcasts the deck to
     every seat, so auto-locking would put every discarded roll on the table.
     `outline` rather than border/box-shadow: no utility on the row competes for
     it, so it needs no !important and stacks cleanly with the selection ring on
     a row that is both. */
  .deck-row--rolled {
    outline: 2px solid rgba(251, 191, 36, 0.55);
    outline-offset: -1px;
  }

  /* Terminal pick: no border/glow — reveal the dormant "Goes first" tag instead
     (markup + base styling live with the other header pieces above, near
     .live-player-chip). Solid amber pill (not the hairline .live-fact look):
     this is a fact ABOUT the seat, not a read-only stat. */
  .live-seat-card--picked .live-seat-card__first-tag { display: inline-flex; }

  /* Pick-mode section swaps, driven by data-lobby-mode="pick" on the lobby root:
     fold the deck section + empty seats, and hard-hide every waiting-mode control
     that would 422 / mis-fire during pregame (Leave, seat kick, Change deck,
     Randomize seats). !important beats the client toggling of the `hidden` class.

     CLOSE IS THE EXCEPTION and carries .lobby-escape-always to say so. It was
     hidden here for the same reason as the rest -- #destroy was waiting-only and
     would have 422'd -- but since 2026-09-04 the host CAN close a pregame lobby,
     and it is the only way out of one. Nothing else moves a session back from
     :pregame, so hiding this button is what wedged 267 sessions. Leave stays
     hidden: #leave_lobby is still waiting-only. */
  [data-lobby-mode="pick"] .lobby-deck-section,
  [data-lobby-mode="pick"] .live-seat-card--empty,
  [data-lobby-mode="pick"] .live-seat-card__foot .live-secondary,
  [data-lobby-mode="pick"] .live-quiet:not(.lobby-escape-always),
  [data-lobby-mode="pick"] .live-seat-kick,
  [data-lobby-mode="pick"] [data-testid="pg-lobby-randomize"] {
    display: none !important;
  }

  /* ── Deck confirmation bar (Phase 3 deck-picker two-state). Slim panel that
     stands in for the full #lobbyDeckPicker once the viewer locks a deck: a check
     glyph, "Your deck" kicker + deck name, a bracket-legality fact, and Change
     deck. Client-populated + toggled by pregame_channel (deckBar / deckBarName /
     deckBarBracket targets); never broadcast. Mirrors the sketch's .deck-bar. ── */
  .live-deck-bar {
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    padding: 14px clamp(16px, 3vw, 24px);
  }
  .live-deck-bar__check {
    width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0;
    display: inline-flex; align-items: center; justify-content: center;
    line-height: 1;
    background: rgba(28, 222, 202, 0.12); color: #1cdeca;
  }
  .live-deck-bar__info { flex: 1 1 auto; min-width: 12rem; }
  .live-deck-bar__name { display: block; font-size: 14px; font-weight: 500; color: #dee6e3; }

  /* ── Sticky start bar (Phase 4). One elevated chrome shared by BOTH
     _lobby_start_button (host, #lobbyStartBtn + CTA) and _lobby_waiting_hint
     (non-host, #lobbyWaitingHint, no CTA) — the two partials keep distinct roots
     so a roster broadcast can never hand a non-host a live start button. The
     #lobbyActions wrapper carries the sticky positioning (its containing block is
     what scrolls); this class is just the look. Mirrors the sketch's .startbar. ── */
  .live-startbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; flex-wrap: wrap;
    border-radius: 16px;
    padding: 13px clamp(16px, 3vw, 22px);
    background: linear-gradient(180deg, rgba(28, 222, 202, 0.06), transparent 120%), #121c1a;
    box-shadow: 0 0 0 1px rgba(28, 222, 202, 0.10), 0 18px 50px -10px rgba(0, 0, 0, 0.85);
  }
  .live-startbar__readiness { display: flex; align-items: center; gap: 14px; min-width: 0; }
  .live-startbar__dots { display: inline-flex; align-items: center; gap: 7px; }

  /* Somebody just sat down. Applied by lobby_warmup_controller to The Table's
     panel when a join tears the warm-up overlay away, so the host lands looking
     at the seat that filled instead of hunting for what changed. One pulse of
     the existing teal ring — the join chime is already playing, and two
     attention-getters at once is one too many. */
  .pg-warmup-flash {
    animation: pg-warmup-flash 1.6s ease-out 1;
  }
  @keyframes pg-warmup-flash {
    0%   { box-shadow: 0 0 0 1px rgba(28, 222, 202, 0.10), 0 24px 60px -14px rgba(0, 0, 0, 0.70); }
    18%  { box-shadow: 0 0 0 2px rgba(28, 222, 202, 0.72), 0 0 46px -6px rgba(28, 222, 202, 0.42); }
    100% { box-shadow: 0 0 0 1px rgba(28, 222, 202, 0.10), 0 24px 60px -14px rgba(0, 0, 0, 0.70); }
  }
  @media (prefers-reduced-motion: reduce) {
    .pg-warmup-flash { animation: none; }
  }

  /* ── Lobby warm-up OFFER, show_hand arm (experiment B2026-08-31-11). The
     control arm is plain .live-panel copy and needs none of this.

     The panel splits: a picture of the board on the left, the words on the
     right. The picture is the whole bet — the offer is skipped because "warm
     up while you wait" names something the host has never seen, so the tile
     draws it: their commander in the command zone, seven face-down cards
     fanned as an opening hand, and the pulse that says the table is still on
     the list while they play. It is aria-hidden; the heading says the same
     thing in words.

     Everything else here is deliberately quiet. The tile is the one loud
     element in the panel and the rest of the vocabulary is untouched.

     The tile's HEIGHT is a guardrail, not a look: this panel sits above the
     deck picker, and the metric the arm must not move is deck-pick rate. It is
     capped at both breakpoints rather than sized by the art. ── */
  .live-warmup-offer {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  @media (min-width: 768px) {
    .live-warmup-offer { grid-template-columns: minmax(280px, 5fr) minmax(0, 6fr); }
  }

  .live-warmup-table {
    position: relative;
    overflow: hidden;
    /* Phones stack, so this height is the whole cost of the tile above the deck
       picker. Kept under a fifth of a small viewport on purpose: the metric
       this arm must not move is deck-pick rate. */
    height: 132px;
    border-bottom: 1px solid rgba(28, 222, 202, 0.18);
    /* The base colour is only what shows if the mat image fails; the mat
       itself is an <img> the view renders, and the materials are the real
       ones off public/game-assets. Nothing here is drawn. */
    background: #0b1513;
  }
  /* The host's playmat, or Evolving Wilds. */
  .live-warmup-table__mat {
    /* Overcropped on purpose. A real playmat is a printed object with a set
       logo, an artist credit and a copyright line around its edge; showing
       those turns the tile into a picture OF a mat instead of a table seen up
       close. 10% off each side leaves the art and drops the print. */
    position: absolute; inset: -10%;
    width: 120%; height: 120%;
    /* Preflight's max-width 100% cap on img would pin the overcrop back to the
       tile's width and leave a bare strip down the right-hand edge. */
    max-width: none;
    object-fit: cover; object-position: center;
  }
  /* Flat, not a gradient. Its whole job is to sit the mat back far enough that
     the words in the other column still lead. */
  .live-warmup-table__scrim {
    position: absolute; inset: 0;
    /* Heavy enough that a bright mat cannot out-shout the heading in the other
       column. These are real playmats: some of them are very light. */
    background: rgba(7, 13, 12, 0.72);
  }
  @media (min-width: 768px) {
    .live-warmup-table {
      height: auto;
      min-height: 250px;
      border-bottom: 0;
      border-right: 1px solid rgba(28, 222, 202, 0.18);
    }
  }
  .live-warmup-table__zone {
    position: absolute; left: 16px; top: 13px;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
  }
  @media (min-width: 768px) {
    .live-warmup-table__zone { left: 20px; top: 16px; }
  }

  /* The commander, upright in the command zone. Real art when the host has
     picked; an empty slot, dashed, when they have not. */
  .live-warmup-card {
    position: absolute;
    left: 16px; top: 30px;
    width: 44px; height: 62px;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: linear-gradient(160deg, #24403c 0%, #14312d 55%, #0a1a18 100%);
    box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.8);
  }
  @media (min-width: 768px) {
    .live-warmup-card { left: 22px; top: 40px; width: 62px; height: 86px; }
  }
  .live-warmup-card--empty {
    border-style: dashed;
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(7, 13, 12, 0.45);
    box-shadow: none;
  }
  .live-warmup-card__art {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; object-position: top;
  }
  .live-warmup-card__name {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 10px 3px 3px;
    text-align: center;
    font-family: 'Oswald', sans-serif;
    font-weight: 600;
    font-size: 8px;
    letter-spacing: 0.06em;
    line-height: 1.1;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.82);
    background: linear-gradient(180deg, transparent, rgba(6, 12, 11, 0.88) 55%);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  /* The promise a host cannot check from inside a warm-up. */
  .live-warmup-listed {
    position: absolute; right: 14px; top: 12px;
    display: flex; align-items: center; gap: 7px;
    font-family: 'Oswald', sans-serif;
    font-weight: 600;
    font-size: 10px;
    letter-spacing: 0.14em;
    line-height: 1;
    text-transform: uppercase;
    color: #c2ccc9;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
  }
  @media (min-width: 768px) {
    .live-warmup-listed { right: 16px; top: 14px; font-size: 11px; }
  }
  .live-warmup-listed__dot {
    width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
    background: #1cdeca;
  }
  @media (prefers-reduced-motion: no-preference) {
    .live-warmup-listed__dot { animation: live-warmup-listed 2.2s ease-in-out infinite; }
  }
  @keyframes live-warmup-listed {
    50% { opacity: 0.3; }
  }

  /* Seven face-down cards, fanned. A zero-size anchor so the fan pivots around
     one point instead of being laid out. */
  .live-warmup-hand { position: absolute; left: 56%; bottom: 8px; width: 0; height: 0; }
  /* One <img> per card: /game-assets/card-back.webp, the same back the board
     renders. A hairline and a soft shadow, nothing else - a printed card back
     does not glow. */
  .live-warmup-back {
    position: absolute;
    left: -22px; bottom: 0;
    width: 44px; height: 62px;
    border-radius: 4px;
    transform-origin: 50% 150%;
    object-fit: cover;
    /* Preflight caps every img at max-width 100%, resolved against
       .live-warmup-hand — a ZERO-WIDTH fan anchor. Without this override every
       back collapses to 0px wide. */
    max-width: none;
    border: 1px solid rgba(0, 0, 0, 0.55);
    box-shadow: 0 6px 16px -6px rgba(0, 0, 0, 0.85);
  }
  @media (min-width: 768px) {
    .live-warmup-hand { bottom: 14px; }
    .live-warmup-back { left: -34px; width: 68px; height: 95px; }
  }
  .live-warmup-back:nth-child(1) { transform: rotate(-21deg); }
  .live-warmup-back:nth-child(2) { transform: rotate(-14deg); }
  .live-warmup-back:nth-child(3) { transform: rotate(-7deg); }
  .live-warmup-back:nth-child(4) { transform: rotate(0deg); }
  .live-warmup-back:nth-child(5) { transform: rotate(7deg); }
  .live-warmup-back:nth-child(6) { transform: rotate(14deg); }
  .live-warmup-back:nth-child(7) { transform: rotate(21deg); }
  /* One card lifts on hover: the hand is what the click hands you. */
  @media (prefers-reduced-motion: no-preference) {
    .live-warmup-back { transition: transform 0.18s ease; }
    .live-warmup-offer:hover .live-warmup-back:nth-child(4) { transform: translateY(-6px); }
  }

  .live-warmup-words {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
    padding: 20px 22px 22px;
  }
  @media (min-width: 768px) {
    .live-warmup-words { padding: 22px 26px 24px; }
  }
  .live-warmup-heading {
    @apply font-oswald uppercase;
    margin: 2px 0 0;
    font-weight: 500;
    font-size: 22px;
    line-height: 1.05;
    letter-spacing: 0.02em;
    color: #dee6e3;
    text-wrap: balance;
  }
  @media (min-width: 768px) {
    .live-warmup-heading { font-size: 26px; }
  }
  /* The host's own commander, in the board's colour. Not italic: <em> is here
     for the emphasis, not the slant. */
  .live-warmup-heading__name { font-style: normal; color: #1cdeca; }
  .live-warmup-wait { margin: 0; font-size: 15px; line-height: 1.4; color: #dee6e3; }
  .live-warmup-actions {
    display: flex;
    flex-wrap: wrap;
    /* TOP, not centre. The join-alert control is a button plus a caption the
       client fills in ("Chime only."), so centring floats its button above the
       primary's centre line whenever that caption is present. Aligning the
       tops keeps the two buttons on one line and hangs the caption under the
       secondary, where it belongs. */
    align-items: flex-start;
    gap: 12px 16px;
    margin-top: auto;
    padding-top: 8px;
  }

  /* Per-seat readiness dot. The seat color rides the --rdot-color custom property
     set inline; the state is machine-readable via data-state (E2E asserts state,
     not color). solid = locked deck, hollow = seated + still picking, dashed =
     open seat. */
  .live-rdot { width: 11px; height: 11px; border-radius: 50%; box-sizing: border-box; flex-shrink: 0; }
  .live-rdot--locked { background: var(--rdot-color, #1cdeca); }
  .live-rdot--picking { background: transparent; border: 2px solid var(--rdot-color, #93a49f); }
  .live-rdot--open { background: transparent; border: 2px dashed #3f4947; }
  @media (prefers-reduced-motion: no-preference) {
    .live-rdot--picking { animation: live-rdot-pulse 1.6s ease-in-out infinite; }
  }
  @keyframes live-rdot-pulse { 50% { opacity: 0.4; } }

  /* ── Player card (Phase 5). A floating console panel opened from a seat-card
     player chip: reputation tier, endorsement bar-meters, volume, member-since.
     ONE hidden instance per lobby; lobby_player_card_controller anchors it near
     the chip on fine pointers (popover) or docks it as a bottom sheet on coarse
     pointers. Mirrors the sketch's .pop. The bar-meter rows are the signature —
     the peak row glows teal, the rest sit quiet. ── */
  .live-player-card-backdrop {
    position: fixed; inset: 0; z-index: 59;
    background: rgba(6, 12, 11, 0.55);
  }
  .live-player-card-panel {
    position: fixed; z-index: 60;
    width: min(360px, calc(100vw - 24px));
    background: #121c1a;
    border: 1px solid rgba(28, 222, 202, 0.18);
    border-radius: 14px;
    box-shadow: 0 30px 70px -20px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(28, 222, 202, 0.08);
  }
  /* Coarse-pointer bottom sheet: full-width, docked to the bottom edge. */
  .live-player-card-panel--sheet {
    left: 0; right: 0; top: auto; bottom: 0;
    width: 100%; max-width: 100%;
    border-radius: 16px 16px 0 0;
    border-bottom: 0;
    box-shadow: 0 -20px 60px -18px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(28, 222, 202, 0.08);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  @media (prefers-reduced-motion: no-preference) {
    .live-player-card-panel { animation: live-pcard-in 0.16s ease-out; }
    .live-player-card-panel--sheet { animation: live-pcard-sheet-in 0.22s cubic-bezier(0.2, 0.8, 0.2, 1); }
    .live-player-card-backdrop { animation: live-pcard-fade-in 0.18s ease-out; }
  }
  @keyframes live-pcard-in { from { opacity: 0; transform: translateY(-4px); } }
  @keyframes live-pcard-sheet-in { from { transform: translateY(100%); } }
  @keyframes live-pcard-fade-in { from { opacity: 0; } }

  .live-pcard { padding: 18px 20px; }
  .live-pcard__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .live-pcard__name { font-size: 15px; font-weight: 600; color: #dee6e3; min-width: 0; }
  .live-pcard__tier-new {
    @apply font-oswald uppercase;
    flex-shrink: 0;
    font-size: 10px; letter-spacing: 0.12em; color: #93a49f;
    border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 999px; padding: 3px 9px;
  }
  .live-pcard__meta { font-size: 12px; color: #93a49f; margin-top: 4px; }
  .live-pcard__endorse { display: flex; flex-direction: column; gap: 9px; margin: 16px 0 14px; }
  .live-pcard__row { display: grid; grid-template-columns: 92px 1fr 26px; align-items: center; gap: 10px; }
  .live-pcard__lab {
    @apply font-oswald uppercase;
    color: #93a49f; font-size: 9.5px; letter-spacing: 0.14em; line-height: 1.2;
  }
  .live-pcard__track { height: 4px; background: #0c1413; border-radius: 99px; overflow: hidden; }
  .live-pcard__fill { display: block; height: 100%; background: #1cdeca; border-radius: 99px; opacity: 0.72; }
  .live-pcard__row--peak .live-pcard__fill { opacity: 1; box-shadow: 0 0 12px rgba(28, 222, 202, 0.55); }
  .live-pcard__num {
    @apply font-oswald;
    text-align: right; font-weight: 600; font-size: 13px; color: #dee6e3;
    font-variant-numeric: tabular-nums;
  }
  .live-pcard__note { margin: 0; font-size: 11px; color: #93a49f; line-height: 1.5; }
  /* One or two actions (the name link, View stats or View profile depending on
     where the viewer is sent, and Make host for the host viewer).
     Wraps rather than squeezing: the panel is narrow on a phone bottom sheet. */
  .live-pcard__cta { margin-top: 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
  /* button_to wraps its button in a form; keep the form out of the layout. */
  .live-pcard__cta-form { display: contents; }
  /* Lobby host strip (live_sessions/_lobby_host_alert). The yellow alert chrome
     stays as utilities on the element; this only does the layout: one line on a
     desktop, wrapping to two on a phone rather than crushing the button. */
  .live-host-alert {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
    column-gap: 12px; row-gap: 8px; text-align: center;
    /* The margin rides on the strip, not on #lobbyAlerts: that container is
       empty almost always and must not reserve a gap above the stepper. */
    margin-bottom: 16px;
  }
  .live-host-alert__text { min-width: 0; }
  /* Tabular figures, or the whole sentence shifts sideways every second as the
     countdown re-renders. */
  .live-host-alert__clock { font-variant-numeric: tabular-nums; font-weight: 600; }
  .live-pcard-loading {
    @apply font-oswald uppercase;
    padding: 30px 20px; text-align: center; color: #93a49f;
    font-size: 11px; letter-spacing: 0.16em;
  }

  }


  .button_inverse {
    @apply cursor-pointer inline-flex flex-row items-center justify-center gap-x-2 px-6 text-sm font-medium border-primary text-primary border py-2.5 rounded-[6.25rem] tracking-[.00714em];
  }

  .button_textonly {
    @apply relative inline-flex flex-row items-center justify-center gap-x-2 px-6 text-sm font-medium text-primary py-2.5 rounded-[6.25rem] tracking-[.00714em];
  }

 
  .button-error_inverse {
    @apply relative inline-flex flex-row items-center justify-center gap-x-2 px-6 text-sm font-medium interactive-surface-error border-on-error text-on-error border py-2.5 rounded-[6.25rem] tracking-[.00714em];
  }


  .button_transparant_gray {
    @apply text-pg_bg_sec border-2 border-pg_bg_sec bg-none font-medium rounded-3xl uppercase no-underline text-sm px-5 py-2.5 tracking-wide;
  }


  .buttonsmall {
    @apply text-white bg-pg_primary/25 focus:outline-none focus:ring-4 focus:ring-gray-300 font-bold rounded-full text-xs h-10 w-10 justify-center items-center ;
  }

  .buttonred {
    @apply text-white bg-red-600 hover:bg-red-500 focus:outline-none focus:ring-4 focus:ring-gray-300 font-bold rounded-3xl text-sm px-5 py-2.5 dark:bg-gray-800 dark:hover:bg-gray-700 dark:focus:ring-gray-700 dark:border-gray-700;
  }

  .google-button {
    @apply flex flex-row items-center gap-x-2 px-6 text-sm font-medium interactive-surface-surface border border-outline w-full py-2.5 rounded-[6.25rem] tracking-[.00714em];
  }
  /* Sign in with Apple: Apple's black style, the Google button's size. */
  .apple-button {
    @apply flex flex-row items-center gap-x-2 px-6 text-sm font-medium bg-black text-white border border-black hover:bg-neutral-800 w-full py-2.5 rounded-[6.25rem] tracking-[.00714em];
  }
  .elo-label {
    @apply bg-pg_secondary text-pg_bg text-sm font-medium px-2.5 py-0.5 rounded;
  }

  .minitab {
    @apply w-fit inline-flex items-center h-8 py-1 px-2 rounded-lg text-xs font-medium gap-2 leading-none md:cursor-pointer interactive-surface-surface border border-outline;
  }

  .error {
    @apply text-error text-xs
  }

  .info-box {
    @apply flex flex-col h-fit p-2 bg-gradient-to-r from-pg_lightblue/25 border-l-4 border-pg_lightblue;
  }

  .info-box-red {
    @apply bg-pg_red/25 border-l-8 border-pg_red;
  }

  .info-box-green {
    @apply bg-pg_tertiary/25 border-l-8 border-pg_tertiary;

  }

  .info-box-indigo {
    @apply h-fit bg-gradient-to-r from-pg_indigo/50 border-l-4 border-pg_indigo;

  }

  .info-box-ice {
    @apply h-fit bg-gradient-to-r from-pg_ice/25 border-l-4 border-pg_ice;

  }


  .string {
    @apply w-full
  }

  
  .circular-chart {
    display: block;
    max-height: 150px;
    max-width: 150px;
    
  }

  .circular-chart-small {
    display: block;
    max-height: 100px;
    max-width: 100px;
    
  }
  
  .circle {
    @apply stroke-on-secondary_container;
    fill: none;
    stroke-width: 2.8;
    stroke-linecap:square;
    animation: progress 1s ease-out forwards;

  }
  h1.big {
    @apply text-3xl xl:text-4xl font-extrabold max-w-5xl
  }
  h2.post {
    @apply font-black text-3xl
  }
  .post-body {
    @apply text-base font-normal text-white
  }

  .post-body p {
    @apply mb-6 leading-8
  }
  /* ── News post prose ──────────────────────────────────────────────────
     One reading column: 66ch for text (figures may run the full 900px
     article), 17px Roboto at 1.65, one blank line between paragraphs, Oswald
     headings with more space above than below so they group what follows.
     These beat the typography plugin's :where() defaults on specificity.
     2026-09-08: replaced a card with doubled paragraph spacing (mb-6 + pb-4),
     line-height 2 and body-weight bold headings, which read as a list of
     disconnected notes. */
  .news-post .writing { font-size: 17px; line-height: 1.65; color: #dee4e2; }
  .news-post .writing > :not(.nf-fig):not(.nf-target) { max-width: 66ch; }
  .news-post .writing p { margin: 0 0 1.15em; }
  .news-post .writing h2 {
    font-family: Oswald, "Arial Narrow", sans-serif; font-weight: 500; text-transform: uppercase;
    letter-spacing: 0.01em; font-size: clamp(1.5rem, 3.2vw, 1.9rem); line-height: 1.05;
    color: #fff; margin: 2.4em 0 0.7em; text-wrap: balance;
  }
  .news-post .writing h2:first-child { margin-top: 0; }
  .news-post .writing h3 { font-family: Oswald, "Arial Narrow", sans-serif; font-weight: 500; text-transform: uppercase; font-size: 1.2rem; color: #fff; margin: 1.8em 0 0.5em; }
  .news-post .writing strong { font-weight: 500; color: #fff; }
  .news-post .writing a { color: #1cdeca; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
  .news-post .writing ul, .news-post .writing ol { margin: 0 0 1.15em; padding-left: 1.1em; }
  .news-post .writing li { margin: 0 0 0.45em; padding: 0; }
  .news-post .writing li::marker { color: #899390; }
  .news-post .writing blockquote {
    margin: 1.6em 0; padding: 14px 0 14px 22px; border-left: 2px solid #1cdeca;
    font-family: Oswald, "Arial Narrow", sans-serif; font-weight: 400; font-style: normal;
    font-size: clamp(1.15rem, 2.4vw, 1.4rem); line-height: 1.3; color: #fff; quotes: none;
  }
  .news-post .writing blockquote p { margin: 0; }
  .news-post .writing blockquote p::before, .news-post .writing blockquote p::after { content: none; }
  .news-post .writing table { font-size: 15px; }
  .news-post .writing img { border-radius: 6px; }

  /* ── News figures ──────────────────────────────────────────────────────
     Instrument panels a post can carry as raw HTML inside its markdown (the
     markdown helper passes block HTML through). First used by the Playgroup
     Experiments launch post: diverging seat bars, the card ruler, the drift
     ladder, a before/after and the pre-registered target. Oswald numerals,
     one teal accent varied by opacity, per docs/reference/visual-style-guide.md.
     Every state class is nf-prefixed: the post body sits inside .prose, whose
     typography plugin styles bare `.lead` (bigger, spaced), which once swallowed
     the first seat row. */
  .news-post .nf-fig { @apply my-8; }
  .news-post .nf-panel { background: #1a2120; border: 1px solid rgba(63, 73, 71, 0.5); padding: 24px; }
  .news-post .nf-cap { margin-top: 12px; font-size: 13px; line-height: 1.5; color: #899390; }
  .news-post .nf-eyebrow { display: flex; align-items: center; gap: 12px; font-family: Oswald, "Arial Narrow", sans-serif; font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.25em; color: #1cdeca; margin: 0 0 14px; }
  .news-post .nf-eyebrow::after { content: ""; height: 1px; flex: 1 1 auto; background: #3f4947; }
  .news-post .nf-num { font-family: Oswald, "Arial Narrow", sans-serif; font-variant-numeric: tabular-nums; }
  /* diverging seat bars against the 25% fair line */
  .news-post .nf-seats { display: flex; flex-direction: column; gap: 10px; }
  .news-post .nf-seat { display: grid; grid-template-columns: 4.6em 1fr 3.9em; align-items: center; gap: 14px; }
  .news-post .nf-seat-label { font-size: 12px; color: #a9b4b1; letter-spacing: 0.04em; }
  .news-post .nf-track { position: relative; height: 26px; background: #161d1c; display: block; }
  .news-post .nf-track::before { content: ""; position: absolute; left: 50%; top: -3px; bottom: -3px; width: 1px; background: #899390; opacity: 0.9; }
  .news-post .nf-bar { position: absolute; top: 5px; bottom: 5px; display: block; }
  .news-post .nf-bar.nf-under { background: #1cdeca; right: 50%; }
  .news-post .nf-bar.nf-over { background: rgba(169, 180, 177, 0.45); left: 50%; }
  .news-post .nf-seat-val { font-size: 15px; text-align: right; color: #dee4e2; }
  .news-post .nf-seat.nf-lead .nf-seat-val, .news-post .nf-seat.nf-lag .nf-seat-val { color: #fff; }
  .news-post .nf-axis { display: grid; grid-template-columns: 4.6em 1fr 3.9em; gap: 14px; margin-top: 10px; }
  .news-post .nf-axis-row { display: flex; justify-content: space-between; grid-column: 2; font-size: 10px; letter-spacing: 0.18em; color: #899390; text-transform: uppercase; }
  .news-post .nf-axis-row span:nth-child(2) { color: #a9b4b1; }
  /* the card ruler */
  .news-post .nf-steps { display: flex; flex-wrap: wrap; gap: 1px; background: rgba(63, 73, 71, 0.5); }
  .news-post .nf-step { flex: 1 1 120px; background: #161d1c; padding: 16px 18px; }
  .news-post .nf-step-k { font-size: 11px; text-transform: uppercase; letter-spacing: 0.18em; color: #899390; margin-bottom: 8px; }
  .news-post .nf-step-v { font-size: 30px; line-height: 1; color: #dee4e2; }
  .news-post .nf-step.nf-hit { background: #252b2a; }
  .news-post .nf-step.nf-hit .nf-step-v { color: #1cdeca; }
  /* drift ladder */
  .news-post .nf-wob { display: flex; flex-direction: column; gap: 9px; }
  .news-post .nf-wob-row { display: grid; grid-template-columns: 5.6em 1fr 4.4em; align-items: center; gap: 14px; }
  .news-post .nf-wob-k { font-size: 13px; color: #a9b4b1; text-align: right; }
  .news-post .nf-wob-bar { height: 18px; background: rgba(28, 222, 202, 0.32); display: block; }
  .news-post .nf-wob-v { font-size: 15px; color: #dee4e2; }
  /* before / after */
  .news-post .nf-ba { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(63, 73, 71, 0.5); }
  .news-post .nf-ba-col { background: #161d1c; padding: 18px; }
  .news-post .nf-ba-h { font-size: 10px; text-transform: uppercase; letter-spacing: 0.22em; color: #899390; margin-bottom: 14px; }
  .news-post .nf-ba-col.nf-after .nf-ba-h { color: #1cdeca; }
  .news-post .nf-ba-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 7px 0; border-bottom: 1px solid rgba(63, 73, 71, 0.4); font-size: 14px; }
  .news-post .nf-ba-row:last-child { border-bottom: 0; }
  .news-post .nf-ba-row span:first-child { color: #a9b4b1; font-size: 13px; }
  .news-post .nf-ba-row b { font-weight: 400; font-family: Oswald, "Arial Narrow", sans-serif; font-variant-numeric: tabular-nums; font-size: 16px; }
  .news-post .nf-ba-foot { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(63, 73, 71, 0.5); display: flex; justify-content: space-between; align-items: baseline; }
  .news-post .nf-ba-foot span { font-size: 10px; text-transform: uppercase; letter-spacing: 0.2em; color: #899390; }
  .news-post .nf-ba-foot b { font-family: Oswald, "Arial Narrow", sans-serif; font-variant-numeric: tabular-nums; font-size: 24px; font-weight: 500; }
  .news-post .nf-ba-col.nf-after .nf-ba-foot b { color: #1cdeca; }
  /* the one pre-registered number */
  .news-post .nf-target { border: 1px solid #1cdeca; background: rgba(28, 222, 202, 0.06); padding: 22px 24px; margin: 2.2em 0; }
  .news-post .nf-target-v { font-family: Oswald, "Arial Narrow", sans-serif; font-variant-numeric: tabular-nums; font-size: clamp(2rem, 6vw, 3rem); line-height: 1; color: #1cdeca; margin: 6px 0 10px; }
  .news-post .nf-target-t { font-size: 15px; color: #a9b4b1; }
  .news-post .nf-target .nf-eyebrow::after { flex: none; width: 40px; background: #1cdeca; opacity: 0.5; }
  @media (max-width: 620px) {
    .news-post .nf-ba { grid-template-columns: 1fr; }
    .news-post .nf-seat, .news-post .nf-axis { grid-template-columns: 3.6em 1fr 3.6em; gap: 10px; }
    .news-post .nf-wob-row { grid-template-columns: 4.6em 1fr 3.8em; gap: 10px; }
  }
  .circle-bg { 
    stroke-width: 2.8;
    @apply stroke-secondary_container;
    fill: none;
  }

  .playgroup-tab {
    @apply text-sm text-pg_secondary/50 px-4 py-2 rounded-full border-pg_secondary/50   border-2
  }

  .playgroup-tab.active-tab {
    @apply text-pg_bg_sec bg-pg_secondary rounded-full
  }
  #staticModal .text-base a {
    @apply text-primary;
  }
  .card a {
    --tw-text-opacity:1;
    color:rgb(28 222 202/var(--tw-text-opacity));
  }
  .card .button a {
    color: rgb(0, 55, 49)
  }
  .post-body a {
    @apply text-gray-500
  }
  .post-body > ul {
    @apply max-w-md space-y-1 text-white list-disc list-inside dark:text-white
  }

  @keyframes progress {
    0% {
      stroke-dasharray: 0 100;
    }
  }

  .percentage {
    @apply font-medium;
    fill: #E6E0E9;
    font-size: 0.50em;
    text-anchor: middle;
  }

  .winrate {
    @apply flex flex-col fill-on-surface_variant text-[6px];
    text-anchor: middle;
  }
  table a {
    @apply text-primary;
  }

  .mi-on-surface-variant {
    color: #CAC4D0;
  }

  label {
    @apply text-on-surface;
  }

/* dialogs  */

.show .backDialog {
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  display: block;
  height: 100%;
}

.show .dialog {
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  display: flex;
  height: 100%;
}

.text-commander-damage {
  color: lightskyblue
}
.text-healing {
  color: lightgreen
}
.text-damage {
  color: lightcoral
}
.text-kill {
  color: darkred
}
.text-poison {
  color: darkolivegreen
}

@keyframes slide {
  0%{
    transform: translate3d(0, 0, 0);
  }
  100%{
    transform: translate3d(-1692px, 0, 0);
  }
}
input[type="number"]::placeholder, input[type="text"]::placeholder, input[type="url"]::placeholder,input[type="email"]::placeholder{
  color: rgb(190, 201, 198, 0.4) !important
}

.leaflet-control-geosearch .results > * {
  @apply bg-surface_container_low text-on-surface_variant
}
.leaflet-control-geosearch .results > *:hover {
  @apply bg-surface_container_low text-on-surface_variant
}
.leaflet-touch .leaflet-geosearch-bar form, .leaflet-control-geosearch .results.active{
  @apply bg-surface_container_low text-on-surface_variant
}
.leaflet-bar a, .leaflet-control-geosearch button.reset {
  @apply bg-surface_container_low text-on-surface_variant

}
textarea {
  @apply bg-surface_container_low
}
input[type = "text"], input[type = "number"], input[type="url"]{
  @apply w-full bg-transparent h-14 block relative py-2 px-4 border focus:border-2 border-outline overflow-x-auto focus:outline-none focus:border-primary focus:ring-0 placeholder-on-surface_variant rounded-lg
}

/* Deck editor "filter cards in deck" box. The rule above is unlayered, so it
   beats anything in @layer utilities no matter the specificity - h-8/px on the
   element itself simply lose. This filter has to line up with the 32px chips,
   Group / Sort selects and view toggle it shares the deck toolbar with, not
   the 56px form-field height, so it opts out here instead of via a row of
   !important utilities. The padding leaves room for the leading filter icon
   and the trailing clear button. */
input[type="text"].deck-filter-input {
  @apply h-8 py-0 pl-9 pr-9 text-sm;
}
/* Deck editor ADD BAR. The unlayered rule above forces every text/number field
   to h-14 (56px) and grows its border to 2px on focus, which no utility class
   on the element can beat. The add bar is one row of 48px controls, so its two
   fields opt out here the way .deck-filter-input does, and the focus weight is
   carried by a 1px inset ring instead of a second border pixel so nothing on
   the row can change height when you click into it. */
input[type="text"].brew-addbar-input {
  @apply h-12 py-0 px-4 border-outline;
  border-width: 1px;
}
input[type="text"].brew-addbar-input:focus {
  @apply border-primary;
  border-width: 1px;
  box-shadow: inset 0 0 0 1px #1CDECA;
}

/* Live lobby deck search. Same unlayered-rule trap as the add bar above, and it
   had been losing since the picker shipped: the field's own h-12/pl-12/pr-4 and
   its fill were overridden to h-14/px-4/bg-transparent, so the box stood 56px
   tall and the leading magnifier glyph sat ON TOP of the placeholder text with
   no gutter to live in. Opts out here so the search and the Random roll beside
   it read as one 48px row, and so the icon gets its 48px of padding back. */
input[type="text"].lobby-deck-search {
  @apply w-full h-12 py-0 pl-12 pr-4 rounded-lg;
  background-color: #0c1413;
}

/* Commander archetypes hub: the typed word in "I want to play ___" is set in
   the heading's own Oswald size, underlined like a blank to fill in. The
   unlayered rule above squeezed it into a 56px box with 8px padding and a 2px
   border all round, which cut the 72px letters top and bottom. */
input[type="text"].archetype-sentence-input {
  height: calc(1.15em + 0.25rem + 4px); /* the letters, the gap, the underline */
  padding: 0 0 0.25rem;
  border-width: 0 0 4px;
  border-radius: 0;
  border-color: rgb(28 222 202 / 0.45);
  background-color: transparent;
  overflow: visible;
}
/* Chrome draws the datalist's arrow at the field's font size; the words still
   suggest as you type. */
input[type="text"].archetype-sentence-input::-webkit-calendar-picker-indicator {
  display: none !important;
}
input[type="text"].archetype-sentence-input:focus {
  border-width: 0 0 4px;
  border-color: #1CDECA;
  box-shadow: none;
  outline: none;
}

/* The land target sits INSIDE the lands control, so it carries no border, no
   background and no height of its own: the control is the object. */
input[type="number"].brew-lands-target {
  @apply h-full w-11 py-0 px-1 text-center bg-transparent;
  border: 0;
}
input[type="number"].brew-lands-target:focus {
  @apply outline-none;
  border: 0;
  box-shadow: none;
}

input[type = "email"] {
  @apply string bg-transparent w-full h-14 block leading-5 relative py-2 px-4 border focus:border-2 border-outline overflow-x-auto focus:outline-none focus:border-primary focus:ring-0 placeholder-on-surface_variant
}

.ts-control input {
  @apply !w-fit !h-fit
}


.card_image {
  border-bottom-left-radius: 4.5%;
  border-bottom-right-radius: 4.5%;
  border-top-left-radius: 4.5%;
  border-top-right-radius: 4.5%;
  width: 244px;
  height: 340px;
  @apply shadow-M3_Elevation_Dark_5;
}

@media (max-width: 768px) { 
  .card_image {
      width: calc(244px * 0.8); 
      height: calc(340px * 0.8); 
  }
}

@media (max-width: 768px) {
  .card_image {
    width: calc(244px * 0.70);
    height: calc(340px * 0.70);
  }
}

/* circular loader  */

.circular-loader{
  -webkit-animation: rotate 2s linear infinite;
          animation: rotate 2s linear infinite;
}

.circular-loader .path {
  stroke-dasharray: 1,200;
  stroke-dashoffset: 0;
  -webkit-animation:
   dash 1.5s ease-in-out infinite;
          animation:
   dash 1.5s ease-in-out infinite;
  stroke-linecap: round;
}

@-webkit-keyframes rotate{
  100%{
    transform: rotate(360deg);
  }
}

@keyframes rotate{
  100%{
    transform: rotate(360deg);
  }
}

@-webkit-keyframes dash{
  0%{
    stroke-dasharray: 1,200;
    stroke-dashoffset: 0;
  }

  50%{
    stroke-dasharray: 89,200;
    stroke-dashoffset: -35;
  }

  100%{
    stroke-dasharray: 89,200;
    stroke-dashoffset: -124;
  }
}

@keyframes dash{
  0%{
    stroke-dasharray: 1,200;
    stroke-dashoffset: 0;
  }

  50%{
    stroke-dasharray: 89,200;
    stroke-dashoffset: -35;
  }

  100%{
    stroke-dasharray: 89,200;
    stroke-dashoffset: -124;
  }
}

/* Golden halo effect for rare achievements (< 1% rarity) */
@keyframes golden-halo-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes golden-halo-pulse {
  0%, 100% { box-shadow: 0 0 8px 1px rgba(251, 191, 36, 0.3); }
  50% { box-shadow: 0 0 12px 3px rgba(251, 191, 36, 0.6); }
}

.achievement-rare-halo {
  position: relative;
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  border-radius: 0.5rem;
  overflow: hidden;
  animation: golden-halo-pulse 2.5s ease-in-out infinite;
}

.achievement-rare-spinner {
  position: absolute;
  inset: -50%;
  background: conic-gradient(
    from 0deg,
    #fbbf24,
    #f59e0b,
    #d97706,
    #fbbf24,
    #fde68a,
    #fbbf24,
    #f59e0b,
    #d97706,
    #fbbf24
  );
  animation: golden-halo-spin 3s linear infinite;
}

.achievement-rare-icon {
  position: absolute;
  inset: 2px;
  border-radius: 0.375rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #161d1c;
}

.participation.active {
  border: 2px solid rgb(28 222 202/var(--tw-text-opacity));
}

.flipped {
  transform: rotateY(180deg);
}

/* fabs  */

.fabs:hover::after {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  --tw-bg-opacity: 1;
  background-color: rgb(33 0 93 / var(--tw-bg-opacity));
  opacity: .08;
  content: "";
}

.fabs:focus::after {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  --tw-bg-opacity: 1;
  background-color: rgb(33 0 93 / var(--tw-bg-opacity));
  opacity: .12;
  content: "";
}


.swiper-pagination-bullet {
  color: black !important;

  width: 20px !important;
  height: 20px !important;
  text-align: center;
  line-height: 20px;
  font-size: 12px;
  opacity: 1;
  background: #fff !important;
}

.swiper-pagination-bullet-active {
  color: black !important;
  background: #007aff;
}

.swiper-button-next,
.swiper-button-prev {
  @apply !rounded-full !text-primary !w-16  !h-16 !bg-surface
}

.switch {
  --button-width: 3.5em;
  --button-height: 2em;
  --toggle-diameter: 1.5em;
  --button-toggle-offset: calc((var(--button-height) - var(--toggle-diameter)) / 2);
  --toggle-shadow-offset: 10px;
  --toggle-wider: 3em;
  --color-grey: #272B2A;
  --color-green: #92f4e4;
 }
 
 .slider {
  display: inline-block;
  width: var(--button-width);
  height: var(--button-height);
  background-color: var(--color-grey);
  border-radius: calc(var(--button-height) / 2);
  position: relative;
  transition: 0.3s all ease-in-out;
 }
 
 .slider::after {
  content: "";
  display: inline-block;
  width: var(--toggle-diameter);
  height: var(--toggle-diameter);
  background-color: #C4C7C5;
  border-radius: calc(var(--toggle-diameter) / 2);
  position: absolute;
  top: var(--button-toggle-offset);
  transform: translateX(var(--button-toggle-offset));
  box-shadow: var(--toggle-shadow-offset) 0 calc(var(--toggle-shadow-offset) * 4) rgba(0, 0, 0, 0.1);
  transition: 0.3s all ease-in-out;
 }
 
 .switch input[type="checkbox"]:checked + .slider {
  background-color: var(--color-green);
 }
 
 .switch input[type="checkbox"]:checked + .slider::after {
  background-color: #003731; /* 👈 change knob color when checked */
  transform: translateX(calc(var(--button-width) - var(--toggle-diameter) - var(--button-toggle-offset)));
  box-shadow: calc(var(--toggle-shadow-offset) * -1) 0 calc(var(--toggle-shadow-offset) * 4) rgba(0, 0, 0, 0.1);
  }
 
 .switch input[type="checkbox"] {
  display: none;
 }
 
 .switch input[type="checkbox"]:active + .slider::after {
  width: var(--toggle-wider);
 }
 
 .switch input[type="checkbox"]:checked:active + .slider::after {
  transform: translateX(calc(var(--button-width) - var(--toggle-wider) - var(--button-toggle-offset)));
 }

/* Notification toast animations (MD3 motion) */
.notification-toast {
  transition: transform 300ms cubic-bezier(0.2, 0, 0, 1), opacity 300ms cubic-bezier(0.2, 0, 0, 1);
}

.notification-toast-enter {
  opacity: 0;
  transform: translateY(16px);
}

.notification-toast-enter-active {
  opacity: 1;
  transform: translateY(0);
}

.notification-toast-exit {
  opacity: 0;
  transform: translateY(16px);
}

/* Deck builder: stacks view */
.deck-stacks {
  columns: 13rem;
  column-gap: 1.5rem;
  padding-bottom: 1rem;
}

.deck-stacks .deck-card-group {
  break-inside: avoid;
  margin-bottom: 0.75rem;
}

.deck-stacks .deck-card-grid {
  display: flex !important;
  flex-direction: column;
  gap: 0 !important;
}

.deck-stacks .deck-card-cell {
  /* Fixed layout height. CSS multi-column flow rebalances based on content
     height — animating the cell's height on hover would cause cells to
     migrate between columns, the cursor would lose them, and the hover
     would oscillate ("flicker"). Keeping the cell's layout box fixed and
     animating clip-path on the image inside lets the visual hover effect
     happen smoothly without touching the parent column layout. */
  height: 2.1rem;
  overflow: visible;
  border-radius: 0.25rem;
  position: relative;
  transition: box-shadow 0.2s ease;
  cursor: pointer;
}

.deck-stacks .deck-card-cell:not(:first-child) {
  margin-top: 2px;
}

/* Last cell in each group always shows the full image as the stack's
   "preview" — image stays in normal flow, cell sizes to its content. */
.deck-stacks .deck-card-cell:last-child {
  height: auto;
}

/* Non-last cells: the image is absolutely positioned (so its height
   doesn't influence the cell's layout box) and clipped to the top 2.1rem
   header sliver via clip-path. Hover expands the clip to reveal the full
   image, animating smoothly because clip-path interpolates between the
   two inset() values. */
.deck-stacks .deck-card-cell:not(:last-child) > img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  clip-path: inset(0 0 calc(100% - 2.1rem) 0);
  transition: clip-path 0.25s cubic-bezier(0.4, 0, 0.2, 1),
              border-radius 0.2s ease,
              box-shadow 0.2s ease;
}

.deck-stacks .deck-card-cell:hover,
.deck-stacks .deck-card-cell--expanded {
  z-index: 10;
}

.deck-stacks .deck-card-cell:not(:last-child):hover > img,
.deck-stacks .deck-card-cell:not(:last-child).deck-card-cell--expanded > img {
  clip-path: inset(0);
}

.deck-stacks .deck-card-cell:hover img,
.deck-stacks .deck-card-cell--expanded img {
  border-radius: 0.375rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

.deck-stacks .deck-card-hover-actions {
  display: none !important;
}

.deck-stacks .deck-card-cell img {
  border-radius: 0.25rem;
}

/* Deck builder: text view (docs/reference/commander-desk.md, "Views"). The
   same cells as the grid and stacks, each showing only its .deck-card-text
   line, in the same multi-column flow as stacks. The hidden images are lazy,
   so the list fetches almost none of them. */
.deck-card-text {
  display: none;
}

.deck-text {
  columns: 15rem;
  column-gap: 1.75rem;
  padding-bottom: 1rem;
}

.deck-text .deck-card-group {
  break-inside: avoid;
  margin-bottom: 1.25rem;
}

.deck-text .deck-card-group > :first-child {
  margin-bottom: 0.375rem;
  padding-left: 0.5rem;
}

.deck-text .deck-card-grid {
  display: flex !important;
  flex-direction: column;
  gap: 0 !important;
}

/* Brew Buy's teal ring on a cell is a box-shadow; here New is a tag. */
.deck-text .deck-card-cell {
  border-radius: 0.375rem;
  box-shadow: none;
}

.deck-text .deck-card-cell > :not(.deck-card-text) {
  display: none !important;
}

.deck-text .deck-card-text {
  position: relative;
  display: grid;
  grid-template-columns: 1.4rem minmax(0, 1fr) auto auto 1.5rem;
  align-items: center;
  column-gap: 0.375rem;
  height: 1.75rem;
  padding-left: 0.5rem;
  border-radius: 0.375rem;
  font-size: 0.8125rem;
  color: #dde4e1;
}

.deck-text .deck-card-cell:hover .deck-card-text {
  background: #1a2120;
}

/* The row the panel shows. Only where the panel is on screen. */
@media (min-width: 1024px) {
  .deck-text .deck-card-cell.is-shown .deck-card-text {
    background: #252b2a;
  }
  .deck-text .deck-card-cell.is-shown .deck-card-text::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.3rem;
    bottom: 0.3rem;
    width: 2px;
    border-radius: 2px;
    background: #1cdeca;
  }
}

.deck-card-text__qty {
  font-family: Oswald, sans-serif;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  text-align: right;
  color: #bec9c6;
}

.deck-card-text__qty.is-one {
  opacity: 0.45;
}

.deck-card-text__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.deck-card-text__marks {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.deck-card-text__tag {
  display: inline-flex;
  align-items: center;
  padding: 0.1875rem 0.3125rem;
  border-radius: 0.25rem;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  color: #003731;
  background: #1cdeca;
}

.deck-card-text__tag.hidden {
  display: none;
}

.deck-card-text__tag--new {
  color: #1cdeca;
  background: transparent;
  box-shadow: inset 0 0 0 1px #1cdeca;
}

.deck-card-text__dfc {
  font-size: 14px;
  color: #899390;
}

.deck-card-text__mana {
  display: flex;
  align-items: center;
  gap: 1px;
}

.deck-card-text__mana .mana-symbol {
  width: 14px;
  height: 14px;
  margin: 0;
}

.deck-card-text__more {
  display: grid;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 0.375rem;
  color: #bec9c6;
  opacity: 0;
  cursor: pointer;
}

.deck-card-cell:hover .deck-card-text__more,
.deck-card-text__more:focus-visible {
  opacity: 1;
}

.deck-card-text__more:hover {
  color: #dde4e1;
  background: #303635;
}

.deck-card-text__more:focus-visible {
  outline: 2px solid #1cdeca;
  outline-offset: -2px;
}

/* Fingers: 44px rows, and the menu button always there (it is the only way
   to the card menu in text view on a touch screen). */
@media (pointer: coarse) {
  .deck-text .deck-card-text {
    grid-template-columns: 1.5rem minmax(0, 1fr) auto auto 2.75rem;
    height: 2.75rem;
    font-size: 0.875rem;
  }
  .deck-card-text__more {
    width: 2.75rem;
    height: 2.75rem;
    opacity: 1;
  }
}

/* The card the text view shows: the panel beside the list from lg up, the
   sheet below it. deck_text_view_controller.js reads the same lg breakpoint. */
.deck-text-panel {
  display: none;
}

@media (min-width: 1024px) {
  [data-deck-view="text"] .deck-text-layout {
    display: grid;
    grid-template-columns: 16rem minmax(0, 1fr);
    column-gap: 1.75rem;
    align-items: start;
  }
  [data-deck-view="text"] .deck-text-panel {
    display: block;
    position: sticky;
    top: var(--deck-text-panel-top, 1rem);
  }
}

.deck-text-card {
  position: relative;
  aspect-ratio: 480 / 680;
  overflow: hidden;
  border-radius: 4.75% / 3.4%;
  background: #252b2a;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.55);
}

.deck-text-card > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.deck-text-card > img.hidden {
  display: none;
}

.deck-text-card__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.deck-text-card__name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #dde4e1;
}

.deck-text-card__sub {
  font-size: 0.8125rem;
  color: #bec9c6;
}

.deck-text-card__flip {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  height: 2rem;
  padding: 0 0.75rem;
  border: 1px solid #899390;
  border-radius: 0.5rem;
  font-size: 0.8125rem;
  color: #dde4e1;
  cursor: pointer;
}

.deck-text-card__flip.hidden {
  display: none;
}

.deck-text-card__flip:hover {
  color: #1cdeca;
  border-color: #1cdeca;
}

.deck-text-card__flip:focus-visible {
  outline: 2px solid #1cdeca;
  outline-offset: 2px;
}

/* showModal() focuses the dialog itself when it holds no visible control;
   the sheet is not a control, so it draws no focus ring. */
.deck-text-sheet:focus {
  outline: none;
}

.deck-text-sheet .deck-text-card {
  width: 82%;
  margin: 0 auto;
}

.deck-text-sheet .deck-text-card__meta {
  align-items: center;
  text-align: center;
}

.deck-text-sheet .deck-text-card__name {
  justify-content: center;
}

.deck-text-sheet .deck-text-card__flip {
  height: 2.5rem;
}

/* Deck builder: touch. A tap opens the card action menu, so suppress the native
   iOS long-press image callout (save/copy sheet). JS preventDefault cannot
   suppress WebKit's callout — only CSS can. */
@media (pointer: coarse) {
  .deck-card-cell img {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
  }
}

/* Card hover image preview — positioning handled by card_hover_preview_controller.js */

/* ====================================================== *
 *  Premium Unlock — Supporter upsell component           *
 *  Renders nothing when current_user.has_paid_account?   *
 * ====================================================== */

.premium-unlock {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1.375rem;
  padding: 1.625rem 1.5rem 1.625rem 1.75rem;
  background: #161d1c;
  border: 1px solid rgba(212, 175, 55, 0.10);
  border-radius: 1rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 6px 16px 0 rgba(0, 0, 0, 0.25);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.4s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.premium-unlock:hover {
  border-color: rgba(251, 191, 36, 0.32);
  transform: translateY(-1px);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 12px 28px 0 rgba(0, 0, 0, 0.35);
}

.premium-unlock__hairline {
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(212, 175, 55, 0.55) 30%,
    rgba(251, 191, 36, 0.85) 50%,
    rgba(212, 175, 55, 0.55) 70%,
    transparent 100%);
  transition: left 0.4s ease, right 0.4s ease;
}

.premium-unlock:hover .premium-unlock__hairline {
  left: 4%;
  right: 4%;
}

.premium-unlock__hairline::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 30%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255, 232, 150, 0.95) 50%,
    transparent 100%);
  mix-blend-mode: screen;
  animation: premium-unlock-sweep 6s ease-in-out infinite;
}

@keyframes premium-unlock-sweep {
  0%   { transform: translateX(-120%); opacity: 0; }
  20%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { transform: translateX(420%); opacity: 0; }
}

.premium-unlock__glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(ellipse 360px 220px at 0% -10%, rgba(212, 175, 55, 0.18) 0%, rgba(212, 175, 55, 0) 65%),
    radial-gradient(ellipse 360px 220px at 100% 110%, rgba(28, 222, 202, 0.10) 0%, rgba(28, 222, 202, 0) 65%);
}

.premium-unlock__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.premium-unlock__eyebrow {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.34em;
  font-size: 0.6875rem;
  color: #d4af37;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.premium-unlock__eyebrow::before {
  content: '';
  width: 28px;
  height: 1px;
  background: linear-gradient(90deg, #d4af37 0%, rgba(212, 175, 55, 0.4) 60%, transparent 100%);
}

.premium-unlock__title {
  font-family: 'Oswald', sans-serif;
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  font-weight: 500;
  color: #dde4e1;
  margin: 0;
  line-height: 1.15;
}

.premium-unlock__copy {
  font-size: 0.875rem;
  color: #BEC9C6;
  margin: 0;
  line-height: 1.5;
  max-width: 36rem;
}

.premium-unlock__cta {
  flex-shrink: 0;
  align-self: center;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6875rem 1.25rem 0.6875rem 1.375rem;
  border-radius: 100rem;
  background: linear-gradient(180deg, #92f4e4 0%, #1CDECA 100%);
  color: #003731;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.75rem;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  white-space: nowrap;
}

.premium-unlock__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}

.premium-unlock__cta-arrow {
  font-size: 18px;
  transition: transform 0.2s ease;
  font-variation-settings: 'wght' 500;
}

.premium-unlock__cta:hover .premium-unlock__cta-arrow {
  transform: translateX(2px);
}

@media (max-width: 640px) {
  .premium-unlock {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    gap: 1rem;
    padding: 1.5rem 1.25rem;
  }
  .premium-unlock__body { align-items: center; }
  .premium-unlock__cta { align-self: stretch; justify-content: center; }
}

.card-insights-lock__hairline {
  position: absolute;
  top: 0;
  left: 8%;
  right: 8%;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(28, 222, 202, 0.55) 30%,
    rgba(146, 244, 228, 0.85) 50%,
    rgba(28, 222, 202, 0.55) 70%,
    transparent 100%);
}
.card-insights-lock__hairline::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 30%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(146, 244, 228, 0.95) 50%,
    transparent 100%);
  mix-blend-mode: screen;
  animation: premium-unlock-sweep 6s ease-in-out infinite;
}


/* Voice "who is talking" indicator — driven by voice_controls_controller toggling
   .is-speaking on any element with [data-voice-identity]. The lobby renders these
   on each participant row; the game board uses a Vue component instead. */
[data-voice-identity].is-speaking {
  box-shadow: 0 0 0 2px rgba(28, 222, 202, 0.85), 0 0 14px rgba(28, 222, 202, 0.5);
  transition: box-shadow 120ms ease-out;
  animation: pg-voice-pulse 1.1s ease-in-out infinite;
}

@keyframes pg-voice-pulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(28, 222, 202, 0.85), 0 0 10px rgba(28, 222, 202, 0.4); }
  50%      { box-shadow: 0 0 0 2px rgba(28, 222, 202, 1), 0 0 18px rgba(28, 222, 202, 0.65); }
}

@media (prefers-reduced-motion: reduce) {
  [data-voice-identity].is-speaking { animation: none; }
}

/* Add Deck: brief teal highlight on autofilled form fields */
.autofill-flash input,
.autofill-flash {
  animation: autofill-flash 900ms ease-out;
}

@keyframes autofill-flash {
  0% {
    border-color: #1CDECA;
    background-color: rgba(28, 222, 202, 0.10);
  }
}

/* ── Deck editor: suggestions shelf ────────────────────────────────────────
   The shelf hangs off the sticky add bar, full width above the card grid.
   There is no rail and no sticky positioning of its own: an earlier sidebar
   version squeezed both the shelf rows and the card grid, so the shelf gets
   the full width and the grid keeps its normal 7/8 columns at every width.

   FOLDING HIDES THE PANES, NOT THE SHELF. The tab row is the shelf's header
   and carries the fold control, so it has to survive the fold — a folded
   shelf is one line you reopen from where you closed it.

   data-desk-open lives on the deck-editor wrapper and is set by the
   commander-desk Stimulus controller. It is only the fold switch. Scoped to
   that attribute on purpose: the public deck page renders the same
   _card_collections partial and never sets it.

   Below md the full copy is the tab row alone; its panes are read in the
   bottom sheet instead, which the same control opens. */
[data-desk-open="false"] .brew-desk-full .brew-desk-panes {
  display: none;
}

@media (max-width: 767px) {
  .brew-desk-full .brew-desk-panes {
    display: none;
  }
}

/* Camera card scanner sweep (deck_cards/_scan_modal).

   Covers the burst and the detection pass, which are real work — five frames
   at 120ms plus a detection run per frame — rather than a stall dressed up as
   progress. One band, one direction, no pulse: the point is to read as a
   machine working through the picture. */
.scan-sweep {
  position: absolute;
  left: 0;
  right: 0;
  height: 38%;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(28, 222, 202, 0) 0%,
    rgba(28, 222, 202, 0.10) 55%,
    rgba(28, 222, 202, 0.30) 88%,
    rgba(28, 222, 202, 0.95) 100%
  );
  animation: scan-sweep-pass 1.5s cubic-bezier(0.45, 0, 0.25, 1) infinite;
}

@keyframes scan-sweep-pass {
  from { top: -38%; }
  to { top: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .scan-sweep {
    animation: none;
    top: 40%;
    opacity: 0.45;
  }
}

/* The scanner's stage: the live viewfinder fills the sheet, and once there is
   a photo it is PINNED at a fixed share of the height so the review list can
   scroll under it without ever scrolling it away (deck-card-scanner.md §7b).
   On a short viewport the list loses height, not the photo. */
.scan-stage { flex: 1 1 auto; }
[data-scan-state="result"] .scan-stage,
[data-scan-state="landed"] .scan-stage { flex: 0 0 42%; }
[data-scan-state="landed"] .scan-stage { opacity: 0.45; }
/* Priming has no viewfinder to fill, only one sentence about why we want a
   camera. At full height that sentence floats in the middle of a large empty
   box; at 38% it reads as a panel above the button that acts on it. */
[data-scan-state="priming"] .scan-stage { flex: 0 0 38%; }

/* Borders draw on in one pass, staggered ~30ms in reading order by an inline
   animation-delay. The resolve beat: it reads as the machine finishing. */
.scan-region { animation: scan-region-in 220ms ease-out both; }
@keyframes scan-region-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* The tap-to-find pulse, over the tapped spot while the local search runs. */
.scan-pulse {
  width: 44px;
  height: 44px;
  margin: -22px 0 0 -22px;
  border-radius: 50%;
  border: 2px solid #1CDECA;
  animation: scan-pulse-ring 1.1s ease-out infinite;
}
.scan-pulse::after {
  content: "";
  position: absolute;
  inset: 15px;
  border-radius: 50%;
  background: #1CDECA;
}
@keyframes scan-pulse-ring {
  from { box-shadow: 0 0 0 0 rgba(28, 222, 202, 0.35); }
  to { box-shadow: 0 0 0 26px rgba(28, 222, 202, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .scan-region { animation: none; }
  .scan-pulse { animation: none; box-shadow: 0 0 0 10px rgba(28, 222, 202, 0.2); }
}

/* Deck editor: bracket pill and Game Changer marks (B2026-10-03-2 (Brew
   bracket readout), docs/reference/bracket-calculator.md).

   The grid's GC badges turn amber while the deck holds more Game Changers than
   its declared bracket allows; #deck-card-collections carries the state, so a
   single attribute flips every badge without re-rendering a cell. */
[data-gc-over="true"] .gc-badge {
  background-color: #fbbf24;
  color: #041210;
}

/* A Game Changer card carries a primary ring, and its "Game Changer" mark
   shows in the middle of the card on hover. The ring is an inset outline on
   the image (both faces of a DFC), not a box-shadow (the image's shadow-md owns
   that) and not on the cell (Brew Buy's New ring is): inset, so a stacked
   card's clip-path keeps it on the 2.1rem sliver. Amber with the badges when
   the deck is over its bracket's allowance.

   The centre is the image's centre. On the grid, the shelf and a stack's last
   card the cell is exactly the image, so 50% works; a stacked card that is not
   last is a 2.1rem cell with the opened image hanging below it, so there cqw
   (the cell's width) stands in for the image height: half of a 0.716 card is
   69.8% of its width.

   That offset is a transform, never top. A badge whose box starts below its
   2.1rem cell made Firefox balance the stacks columns as if the group needed
   far more height, and every category collapsed into one column. A transform
   moves the paint, not the box, so the column layout never sees it. */
.gc-card > img {
  outline: 2px solid #1cdeca;
  outline-offset: -2px;
}
[data-gc-over="true"] .gc-card > img {
  outline-color: #fbbf24;
}
.gc-badge--center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 150ms ease;
}
.gc-card:hover .gc-badge--center,
.deck-card-cell--expanded.gc-card .gc-badge--center {
  opacity: 1;
}
.deck-stacks .deck-card-cell {
  container-type: inline-size;
}
.deck-stacks .deck-card-cell:not(:last-child) .gc-badge--center {
  top: 0;
  transform: translate(-50%, calc(69.8cqw - 50%));
}

/* The one motion on the pill: a single ring when what it says changes (a new
   bracket, or crossing into or out of amber). Never on load, never looping. */
.brew-bracket-pulse {
  animation: brew-bracket-pulse 900ms ease-out 1;
}
@keyframes brew-bracket-pulse {
  from { box-shadow: 0 0 0 0 rgba(28, 222, 202, 0.55); }
  to { box-shadow: 0 0 0 10px rgba(28, 222, 202, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .brew-bracket-pulse { animation: none; }
  .gc-badge--center { transition: none; }
}
/* Guided tour for the deck editor (brew page), built on driver.js.
   This file inlines driver.js's own stylesheet (vendor/javascript/driver.js is
   pinned via importmap, but importmap-rails/Sprockets has no CSS import
   resolution, so the base styles below are copied verbatim from
   node_modules/driver.js/dist/driver.css) followed by theme overrides adapted
   from app/frontend/game/tour/tour.css (same dark surface + teal accent used by
   the Playgroup Live board onboarding tour). Keep both in sync by hand if
   driver.js is upgraded. */

/* ── driver.js base (node_modules/driver.js/dist/driver.css, verbatim) ── */
.driver-active .driver-overlay,.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in .2s ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in .2s}.driver-popover{all:unset;box-sizing:border-box;color:#2d2d2d;margin:0;padding:15px;border-radius:5px;min-width:250px;max-width:300px;box-shadow:0 1px 10px #0006;z-index:1000000000;position:fixed;top:0;right:0;background-color:#fff}.driver-popover *{font-family:Helvetica Neue,Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.driver-popover-title{font:19px/normal sans-serif;font-weight:700;display:block;position:relative;line-height:1.5;zoom:1;margin:0}.driver-popover-close-btn{all:unset;position:absolute;top:0;right:0;width:32px;height:28px;cursor:pointer;font-size:18px;font-weight:500;color:#d2d2d2;z-index:1;text-align:center;transition:color;transition-duration:.2s}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{margin-bottom:0;font:14px/normal sans-serif;line-height:1.5;font-weight:400;zoom:1}.driver-popover-footer{margin-top:15px;text-align:right;zoom:1;display:flex;align-items:center;justify-content:space-between}.driver-popover-progress-text{font-size:13px;font-weight:400;color:#727272;zoom:1}.driver-popover-footer button{all:unset;display:inline-block;box-sizing:border-box;padding:3px 7px;text-decoration:none;text-shadow:1px 1px 0 #fff;background-color:#fff;color:#2d2d2d;font:12px/normal sans-serif;cursor:pointer;outline:0;zoom:1;line-height:1.3;border:1px solid #ccc;border-radius:3px}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}:not(body):has(>.driver-active-element){overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer button:hover,.driver-popover-footer button:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{display:flex;flex-grow:1;justify-content:flex-end}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";position:absolute;border:5px solid #fff}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{left:100%;border-right-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-right{right:100%;border-left-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-top{top:100%;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.driver-popover-arrow-side-bottom{bottom:100%;border-left-color:transparent;border-top-color:transparent;border-right-color:transparent}.driver-popover-arrow-side-center{display:none}.driver-popover-arrow-side-left.driver-popover-arrow-align-start,.driver-popover-arrow-side-right.driver-popover-arrow-align-start{top:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-start,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-start{left:15px}.driver-popover-arrow-align-end.driver-popover-arrow-side-left,.driver-popover-arrow-align-end.driver-popover-arrow-side-right{bottom:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-end,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-end{right:15px}.driver-popover-arrow-side-left.driver-popover-arrow-align-center,.driver-popover-arrow-side-right.driver-popover-arrow-align-center{top:50%;margin-top:-5px}.driver-popover-arrow-side-top.driver-popover-arrow-align-center,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-center{left:50%;margin-left:-5px}.driver-popover-arrow-none{display:none}

/* ── Theme overrides, adapted from app/frontend/game/tour/tour.css ── */

/* ── Overlay ── */
.driver-overlay {
  z-index: 10600 !important;
}

/* ── Popover container ── */
.driver-popover {
  z-index: 10601 !important;
  background: #161d1c !important;
  border: 1px solid #3F4947 !important;
  border-radius: 16px !important;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6) !important;
  color: #DDE4E1 !important;
  font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  max-width: 360px !important;
  padding: 20px !important;
}

/* ── Arrow ── */
.driver-popover-arrow {
  border-color: #161d1c !important;
}
.driver-popover-arrow-side-top {
  border-top-color: #161d1c !important;
}
.driver-popover-arrow-side-bottom {
  border-bottom-color: #161d1c !important;
}
.driver-popover-arrow-side-left {
  border-left-color: #161d1c !important;
}
.driver-popover-arrow-side-right {
  border-right-color: #161d1c !important;
}

/* ── Title ── */
.driver-popover-title {
  font-family: 'Oswald', 'Roboto', sans-serif !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  color: #DDE4E1 !important;
  margin-bottom: 8px !important;
}

/* ── Description ── */
.driver-popover-description {
  font-size: 13px !important;
  line-height: 1.6 !important;
  color: #BEC9C6 !important;
}

/* ── Navigation buttons ── */
.driver-popover-footer {
  margin-top: 16px !important;
  gap: 8px !important;
}

.driver-popover-navigation-btns {
  gap: 8px !important;
}

.driver-popover-next-btn {
  background: #1CDECA !important;
  color: #0e1513 !important;
  border: none !important;
  border-radius: 100px !important;
  padding: 6px 20px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  text-shadow: none !important;
}

.driver-popover-next-btn:hover {
  background: #57DDC4 !important;
}

.driver-popover-prev-btn {
  background: transparent !important;
  color: #BEC9C6 !important;
  border: 1px solid #3F4947 !important;
  border-radius: 100px !important;
  padding: 6px 16px !important;
  font-size: 13px !important;
  cursor: pointer !important;
  text-shadow: none !important;
}

.driver-popover-prev-btn:hover {
  color: #DDE4E1 !important;
  border-color: #BEC9C6 !important;
}

/* ── Close button ── */
.driver-popover-close-btn {
  color: #BEC9C6 !important;
}

.driver-popover-close-btn:hover {
  color: #DDE4E1 !important;
}

/* ── Progress text ── */
.driver-popover-progress-text {
  color: #6B7A77 !important;
  font-size: 12px !important;
}
/* Commander profiles. Plain CSS rather than Tailwind, so the palette is mirrored
   here as custom properties: every value below is the matching token from
   config/tailwind.config.js, named after it. Retune here, never inline a hex.
   See docs/reference/visual-style-guide.md. */
.cp-page, .cp-invitation, .cp-invite-button {
  --cp-teal:#1cdeca;           /* primary */
  --cp-teal-soft:#92f4e4;      /* primary90 */
  --cp-on-teal:#003731;        /* on_primary */
  --cp-surface:#0e1513;        /* surface */
  --cp-surface-low:#161d1c;    /* surface_container_low */
  --cp-panel:#1a2120;          /* surface_container */
  --cp-surface-high:#252b2a;   /* surface_container_high */
  --cp-text:#dde4e1;           /* on_surface */
  --cp-muted:#bec9c6;          /* on_surface_variant */
  --cp-line:#3f4947;           /* outline_variant */
  --cp-outline:#899390;        /* outline */
  /* Over artwork the tokens lose contrast, so the hero carries its own set. */
  --cp-hero-text:#f3f5f2;
  --cp-hero-muted:#a5b5ae;
  --cp-hero-faint:#9eaea7;
  --cp-hero-line:#5c6e674f;
  --cp-hero-rule:#82938c;
  --cp-hero-pill:#6a7974;
  --cp-warning:#f6c979;        /* validation only; the accent stays teal */
  --cp-track:#53645f;
}
.cp-page { max-width:1280px; margin:40px auto; color:var(--cp-text); }
.cp-page *, .cp-invitation * { box-sizing:border-box; }
.cp-page [hidden], .cp-invitation [hidden] { display:none!important; }
.cp-page h1,.cp-page h2,.cp-page legend,.cp-invitation h2 { font-family:Oswald,sans-serif; font-weight:500; }
.cp-page-heading h1 { font-size:clamp(32px,4vw,54px); line-height:1.12; margin:12px 0 18px; max-width:22ch; }
.cp-page-heading p { max-width:60ch; color:var(--cp-muted); margin-bottom:36px; }
/* The signature eyebrow: 10px, tracked, teal, over a short rule. */
.cp-kicker { display:block; color:var(--cp-teal); font-size:10px; font-weight:500; text-transform:uppercase; letter-spacing:.25em; }
.cp-kicker::after { content:''; display:block; width:40px; height:1px; margin-top:6px; background:var(--cp-teal); opacity:.5; }
.cp-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin:20px 0; }
.cp-toolbar>span:first-child { margin-right:auto; overflow-wrap:anywhere; }
.cp-primary,.cp-secondary { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:10px 22px; border-radius:40px; font-weight:500; text-decoration:none; cursor:pointer; transition:background-color 180ms ease, border-color 180ms ease, color 180ms ease; }
.cp-primary { background:var(--cp-teal); color:var(--cp-on-teal); border:1px solid var(--cp-teal); }
.cp-primary:hover { background:rgba(28,222,202,.9); border-color:rgba(28,222,202,.9); }
.cp-secondary { color:var(--cp-text); border:1px solid var(--cp-line); background:var(--cp-panel); }
.cp-secondary:hover { background:var(--cp-surface-high); border-color:var(--cp-outline); }
.cp-link { color:var(--cp-teal); text-decoration:underline; text-underline-offset:4px; cursor:pointer; padding:8px 0; transition:color 180ms ease; }
.cp-link:hover { color:var(--cp-teal-soft); }
.cp-page :focus-visible,.cp-invitation :focus-visible { outline:2px solid var(--cp-teal); outline-offset:4px; }
.cp-card { position:relative; isolation:isolate; overflow:hidden; border:1px solid var(--cp-line); border-radius:16px; background:var(--cp-surface-low); min-height:600px; display:grid; grid-template-columns:1fr 230px; grid-template-rows:1fr auto; gap:25px; padding:45px; color:var(--cp-hero-text); }
.cp-art,.cp-scrim { position:absolute; inset:0; width:100%; height:100%; z-index:-2; object-fit:cover; }
.cp-art { height:125%; top:calc(var(--cp-crop,50) * -0.25%); bottom:auto; }
/* Teal corner vignette over the scrim, in the corner furthest from the name. */
.cp-scrim { z-index:-1; background:radial-gradient(ellipse at 100% 100%,rgba(28,222,202,.10) 0%,transparent 55%),linear-gradient(0deg,var(--cp-surface) 10%,rgba(14,21,19,.83) 45%,rgba(14,21,19,.2)),linear-gradient(90deg,rgba(14,21,19,.5),transparent); }
.cp-topline { display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
.cp-supporter { font-size:11px; padding:5px 10px; border:1px solid var(--cp-hero-pill); border-radius:20px; text-transform:capitalize; }
.cp-tier-premium .cp-supporter,.cp-tier-ultimate .cp-supporter { border-color:var(--cp-teal); }
.cp-tier-ultimate .cp-supporter { background:#1cdeca18; box-shadow:0 0 18px #1cdeca20; }
.cp-identity { min-width:0; padding-top:12px; }
.cp-card h1 { font-family:Oswald,sans-serif; font-weight:600; text-transform:uppercase; font-size:clamp(38px,5vw,76px); line-height:1.05; margin:35px 0 20px; overflow-wrap:anywhere; }
.cp-headline { font-size:20px; line-height:1.5; max-width:38ch; overflow-wrap:anywhere; }
.cp-colors { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:18px; font-size:12px; }
.cp-colors>span:last-child { margin-left:8px; }
.cp-tags { display:flex; flex-wrap:wrap; list-style:none; gap:8px; margin:22px 0; padding:0; }
.cp-tags li { border-bottom:1px solid var(--cp-hero-rule); font-size:14px; padding:5px 0; margin-right:12px; overflow-wrap:anywhere; }
.cp-favourite { align-self:center; margin:15px 0; }
.cp-favourite img { width:100%; max-width:210px; border-radius:10px; transform:rotate(5deg); box-shadow:0 15px 40px #0008; }
.cp-favourite figcaption { margin-top:24px; display:flex; flex-direction:column; gap:8px; line-height:1.4; }
.cp-favourite strong { font-size:15px; }
.cp-bottom { grid-column:1/-1; }
.cp-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; border-bottom:1px solid var(--cp-hero-line); padding-bottom:25px; }
.cp-facts strong { font:500 clamp(24px,4vw,48px)/1 Oswald,sans-serif; display:block; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.cp-facts>div:first-child strong { color:var(--cp-teal); }
.cp-facts span { display:block; margin-top:12px; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.cp-pins { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; padding:24px 0; }
.cp-pin { display:flex; gap:12px; align-items:flex-start; text-decoration:none; color:inherit; min-width:0; }
.cp-achievement-art { width:34px; height:34px; object-fit:contain; flex:none; }
.cp-accomplishment { min-width:0; }
.cp-accomplishment strong { display:block; font:500 16px/1.35 Oswald,sans-serif; overflow-wrap:anywhere; }
.cp-achievement-label { display:block; font-size:11px; line-height:1.8; margin-top:5px; color:var(--cp-muted); }
.cp-metal { display:inline-block; width:6px; height:6px; transform:rotate(45deg); margin:0 5px; }
.cp-accomplishment small { color:var(--cp-hero-muted); font-size:11px; }
.cp-signature { display:flex; justify-content:space-between; gap:20px; font-size:12px; padding:18px 0 5px; border-top:1px solid var(--cp-hero-line); overflow-wrap:anywhere; }
.cp-signature>span:first-child { color:var(--cp-teal); }
.cp-credit { position:absolute; right:16px; bottom:8px; color:var(--cp-hero-faint); font-size:9px; }
.cp-section { margin-top:44px; }
/* Section headings stay quiet Roboto; the Oswald numerals carry the weight. */
.cp-section h2 { font-family:inherit; font-size:16px; font-weight:500; letter-spacing:0; margin-bottom:18px; }
.cp-deck { display:flex; gap:18px; align-items:center; padding:20px 0; border-top:1px solid var(--cp-line); }
.cp-deck>img { width:90px; height:64px; object-fit:cover; border-radius:6px; }
.cp-deck-name { font:500 21px/1.3 Oswald,sans-serif; overflow-wrap:anywhere; transition:color 180ms ease; }
.cp-deck-name:hover { color:var(--cp-teal); }
.cp-deck p { font-size:13px; color:var(--cp-muted); }
.cp-deck-stats { display:flex; flex-wrap:wrap; gap:24px; margin-left:auto; }
.cp-deck-stats dd { font:500 26px/1.2 Oswald,sans-serif; margin:0; font-variant-numeric:tabular-nums; }
.cp-deck-stats dt { color:var(--cp-muted); font-size:11px; }
.cp-achievements { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.cp-help { font-size:13px; line-height:1.6; color:var(--cp-muted); margin:10px 0 18px; max-width:65ch; }
.cp-page .cp-status-error, .cp-invitation .cp-status-error,.cp-selection-feedback { color:var(--cp-warning); }
.cp-selection-feedback:empty { display:none; }
.cp-status { min-height:24px; color:var(--cp-teal); line-height:1.5; }
.cp-notice,.cp-privacy { padding:20px; border-left:2px solid var(--cp-teal); background:var(--cp-panel); margin:20px 0; }
.cp-privacy h2 { font-size:20px; margin-bottom:10px; }
.cp-privacy p { color:var(--cp-muted); font-size:13px; line-height:1.6; margin:10px 0; }
.cp-editor { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:55px; align-items:start; }
.cp-preview { position:sticky; top:24px; }
.cp-preview .cp-card { padding:24px; min-height:450px; grid-template-columns:1fr 110px; gap:16px; }
.cp-preview .cp-card h1 { font-size:38px; margin-top:25px; }
.cp-preview .cp-headline { font-size:16px; }
.cp-preview .cp-favourite { font-size:12px; }
.cp-preview .cp-pins { grid-template-columns:1fr; gap:14px; }
.cp-preview .cp-facts strong { font-size:28px; }
.cp-preview .cp-favourite figcaption { font-size:11px; }
.cp-fields fieldset { border:0; border-top:1px solid var(--cp-line); margin:0 0 32px; padding:24px 0 0; min-width:0; }
.cp-fields legend { font-size:25px; padding-right:16px; }
.cp-page label { display:block; font-size:14px; margin:16px 0 7px; }
.cp-page input[type=text],.cp-page input:not([type]),.cp-page input[type=search],.cp-page select,.cp-page textarea,.cp-picker input { width:100%; border:1px solid var(--cp-line); border-radius:6px; background:var(--cp-surface-low); color:var(--cp-text); padding:12px; font:inherit; height:auto; min-height:44px; }
.cp-page input[type=range] { width:100%; accent-color:var(--cp-teal); }
.cp-page input[type=checkbox] { accent-color:var(--cp-teal); flex:none; }
.cp-handle { display:flex; align-items:center; gap:8px; font-size:13px; }
.cp-handle>span { white-space:nowrap; flex:none; }
.cp-page .cp-handle input { min-width:0; width:0; flex:1; }
.cp-choices { display:flex; flex-wrap:wrap; gap:8px; }
.cp-page .cp-choice { display:flex; align-items:center; gap:8px; padding:10px 12px; border:1px solid var(--cp-line); border-radius:20px; margin:0; font-size:13px; flex-wrap:wrap; transition:background-color 180ms ease, border-color 180ms ease; }
.cp-page .cp-choice:hover { background:var(--cp-surface-high); border-color:var(--cp-outline); }
.cp-page .cp-choice:has(:checked) { border-color:var(--cp-teal); background:#1cdeca0a; }
.cp-page .cp-choice:has(:checked):hover { background:#1cdeca1a; }
.cp-page .cp-pin-choice { display:flex; align-items:center; gap:12px; padding:12px 0; margin:0; }
.cp-art-controls,.cp-editor-actions { display:flex; flex-wrap:wrap; gap:12px; }
.cp-editor-actions { position:sticky; bottom:0; z-index:2; align-items:center; margin-top:8px; padding:14px 0 16px; background:var(--cp-surface); border-top:1px solid var(--cp-line); box-shadow:0 -12px 24px -12px rgba(0,0,0,.55); }
.cp-editor-actions .cp-status { flex:1 1 220px; min-height:0; margin:0; }
.cp-order-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:10px 0; border-bottom:1px solid var(--cp-line); }
.cp-order-row>span { flex:1; }
.cp-order-row button { min-width:36px; min-height:36px; border:1px solid var(--cp-line); border-radius:5px; transition:background-color 180ms ease, border-color 180ms ease; }
.cp-order-row button:hover:not(:disabled) { background:var(--cp-surface-high); border-color:var(--cp-outline); }
.cp-picker,.cp-invitation { color:var(--cp-text); background:var(--cp-surface); border:1px solid var(--cp-line); border-radius:18px; padding:28px; width:min(940px,94vw); max-height:90vh; overflow:auto; }
.cp-picker::backdrop,.cp-invitation::backdrop { background:#000b; backdrop-filter:blur(4px); }
.cp-picker h2,.cp-invitation h2 { font:500 32px/1.15 Oswald,sans-serif; }
.cp-picker input { width:100%; }
/* The printings grid inside is the deck editor's shared partial, so it brings
   its own Tailwind layout. Only the card-name list above it is styled here. */
.cp-search-results { margin-top:20px; }
.cp-card-results { list-style:none; margin:0; padding:0; }
.cp-card-result { display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:10px 12px; border-radius:8px; background:transparent; cursor:pointer; transition:background-color 180ms ease; }
.cp-card-result:hover { background:var(--cp-surface-high); }
.cp-card-result img { width:40px; border-radius:4px; flex:none; }
.cp-report { margin-top:40px; font-size:13px; color:var(--cp-muted); }
.cp-report form { max-width:500px; }
.cp-invitation .cp-card { min-height:450px; margin-top:25px; padding:28px; }
/* Sticky footer spanning the dialog's padding (28px, 16px on phones). */
.cp-invitation-actions { position:sticky; bottom:-28px; z-index:1; margin:24px -28px -28px; padding:4px 28px 12px; background:var(--cp-surface); border-top:1px solid var(--cp-line); }
.cp-invitation-actions .cp-toolbar { margin:12px 0 4px; gap:12px; }
.cp-invitation-actions .cp-help { margin:4px 0 0; }
.cp-invitation-actions .cp-status { min-height:0; }
@media(max-width:800px) { .cp-editor { grid-template-columns:1fr; gap:30px; } .cp-preview { position:static; } .cp-card { padding:25px; grid-template-columns:1fr 140px; min-height:500px; } .cp-card h1 { font-size:46px; } .cp-pins { grid-template-columns:1fr; gap:16px; } .cp-achievements { grid-template-columns:repeat(2,minmax(0,1fr)); } .cp-deck { flex-wrap:wrap; } .cp-deck-stats { flex-basis:100%; margin-left:0; } }
@media(max-width:480px) { .cp-page { margin:24px auto; } .cp-card,.cp-preview .cp-card,.cp-invitation .cp-card { grid-template-columns:1fr; padding:20px; gap:18px; } .cp-card h1 { font-size:38px; } .cp-favourite { display:flex; align-items:center; gap:20px; margin:0; } .cp-favourite img { width:95px; flex:none; } .cp-favourite figcaption { margin:0; } .cp-facts { gap:10px; } .cp-facts strong { font-size:28px; } .cp-facts span { font-size:9px; letter-spacing:.05em; } .cp-achievements { grid-template-columns:1fr; } .cp-picker,.cp-invitation { padding:16px; } .cp-invitation-actions { bottom:-16px; margin:20px -16px -16px; padding:2px 16px 10px; } .cp-invitation-actions .cp-primary,.cp-invitation-actions .cp-secondary { padding:10px 16px; } .cp-signature { font-size:10px; } }
@media(prefers-reduced-motion:reduce) { .cp-page *,.cp-invitation * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

.cp-crop-labels { display:flex; justify-content:space-between; color:var(--cp-muted); font-size:12px; margin:0 0 4px; }
.cp-page input.cp-crop[type=range] { appearance:none; -webkit-appearance:none; display:block; height:32px; min-height:32px; padding:0; margin:0 0 12px; border:0; box-shadow:none; background:transparent; cursor:ew-resize; }
.cp-page input.cp-crop[type=range]::-webkit-slider-runnable-track { height:4px; background:var(--cp-track); border-radius:4px; }
.cp-page input.cp-crop[type=range]::-moz-range-track { height:4px; background:var(--cp-track); border-radius:4px; }
/* border-box on both thumbs, or Chrome renders 24px against Firefox's 18px. */
.cp-page input.cp-crop[type=range]::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; box-sizing:border-box; width:18px; height:18px; margin-top:-7px; border:3px solid var(--cp-surface); border-radius:50%; background:var(--cp-teal); box-shadow:0 0 0 1px var(--cp-teal); }
.cp-page input.cp-crop[type=range]::-moz-range-thumb { box-sizing:border-box; width:18px; height:18px; border:3px solid var(--cp-surface); border-radius:50%; background:var(--cp-teal); box-shadow:0 0 0 1px var(--cp-teal); }
.cp-crop:focus-visible { outline-offset:3px; border-radius:5px; }

/* The invitation, as a pill on the stats page's setup button (2026-09-25).
   While it is new, a comet circles the button's border: an SVG outline over
   the 1px border (a ring OUTSIDE the button would be clipped by the action
   row's overflow-auto). The svg sits .75px inside the border box, so the 1.5px
   stroke centred on its edge covers the border exactly. pathLength=100 makes
   the dashes a share of the perimeter, so the speed is constant around the
   rounded corners. The tail's offset trails the head's by 20 so both lead
   edges meet: head [p, p+10], tail [p-20, p+10]. One motion only: the pill is
   static. Reduced motion gets a plain teal border instead. */
.cp-new-pill { display:inline-flex; align-items:center; height:18px; padding:0 7px; border-radius:9px; background:var(--cp-teal); color:var(--cp-on-teal); font-size:11px; font-weight:600; letter-spacing:.02em; line-height:1; }
.cp-new-pill[hidden] { display:none; }
.cp-snake { display:none; position:absolute; top:.75px; left:.75px; width:calc(100% - 1.5px); height:calc(100% - 1.5px); overflow:visible; pointer-events:none; }
.cp-snake rect { fill:none; stroke:var(--cp-teal); stroke-width:1.5; stroke-linecap:round; }
.cp-snake-head { stroke-dasharray:10 90; }
.cp-snake-tail { stroke-dasharray:30 70; stroke-opacity:.35; }
.cp-invite-button.cp-invite-new { border-color:var(--cp-teal); }
@media(prefers-reduced-motion:no-preference) {
  .cp-invite-button.cp-invite-new { border-color:rgba(28,222,202,.18); }
  .cp-invite-new .cp-snake { display:block; }
  .cp-invite-new .cp-snake-head { animation:cp-snake-head 3.2s linear infinite; }
  .cp-invite-new .cp-snake-tail { animation:cp-snake-tail 3.2s linear infinite; }
}
@keyframes cp-snake-head { from { stroke-dashoffset:0; } to { stroke-dashoffset:-100; } }
@keyframes cp-snake-tail { from { stroke-dashoffset:20; } to { stroke-dashoffset:-80; } }
@tailwind base;
@tailwind components;
@tailwind utilities;

/* List every utility class you will use in e-mails */
body {
  @apply text-sm;
}

ol {
  @apply list-decimal list-inside;
}

ol li {
  @apply py-1;
}

.title {
  @apply font-bold text-xl py-3;
}

p {
  @apply py-2;
}

.email-feature-list {
  @apply list-disc list-outside pl-5 my-2;
}

.email-feature-list li {
  @apply py-1 leading-6;
}

a {
  @apply underline;
}

p.attention {
  @apply italic py-2.5;
}

p.unobtrusive {
  @apply text-xs;
}

.title_test2 {
  @apply font-medium text-5xl;
}

.maran-test {
  @apply text-2xl font-bold;
}

 
 @media all and (max-width: 1024px) {

 .promo-bg {
    background-image: linear-gradient(to top, rgba(20, 18, 24, 0), rgba(20, 18, 24, 0.5)), url(https://playgroup.gg/assets/promo-landing-dddc74ab2fa741beba63f7229876bd6860fcdd05964643f492f00f91e6da45d2.webp);       
    background-repeat: repeat-x;  
    background-size: contain; 
    width: 5000px;
    animation: slide 40s linear infinite;   
    
  }
}
  .commander-bg {
  background-image: linear-gradient(to right, rgba(24, 27, 41, 0.7) 100%, rgba(24, 27, 42, 0)), url('https://cards.scryfall.io/art_crop/front/7/b/7bf6baf2-d20b-467d-8929-abefcf7dfa99.jpg');  
  background-repeat: no-repeat; 
  background-size:cover;
  }

/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *




 */
/*!
 * Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2022 Fonticons, Inc.
 */
@import url("https://fonts.googleapis.com/css2?family=Oswald:wght@100;200;300;400;500;600;700;800;900&family=Roboto:wght@100;200;300;400;500;600;700;800;900&display=swap");
.fa {
  font-family: var(--fa-style-family, "Font Awesome 6 Free");
  font-weight: var(--fa-style, 900); }

.fa,
.fa-classic,
.fa-sharp,
.fas,
.fa-solid,
.far,
.fa-regular,
.fab,
.fa-brands {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: var(--fa-display, inline-block);
  font-style: normal;
  font-variant: normal;
  line-height: 1;
  text-rendering: auto; }

.fas,
.fa-classic,
.fa-solid,
.far,
.fa-regular {
  font-family: 'Font Awesome 6 Free'; }

.fab,
.fa-brands {
  font-family: 'Font Awesome 6 Brands'; }

.fa-1x {
  font-size: 1em; }

.fa-2x {
  font-size: 2em; }

.fa-3x {
  font-size: 3em; }

.fa-4x {
  font-size: 4em; }

.fa-5x {
  font-size: 5em; }

.fa-6x {
  font-size: 6em; }

.fa-7x {
  font-size: 7em; }

.fa-8x {
  font-size: 8em; }

.fa-9x {
  font-size: 9em; }

.fa-10x {
  font-size: 10em; }

.fa-2xs {
  font-size: 0.625em;
  line-height: 0.1em;
  vertical-align: 0.225em; }

.fa-xs {
  font-size: 0.75em;
  line-height: 0.0833333337em;
  vertical-align: 0.125em; }

.fa-sm {
  font-size: 0.875em;
  line-height: 0.0714285718em;
  vertical-align: 0.0535714295em; }

.fa-lg {
  font-size: 1.25em;
  line-height: 0.05em;
  vertical-align: -0.075em; }

.fa-xl {
  font-size: 1.5em;
  line-height: 0.0416666682em;
  vertical-align: -0.125em; }

.fa-2xl {
  font-size: 2em;
  line-height: 0.03125em;
  vertical-align: -0.1875em; }

.fa-fw {
  text-align: center;
  width: 1.25em; }

.fa-ul {
  list-style-type: none;
  margin-left: var(--fa-li-margin, 2.5em);
  padding-left: 0; }
  .fa-ul > li {
    position: relative; }

.fa-li {
  left: calc(var(--fa-li-width, 2em) * -1);
  position: absolute;
  text-align: center;
  width: var(--fa-li-width, 2em);
  line-height: inherit; }

.fa-border {
  border-color: var(--fa-border-color, #eee);
  border-radius: var(--fa-border-radius, 0.1em);
  border-style: var(--fa-border-style, solid);
  border-width: var(--fa-border-width, 0.08em);
  padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }

.fa-pull-left {
  float: left;
  margin-right: var(--fa-pull-margin, 0.3em); }

.fa-pull-right {
  float: right;
  margin-left: var(--fa-pull-margin, 0.3em); }

.fa-beat {
  animation-name: fa-beat;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out); }

.fa-bounce {
  animation-name: fa-bounce;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }

.fa-fade {
  animation-name: fa-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }

.fa-beat-fade {
  animation-name: fa-beat-fade;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }

.fa-flip {
  animation-name: fa-flip;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, ease-in-out); }

.fa-shake {
  animation-name: fa-shake;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear); }

.fa-spin {
  animation-name: fa-spin;
  animation-delay: var(--fa-animation-delay, 0s);
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 2s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, linear); }

.fa-spin-reverse {
  --fa-animation-direction: reverse; }

.fa-pulse,
.fa-spin-pulse {
  animation-name: fa-spin;
  animation-direction: var(--fa-animation-direction, normal);
  animation-duration: var(--fa-animation-duration, 1s);
  animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  animation-timing-function: var(--fa-animation-timing, steps(8)); }

@media (prefers-reduced-motion: reduce) {
  .fa-beat,
  .fa-bounce,
  .fa-fade,
  .fa-beat-fade,
  .fa-flip,
  .fa-pulse,
  .fa-shake,
  .fa-spin,
  .fa-spin-pulse {
    animation-delay: -1ms;
    animation-duration: 1ms;
    animation-iteration-count: 1;
    transition-delay: 0s;
    transition-duration: 0s; } }

@keyframes fa-beat {
  0%, 90% {
    transform: scale(1); }
  45% {
    transform: scale(var(--fa-beat-scale, 1.25)); } }

@keyframes fa-bounce {
  0% {
    transform: scale(1, 1) translateY(0); }
  10% {
    transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
  30% {
    transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
  50% {
    transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
  57% {
    transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
  64% {
    transform: scale(1, 1) translateY(0); }
  100% {
    transform: scale(1, 1) translateY(0); } }

@keyframes fa-fade {
  50% {
    opacity: var(--fa-fade-opacity, 0.4); } }

@keyframes fa-beat-fade {
  0%, 100% {
    opacity: var(--fa-beat-fade-opacity, 0.4);
    transform: scale(1); }
  50% {
    opacity: 1;
    transform: scale(var(--fa-beat-fade-scale, 1.125)); } }

@keyframes fa-flip {
  50% {
    transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }

@keyframes fa-shake {
  0% {
    transform: rotate(-15deg); }
  4% {
    transform: rotate(15deg); }
  8%, 24% {
    transform: rotate(-18deg); }
  12%, 28% {
    transform: rotate(18deg); }
  16% {
    transform: rotate(-22deg); }
  20% {
    transform: rotate(22deg); }
  32% {
    transform: rotate(-12deg); }
  36% {
    transform: rotate(12deg); }
  40%, 100% {
    transform: rotate(0deg); } }

@keyframes fa-spin {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

.fa-rotate-90 {
  transform: rotate(90deg); }

.fa-rotate-180 {
  transform: rotate(180deg); }

.fa-rotate-270 {
  transform: rotate(270deg); }

.fa-flip-horizontal {
  transform: scale(-1, 1); }

.fa-flip-vertical {
  transform: scale(1, -1); }

.fa-flip-both,
.fa-flip-horizontal.fa-flip-vertical {
  transform: scale(-1, -1); }

.fa-rotate-by {
  transform: rotate(var(--fa-rotate-angle, 0)); }

.fa-stack {
  display: inline-block;
  height: 2em;
  line-height: 2em;
  position: relative;
  vertical-align: middle;
  width: 2.5em; }

.fa-stack-1x,
.fa-stack-2x {
  left: 0;
  position: absolute;
  text-align: center;
  width: 100%;
  z-index: var(--fa-stack-z-index, auto); }

.fa-stack-1x {
  line-height: inherit; }

.fa-stack-2x {
  font-size: 2em; }

.fa-inverse {
  color: var(--fa-inverse, #fff); }

/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-0::before {
  content: "\30"; }

.fa-1::before {
  content: "\31"; }

.fa-2::before {
  content: "\32"; }

.fa-3::before {
  content: "\33"; }

.fa-4::before {
  content: "\34"; }

.fa-5::before {
  content: "\35"; }

.fa-6::before {
  content: "\36"; }

.fa-7::before {
  content: "\37"; }

.fa-8::before {
  content: "\38"; }

.fa-9::before {
  content: "\39"; }

.fa-fill-drip::before {
  content: "\f576"; }

.fa-arrows-to-circle::before {
  content: "\e4bd"; }

.fa-circle-chevron-right::before {
  content: "\f138"; }

.fa-chevron-circle-right::before {
  content: "\f138"; }

.fa-at::before {
  content: "\40"; }

.fa-trash-can::before {
  content: "\f2ed"; }

.fa-trash-alt::before {
  content: "\f2ed"; }

.fa-text-height::before {
  content: "\f034"; }

.fa-user-xmark::before {
  content: "\f235"; }

.fa-user-times::before {
  content: "\f235"; }

.fa-stethoscope::before {
  content: "\f0f1"; }

.fa-message::before {
  content: "\f27a"; }

.fa-comment-alt::before {
  content: "\f27a"; }

.fa-info::before {
  content: "\f129"; }

.fa-down-left-and-up-right-to-center::before {
  content: "\f422"; }

.fa-compress-alt::before {
  content: "\f422"; }

.fa-explosion::before {
  content: "\e4e9"; }

.fa-file-lines::before {
  content: "\f15c"; }

.fa-file-alt::before {
  content: "\f15c"; }

.fa-file-text::before {
  content: "\f15c"; }

.fa-wave-square::before {
  content: "\f83e"; }

.fa-ring::before {
  content: "\f70b"; }

.fa-building-un::before {
  content: "\e4d9"; }

.fa-dice-three::before {
  content: "\f527"; }

.fa-calendar-days::before {
  content: "\f073"; }

.fa-calendar-alt::before {
  content: "\f073"; }

.fa-anchor-circle-check::before {
  content: "\e4aa"; }

.fa-building-circle-arrow-right::before {
  content: "\e4d1"; }

.fa-volleyball::before {
  content: "\f45f"; }

.fa-volleyball-ball::before {
  content: "\f45f"; }

.fa-arrows-up-to-line::before {
  content: "\e4c2"; }

.fa-sort-down::before {
  content: "\f0dd"; }

.fa-sort-desc::before {
  content: "\f0dd"; }

.fa-circle-minus::before {
  content: "\f056"; }

.fa-minus-circle::before {
  content: "\f056"; }

.fa-door-open::before {
  content: "\f52b"; }

.fa-right-from-bracket::before {
  content: "\f2f5"; }

.fa-sign-out-alt::before {
  content: "\f2f5"; }

.fa-atom::before {
  content: "\f5d2"; }

.fa-soap::before {
  content: "\e06e"; }

.fa-icons::before {
  content: "\f86d"; }

.fa-heart-music-camera-bolt::before {
  content: "\f86d"; }

.fa-microphone-lines-slash::before {
  content: "\f539"; }

.fa-microphone-alt-slash::before {
  content: "\f539"; }

.fa-bridge-circle-check::before {
  content: "\e4c9"; }

.fa-pump-medical::before {
  content: "\e06a"; }

.fa-fingerprint::before {
  content: "\f577"; }

.fa-hand-point-right::before {
  content: "\f0a4"; }

.fa-magnifying-glass-location::before {
  content: "\f689"; }

.fa-search-location::before {
  content: "\f689"; }

.fa-forward-step::before {
  content: "\f051"; }

.fa-step-forward::before {
  content: "\f051"; }

.fa-face-smile-beam::before {
  content: "\f5b8"; }

.fa-smile-beam::before {
  content: "\f5b8"; }

.fa-flag-checkered::before {
  content: "\f11e"; }

.fa-football::before {
  content: "\f44e"; }

.fa-football-ball::before {
  content: "\f44e"; }

.fa-school-circle-exclamation::before {
  content: "\e56c"; }

.fa-crop::before {
  content: "\f125"; }

.fa-angles-down::before {
  content: "\f103"; }

.fa-angle-double-down::before {
  content: "\f103"; }

.fa-users-rectangle::before {
  content: "\e594"; }

.fa-people-roof::before {
  content: "\e537"; }

.fa-people-line::before {
  content: "\e534"; }

.fa-beer-mug-empty::before {
  content: "\f0fc"; }

.fa-beer::before {
  content: "\f0fc"; }

.fa-diagram-predecessor::before {
  content: "\e477"; }

.fa-arrow-up-long::before {
  content: "\f176"; }

.fa-long-arrow-up::before {
  content: "\f176"; }

.fa-fire-flame-simple::before {
  content: "\f46a"; }

.fa-burn::before {
  content: "\f46a"; }

.fa-person::before {
  content: "\f183"; }

.fa-male::before {
  content: "\f183"; }

.fa-laptop::before {
  content: "\f109"; }

.fa-file-csv::before {
  content: "\f6dd"; }

.fa-menorah::before {
  content: "\f676"; }

.fa-truck-plane::before {
  content: "\e58f"; }

.fa-record-vinyl::before {
  content: "\f8d9"; }

.fa-face-grin-stars::before {
  content: "\f587"; }

.fa-grin-stars::before {
  content: "\f587"; }

.fa-bong::before {
  content: "\f55c"; }

.fa-spaghetti-monster-flying::before {
  content: "\f67b"; }

.fa-pastafarianism::before {
  content: "\f67b"; }

.fa-arrow-down-up-across-line::before {
  content: "\e4af"; }

.fa-spoon::before {
  content: "\f2e5"; }

.fa-utensil-spoon::before {
  content: "\f2e5"; }

.fa-jar-wheat::before {
  content: "\e517"; }

.fa-envelopes-bulk::before {
  content: "\f674"; }

.fa-mail-bulk::before {
  content: "\f674"; }

.fa-file-circle-exclamation::before {
  content: "\e4eb"; }

.fa-circle-h::before {
  content: "\f47e"; }

.fa-hospital-symbol::before {
  content: "\f47e"; }

.fa-pager::before {
  content: "\f815"; }

.fa-address-book::before {
  content: "\f2b9"; }

.fa-contact-book::before {
  content: "\f2b9"; }

.fa-strikethrough::before {
  content: "\f0cc"; }

.fa-k::before {
  content: "\4b"; }

.fa-landmark-flag::before {
  content: "\e51c"; }

.fa-pencil::before {
  content: "\f303"; }

.fa-pencil-alt::before {
  content: "\f303"; }

.fa-backward::before {
  content: "\f04a"; }

.fa-caret-right::before {
  content: "\f0da"; }

.fa-comments::before {
  content: "\f086"; }

.fa-paste::before {
  content: "\f0ea"; }

.fa-file-clipboard::before {
  content: "\f0ea"; }

.fa-code-pull-request::before {
  content: "\e13c"; }

.fa-clipboard-list::before {
  content: "\f46d"; }

.fa-truck-ramp-box::before {
  content: "\f4de"; }

.fa-truck-loading::before {
  content: "\f4de"; }

.fa-user-check::before {
  content: "\f4fc"; }

.fa-vial-virus::before {
  content: "\e597"; }

.fa-sheet-plastic::before {
  content: "\e571"; }

.fa-blog::before {
  content: "\f781"; }

.fa-user-ninja::before {
  content: "\f504"; }

.fa-person-arrow-up-from-line::before {
  content: "\e539"; }

.fa-scroll-torah::before {
  content: "\f6a0"; }

.fa-torah::before {
  content: "\f6a0"; }

.fa-broom-ball::before {
  content: "\f458"; }

.fa-quidditch::before {
  content: "\f458"; }

.fa-quidditch-broom-ball::before {
  content: "\f458"; }

.fa-toggle-off::before {
  content: "\f204"; }

.fa-box-archive::before {
  content: "\f187"; }

.fa-archive::before {
  content: "\f187"; }

.fa-person-drowning::before {
  content: "\e545"; }

.fa-arrow-down-9-1::before {
  content: "\f886"; }

.fa-sort-numeric-desc::before {
  content: "\f886"; }

.fa-sort-numeric-down-alt::before {
  content: "\f886"; }

.fa-face-grin-tongue-squint::before {
  content: "\f58a"; }

.fa-grin-tongue-squint::before {
  content: "\f58a"; }

.fa-spray-can::before {
  content: "\f5bd"; }

.fa-truck-monster::before {
  content: "\f63b"; }

.fa-w::before {
  content: "\57"; }

.fa-earth-africa::before {
  content: "\f57c"; }

.fa-globe-africa::before {
  content: "\f57c"; }

.fa-rainbow::before {
  content: "\f75b"; }

.fa-circle-notch::before {
  content: "\f1ce"; }

.fa-tablet-screen-button::before {
  content: "\f3fa"; }

.fa-tablet-alt::before {
  content: "\f3fa"; }

.fa-paw::before {
  content: "\f1b0"; }

.fa-cloud::before {
  content: "\f0c2"; }

.fa-trowel-bricks::before {
  content: "\e58a"; }

.fa-face-flushed::before {
  content: "\f579"; }

.fa-flushed::before {
  content: "\f579"; }

.fa-hospital-user::before {
  content: "\f80d"; }

.fa-tent-arrow-left-right::before {
  content: "\e57f"; }

.fa-gavel::before {
  content: "\f0e3"; }

.fa-legal::before {
  content: "\f0e3"; }

.fa-binoculars::before {
  content: "\f1e5"; }

.fa-microphone-slash::before {
  content: "\f131"; }

.fa-box-tissue::before {
  content: "\e05b"; }

.fa-motorcycle::before {
  content: "\f21c"; }

.fa-bell-concierge::before {
  content: "\f562"; }

.fa-concierge-bell::before {
  content: "\f562"; }

.fa-pen-ruler::before {
  content: "\f5ae"; }

.fa-pencil-ruler::before {
  content: "\f5ae"; }

.fa-people-arrows::before {
  content: "\e068"; }

.fa-people-arrows-left-right::before {
  content: "\e068"; }

.fa-mars-and-venus-burst::before {
  content: "\e523"; }

.fa-square-caret-right::before {
  content: "\f152"; }

.fa-caret-square-right::before {
  content: "\f152"; }

.fa-scissors::before {
  content: "\f0c4"; }

.fa-cut::before {
  content: "\f0c4"; }

.fa-sun-plant-wilt::before {
  content: "\e57a"; }

.fa-toilets-portable::before {
  content: "\e584"; }

.fa-hockey-puck::before {
  content: "\f453"; }

.fa-table::before {
  content: "\f0ce"; }

.fa-magnifying-glass-arrow-right::before {
  content: "\e521"; }

.fa-tachograph-digital::before {
  content: "\f566"; }

.fa-digital-tachograph::before {
  content: "\f566"; }

.fa-users-slash::before {
  content: "\e073"; }

.fa-clover::before {
  content: "\e139"; }

.fa-reply::before {
  content: "\f3e5"; }

.fa-mail-reply::before {
  content: "\f3e5"; }

.fa-star-and-crescent::before {
  content: "\f699"; }

.fa-house-fire::before {
  content: "\e50c"; }

.fa-square-minus::before {
  content: "\f146"; }

.fa-minus-square::before {
  content: "\f146"; }

.fa-helicopter::before {
  content: "\f533"; }

.fa-compass::before {
  content: "\f14e"; }

.fa-square-caret-down::before {
  content: "\f150"; }

.fa-caret-square-down::before {
  content: "\f150"; }

.fa-file-circle-question::before {
  content: "\e4ef"; }

.fa-laptop-code::before {
  content: "\f5fc"; }

.fa-swatchbook::before {
  content: "\f5c3"; }

.fa-prescription-bottle::before {
  content: "\f485"; }

.fa-bars::before {
  content: "\f0c9"; }

.fa-navicon::before {
  content: "\f0c9"; }

.fa-people-group::before {
  content: "\e533"; }

.fa-hourglass-end::before {
  content: "\f253"; }

.fa-hourglass-3::before {
  content: "\f253"; }

.fa-heart-crack::before {
  content: "\f7a9"; }

.fa-heart-broken::before {
  content: "\f7a9"; }

.fa-square-up-right::before {
  content: "\f360"; }

.fa-external-link-square-alt::before {
  content: "\f360"; }

.fa-face-kiss-beam::before {
  content: "\f597"; }

.fa-kiss-beam::before {
  content: "\f597"; }

.fa-film::before {
  content: "\f008"; }

.fa-ruler-horizontal::before {
  content: "\f547"; }

.fa-people-robbery::before {
  content: "\e536"; }

.fa-lightbulb::before {
  content: "\f0eb"; }

.fa-caret-left::before {
  content: "\f0d9"; }

.fa-circle-exclamation::before {
  content: "\f06a"; }

.fa-exclamation-circle::before {
  content: "\f06a"; }

.fa-school-circle-xmark::before {
  content: "\e56d"; }

.fa-arrow-right-from-bracket::before {
  content: "\f08b"; }

.fa-sign-out::before {
  content: "\f08b"; }

.fa-circle-chevron-down::before {
  content: "\f13a"; }

.fa-chevron-circle-down::before {
  content: "\f13a"; }

.fa-unlock-keyhole::before {
  content: "\f13e"; }

.fa-unlock-alt::before {
  content: "\f13e"; }

.fa-cloud-showers-heavy::before {
  content: "\f740"; }

.fa-headphones-simple::before {
  content: "\f58f"; }

.fa-headphones-alt::before {
  content: "\f58f"; }

.fa-sitemap::before {
  content: "\f0e8"; }

.fa-circle-dollar-to-slot::before {
  content: "\f4b9"; }

.fa-donate::before {
  content: "\f4b9"; }

.fa-memory::before {
  content: "\f538"; }

.fa-road-spikes::before {
  content: "\e568"; }

.fa-fire-burner::before {
  content: "\e4f1"; }

.fa-flag::before {
  content: "\f024"; }

.fa-hanukiah::before {
  content: "\f6e6"; }

.fa-feather::before {
  content: "\f52d"; }

.fa-volume-low::before {
  content: "\f027"; }

.fa-volume-down::before {
  content: "\f027"; }

.fa-comment-slash::before {
  content: "\f4b3"; }

.fa-cloud-sun-rain::before {
  content: "\f743"; }

.fa-compress::before {
  content: "\f066"; }

.fa-wheat-awn::before {
  content: "\e2cd"; }

.fa-wheat-alt::before {
  content: "\e2cd"; }

.fa-ankh::before {
  content: "\f644"; }

.fa-hands-holding-child::before {
  content: "\e4fa"; }

.fa-asterisk::before {
  content: "\2a"; }

.fa-square-check::before {
  content: "\f14a"; }

.fa-check-square::before {
  content: "\f14a"; }

.fa-peseta-sign::before {
  content: "\e221"; }

.fa-heading::before {
  content: "\f1dc"; }

.fa-header::before {
  content: "\f1dc"; }

.fa-ghost::before {
  content: "\f6e2"; }

.fa-list::before {
  content: "\f03a"; }

.fa-list-squares::before {
  content: "\f03a"; }

.fa-square-phone-flip::before {
  content: "\f87b"; }

.fa-phone-square-alt::before {
  content: "\f87b"; }

.fa-cart-plus::before {
  content: "\f217"; }

.fa-gamepad::before {
  content: "\f11b"; }

.fa-circle-dot::before {
  content: "\f192"; }

.fa-dot-circle::before {
  content: "\f192"; }

.fa-face-dizzy::before {
  content: "\f567"; }

.fa-dizzy::before {
  content: "\f567"; }

.fa-egg::before {
  content: "\f7fb"; }

.fa-house-medical-circle-xmark::before {
  content: "\e513"; }

.fa-campground::before {
  content: "\f6bb"; }

.fa-folder-plus::before {
  content: "\f65e"; }

.fa-futbol::before {
  content: "\f1e3"; }

.fa-futbol-ball::before {
  content: "\f1e3"; }

.fa-soccer-ball::before {
  content: "\f1e3"; }

.fa-paintbrush::before {
  content: "\f1fc"; }

.fa-paint-brush::before {
  content: "\f1fc"; }

.fa-lock::before {
  content: "\f023"; }

.fa-gas-pump::before {
  content: "\f52f"; }

.fa-hot-tub-person::before {
  content: "\f593"; }

.fa-hot-tub::before {
  content: "\f593"; }

.fa-map-location::before {
  content: "\f59f"; }

.fa-map-marked::before {
  content: "\f59f"; }

.fa-house-flood-water::before {
  content: "\e50e"; }

.fa-tree::before {
  content: "\f1bb"; }

.fa-bridge-lock::before {
  content: "\e4cc"; }

.fa-sack-dollar::before {
  content: "\f81d"; }

.fa-pen-to-square::before {
  content: "\f044"; }

.fa-edit::before {
  content: "\f044"; }

.fa-car-side::before {
  content: "\f5e4"; }

.fa-share-nodes::before {
  content: "\f1e0"; }

.fa-share-alt::before {
  content: "\f1e0"; }

.fa-heart-circle-minus::before {
  content: "\e4ff"; }

.fa-hourglass-half::before {
  content: "\f252"; }

.fa-hourglass-2::before {
  content: "\f252"; }

.fa-microscope::before {
  content: "\f610"; }

.fa-sink::before {
  content: "\e06d"; }

.fa-bag-shopping::before {
  content: "\f290"; }

.fa-shopping-bag::before {
  content: "\f290"; }

.fa-arrow-down-z-a::before {
  content: "\f881"; }

.fa-sort-alpha-desc::before {
  content: "\f881"; }

.fa-sort-alpha-down-alt::before {
  content: "\f881"; }

.fa-mitten::before {
  content: "\f7b5"; }

.fa-person-rays::before {
  content: "\e54d"; }

.fa-users::before {
  content: "\f0c0"; }

.fa-eye-slash::before {
  content: "\f070"; }

.fa-flask-vial::before {
  content: "\e4f3"; }

.fa-hand::before {
  content: "\f256"; }

.fa-hand-paper::before {
  content: "\f256"; }

.fa-om::before {
  content: "\f679"; }

.fa-worm::before {
  content: "\e599"; }

.fa-house-circle-xmark::before {
  content: "\e50b"; }

.fa-plug::before {
  content: "\f1e6"; }

.fa-chevron-up::before {
  content: "\f077"; }

.fa-hand-spock::before {
  content: "\f259"; }

.fa-stopwatch::before {
  content: "\f2f2"; }

.fa-face-kiss::before {
  content: "\f596"; }

.fa-kiss::before {
  content: "\f596"; }

.fa-bridge-circle-xmark::before {
  content: "\e4cb"; }

.fa-face-grin-tongue::before {
  content: "\f589"; }

.fa-grin-tongue::before {
  content: "\f589"; }

.fa-chess-bishop::before {
  content: "\f43a"; }

.fa-face-grin-wink::before {
  content: "\f58c"; }

.fa-grin-wink::before {
  content: "\f58c"; }

.fa-ear-deaf::before {
  content: "\f2a4"; }

.fa-deaf::before {
  content: "\f2a4"; }

.fa-deafness::before {
  content: "\f2a4"; }

.fa-hard-of-hearing::before {
  content: "\f2a4"; }

.fa-road-circle-check::before {
  content: "\e564"; }

.fa-dice-five::before {
  content: "\f523"; }

.fa-square-rss::before {
  content: "\f143"; }

.fa-rss-square::before {
  content: "\f143"; }

.fa-land-mine-on::before {
  content: "\e51b"; }

.fa-i-cursor::before {
  content: "\f246"; }

.fa-stamp::before {
  content: "\f5bf"; }

.fa-stairs::before {
  content: "\e289"; }

.fa-i::before {
  content: "\49"; }

.fa-hryvnia-sign::before {
  content: "\f6f2"; }

.fa-hryvnia::before {
  content: "\f6f2"; }

.fa-pills::before {
  content: "\f484"; }

.fa-face-grin-wide::before {
  content: "\f581"; }

.fa-grin-alt::before {
  content: "\f581"; }

.fa-tooth::before {
  content: "\f5c9"; }

.fa-v::before {
  content: "\56"; }

.fa-bangladeshi-taka-sign::before {
  content: "\e2e6"; }

.fa-bicycle::before {
  content: "\f206"; }

.fa-staff-snake::before {
  content: "\e579"; }

.fa-rod-asclepius::before {
  content: "\e579"; }

.fa-rod-snake::before {
  content: "\e579"; }

.fa-staff-aesculapius::before {
  content: "\e579"; }

.fa-head-side-cough-slash::before {
  content: "\e062"; }

.fa-truck-medical::before {
  content: "\f0f9"; }

.fa-ambulance::before {
  content: "\f0f9"; }

.fa-wheat-awn-circle-exclamation::before {
  content: "\e598"; }

.fa-snowman::before {
  content: "\f7d0"; }

.fa-mortar-pestle::before {
  content: "\f5a7"; }

.fa-road-barrier::before {
  content: "\e562"; }

.fa-school::before {
  content: "\f549"; }

.fa-igloo::before {
  content: "\f7ae"; }

.fa-joint::before {
  content: "\f595"; }

.fa-angle-right::before {
  content: "\f105"; }

.fa-horse::before {
  content: "\f6f0"; }

.fa-q::before {
  content: "\51"; }

.fa-g::before {
  content: "\47"; }

.fa-notes-medical::before {
  content: "\f481"; }

.fa-temperature-half::before {
  content: "\f2c9"; }

.fa-temperature-2::before {
  content: "\f2c9"; }

.fa-thermometer-2::before {
  content: "\f2c9"; }

.fa-thermometer-half::before {
  content: "\f2c9"; }

.fa-dong-sign::before {
  content: "\e169"; }

.fa-capsules::before {
  content: "\f46b"; }

.fa-poo-storm::before {
  content: "\f75a"; }

.fa-poo-bolt::before {
  content: "\f75a"; }

.fa-face-frown-open::before {
  content: "\f57a"; }

.fa-frown-open::before {
  content: "\f57a"; }

.fa-hand-point-up::before {
  content: "\f0a6"; }

.fa-money-bill::before {
  content: "\f0d6"; }

.fa-bookmark::before {
  content: "\f02e"; }

.fa-align-justify::before {
  content: "\f039"; }

.fa-umbrella-beach::before {
  content: "\f5ca"; }

.fa-helmet-un::before {
  content: "\e503"; }

.fa-bullseye::before {
  content: "\f140"; }

.fa-bacon::before {
  content: "\f7e5"; }

.fa-hand-point-down::before {
  content: "\f0a7"; }

.fa-arrow-up-from-bracket::before {
  content: "\e09a"; }

.fa-folder::before {
  content: "\f07b"; }

.fa-folder-blank::before {
  content: "\f07b"; }

.fa-file-waveform::before {
  content: "\f478"; }

.fa-file-medical-alt::before {
  content: "\f478"; }

.fa-radiation::before {
  content: "\f7b9"; }

.fa-chart-simple::before {
  content: "\e473"; }

.fa-mars-stroke::before {
  content: "\f229"; }

.fa-vial::before {
  content: "\f492"; }

.fa-gauge::before {
  content: "\f624"; }

.fa-dashboard::before {
  content: "\f624"; }

.fa-gauge-med::before {
  content: "\f624"; }

.fa-tachometer-alt-average::before {
  content: "\f624"; }

.fa-wand-magic-sparkles::before {
  content: "\e2ca"; }

.fa-magic-wand-sparkles::before {
  content: "\e2ca"; }

.fa-e::before {
  content: "\45"; }

.fa-pen-clip::before {
  content: "\f305"; }

.fa-pen-alt::before {
  content: "\f305"; }

.fa-bridge-circle-exclamation::before {
  content: "\e4ca"; }

.fa-user::before {
  content: "\f007"; }

.fa-school-circle-check::before {
  content: "\e56b"; }

.fa-dumpster::before {
  content: "\f793"; }

.fa-van-shuttle::before {
  content: "\f5b6"; }

.fa-shuttle-van::before {
  content: "\f5b6"; }

.fa-building-user::before {
  content: "\e4da"; }

.fa-square-caret-left::before {
  content: "\f191"; }

.fa-caret-square-left::before {
  content: "\f191"; }

.fa-highlighter::before {
  content: "\f591"; }

.fa-key::before {
  content: "\f084"; }

.fa-bullhorn::before {
  content: "\f0a1"; }

.fa-globe::before {
  content: "\f0ac"; }

.fa-synagogue::before {
  content: "\f69b"; }

.fa-person-half-dress::before {
  content: "\e548"; }

.fa-road-bridge::before {
  content: "\e563"; }

.fa-location-arrow::before {
  content: "\f124"; }

.fa-c::before {
  content: "\43"; }

.fa-tablet-button::before {
  content: "\f10a"; }

.fa-building-lock::before {
  content: "\e4d6"; }

.fa-pizza-slice::before {
  content: "\f818"; }

.fa-money-bill-wave::before {
  content: "\f53a"; }

.fa-chart-area::before {
  content: "\f1fe"; }

.fa-area-chart::before {
  content: "\f1fe"; }

.fa-house-flag::before {
  content: "\e50d"; }

.fa-person-circle-minus::before {
  content: "\e540"; }

.fa-ban::before {
  content: "\f05e"; }

.fa-cancel::before {
  content: "\f05e"; }

.fa-camera-rotate::before {
  content: "\e0d8"; }

.fa-spray-can-sparkles::before {
  content: "\f5d0"; }

.fa-air-freshener::before {
  content: "\f5d0"; }

.fa-star::before {
  content: "\f005"; }

.fa-repeat::before {
  content: "\f363"; }

.fa-cross::before {
  content: "\f654"; }

.fa-box::before {
  content: "\f466"; }

.fa-venus-mars::before {
  content: "\f228"; }

.fa-arrow-pointer::before {
  content: "\f245"; }

.fa-mouse-pointer::before {
  content: "\f245"; }

.fa-maximize::before {
  content: "\f31e"; }

.fa-expand-arrows-alt::before {
  content: "\f31e"; }

.fa-charging-station::before {
  content: "\f5e7"; }

.fa-shapes::before {
  content: "\f61f"; }

.fa-triangle-circle-square::before {
  content: "\f61f"; }

.fa-shuffle::before {
  content: "\f074"; }

.fa-random::before {
  content: "\f074"; }

.fa-person-running::before {
  content: "\f70c"; }

.fa-running::before {
  content: "\f70c"; }

.fa-mobile-retro::before {
  content: "\e527"; }

.fa-grip-lines-vertical::before {
  content: "\f7a5"; }

.fa-spider::before {
  content: "\f717"; }

.fa-hands-bound::before {
  content: "\e4f9"; }

.fa-file-invoice-dollar::before {
  content: "\f571"; }

.fa-plane-circle-exclamation::before {
  content: "\e556"; }

.fa-x-ray::before {
  content: "\f497"; }

.fa-spell-check::before {
  content: "\f891"; }

.fa-slash::before {
  content: "\f715"; }

.fa-computer-mouse::before {
  content: "\f8cc"; }

.fa-mouse::before {
  content: "\f8cc"; }

.fa-arrow-right-to-bracket::before {
  content: "\f090"; }

.fa-sign-in::before {
  content: "\f090"; }

.fa-shop-slash::before {
  content: "\e070"; }

.fa-store-alt-slash::before {
  content: "\e070"; }

.fa-server::before {
  content: "\f233"; }

.fa-virus-covid-slash::before {
  content: "\e4a9"; }

.fa-shop-lock::before {
  content: "\e4a5"; }

.fa-hourglass-start::before {
  content: "\f251"; }

.fa-hourglass-1::before {
  content: "\f251"; }

.fa-blender-phone::before {
  content: "\f6b6"; }

.fa-building-wheat::before {
  content: "\e4db"; }

.fa-person-breastfeeding::before {
  content: "\e53a"; }

.fa-right-to-bracket::before {
  content: "\f2f6"; }

.fa-sign-in-alt::before {
  content: "\f2f6"; }

.fa-venus::before {
  content: "\f221"; }

.fa-passport::before {
  content: "\f5ab"; }

.fa-heart-pulse::before {
  content: "\f21e"; }

.fa-heartbeat::before {
  content: "\f21e"; }

.fa-people-carry-box::before {
  content: "\f4ce"; }

.fa-people-carry::before {
  content: "\f4ce"; }

.fa-temperature-high::before {
  content: "\f769"; }

.fa-microchip::before {
  content: "\f2db"; }

.fa-crown::before {
  content: "\f521"; }

.fa-weight-hanging::before {
  content: "\f5cd"; }

.fa-xmarks-lines::before {
  content: "\e59a"; }

.fa-file-prescription::before {
  content: "\f572"; }

.fa-weight-scale::before {
  content: "\f496"; }

.fa-weight::before {
  content: "\f496"; }

.fa-user-group::before {
  content: "\f500"; }

.fa-user-friends::before {
  content: "\f500"; }

.fa-arrow-up-a-z::before {
  content: "\f15e"; }

.fa-sort-alpha-up::before {
  content: "\f15e"; }

.fa-chess-knight::before {
  content: "\f441"; }

.fa-face-laugh-squint::before {
  content: "\f59b"; }

.fa-laugh-squint::before {
  content: "\f59b"; }

.fa-wheelchair::before {
  content: "\f193"; }

.fa-circle-arrow-up::before {
  content: "\f0aa"; }

.fa-arrow-circle-up::before {
  content: "\f0aa"; }

.fa-toggle-on::before {
  content: "\f205"; }

.fa-person-walking::before {
  content: "\f554"; }

.fa-walking::before {
  content: "\f554"; }

.fa-l::before {
  content: "\4c"; }

.fa-fire::before {
  content: "\f06d"; }

.fa-bed-pulse::before {
  content: "\f487"; }

.fa-procedures::before {
  content: "\f487"; }

.fa-shuttle-space::before {
  content: "\f197"; }

.fa-space-shuttle::before {
  content: "\f197"; }

.fa-face-laugh::before {
  content: "\f599"; }

.fa-laugh::before {
  content: "\f599"; }

.fa-folder-open::before {
  content: "\f07c"; }

.fa-heart-circle-plus::before {
  content: "\e500"; }

.fa-code-fork::before {
  content: "\e13b"; }

.fa-city::before {
  content: "\f64f"; }

.fa-microphone-lines::before {
  content: "\f3c9"; }

.fa-microphone-alt::before {
  content: "\f3c9"; }

.fa-pepper-hot::before {
  content: "\f816"; }

.fa-unlock::before {
  content: "\f09c"; }

.fa-colon-sign::before {
  content: "\e140"; }

.fa-headset::before {
  content: "\f590"; }

.fa-store-slash::before {
  content: "\e071"; }

.fa-road-circle-xmark::before {
  content: "\e566"; }

.fa-user-minus::before {
  content: "\f503"; }

.fa-mars-stroke-up::before {
  content: "\f22a"; }

.fa-mars-stroke-v::before {
  content: "\f22a"; }

.fa-champagne-glasses::before {
  content: "\f79f"; }

.fa-glass-cheers::before {
  content: "\f79f"; }

.fa-clipboard::before {
  content: "\f328"; }

.fa-house-circle-exclamation::before {
  content: "\e50a"; }

.fa-file-arrow-up::before {
  content: "\f574"; }

.fa-file-upload::before {
  content: "\f574"; }

.fa-wifi::before {
  content: "\f1eb"; }

.fa-wifi-3::before {
  content: "\f1eb"; }

.fa-wifi-strong::before {
  content: "\f1eb"; }

.fa-bath::before {
  content: "\f2cd"; }

.fa-bathtub::before {
  content: "\f2cd"; }

.fa-underline::before {
  content: "\f0cd"; }

.fa-user-pen::before {
  content: "\f4ff"; }

.fa-user-edit::before {
  content: "\f4ff"; }

.fa-signature::before {
  content: "\f5b7"; }

.fa-stroopwafel::before {
  content: "\f551"; }

.fa-bold::before {
  content: "\f032"; }

.fa-anchor-lock::before {
  content: "\e4ad"; }

.fa-building-ngo::before {
  content: "\e4d7"; }

.fa-manat-sign::before {
  content: "\e1d5"; }

.fa-not-equal::before {
  content: "\f53e"; }

.fa-border-top-left::before {
  content: "\f853"; }

.fa-border-style::before {
  content: "\f853"; }

.fa-map-location-dot::before {
  content: "\f5a0"; }

.fa-map-marked-alt::before {
  content: "\f5a0"; }

.fa-jedi::before {
  content: "\f669"; }

.fa-square-poll-vertical::before {
  content: "\f681"; }

.fa-poll::before {
  content: "\f681"; }

.fa-mug-hot::before {
  content: "\f7b6"; }

.fa-car-battery::before {
  content: "\f5df"; }

.fa-battery-car::before {
  content: "\f5df"; }

.fa-gift::before {
  content: "\f06b"; }

.fa-dice-two::before {
  content: "\f528"; }

.fa-chess-queen::before {
  content: "\f445"; }

.fa-glasses::before {
  content: "\f530"; }

.fa-chess-board::before {
  content: "\f43c"; }

.fa-building-circle-check::before {
  content: "\e4d2"; }

.fa-person-chalkboard::before {
  content: "\e53d"; }

.fa-mars-stroke-right::before {
  content: "\f22b"; }

.fa-mars-stroke-h::before {
  content: "\f22b"; }

.fa-hand-back-fist::before {
  content: "\f255"; }

.fa-hand-rock::before {
  content: "\f255"; }

.fa-square-caret-up::before {
  content: "\f151"; }

.fa-caret-square-up::before {
  content: "\f151"; }

.fa-cloud-showers-water::before {
  content: "\e4e4"; }

.fa-chart-bar::before {
  content: "\f080"; }

.fa-bar-chart::before {
  content: "\f080"; }

.fa-hands-bubbles::before {
  content: "\e05e"; }

.fa-hands-wash::before {
  content: "\e05e"; }

.fa-less-than-equal::before {
  content: "\f537"; }

.fa-train::before {
  content: "\f238"; }

.fa-eye-low-vision::before {
  content: "\f2a8"; }

.fa-low-vision::before {
  content: "\f2a8"; }

.fa-crow::before {
  content: "\f520"; }

.fa-sailboat::before {
  content: "\e445"; }

.fa-window-restore::before {
  content: "\f2d2"; }

.fa-square-plus::before {
  content: "\f0fe"; }

.fa-plus-square::before {
  content: "\f0fe"; }

.fa-torii-gate::before {
  content: "\f6a1"; }

.fa-frog::before {
  content: "\f52e"; }

.fa-bucket::before {
  content: "\e4cf"; }

.fa-image::before {
  content: "\f03e"; }

.fa-microphone::before {
  content: "\f130"; }

.fa-cow::before {
  content: "\f6c8"; }

.fa-caret-up::before {
  content: "\f0d8"; }

.fa-screwdriver::before {
  content: "\f54a"; }

.fa-folder-closed::before {
  content: "\e185"; }

.fa-house-tsunami::before {
  content: "\e515"; }

.fa-square-nfi::before {
  content: "\e576"; }

.fa-arrow-up-from-ground-water::before {
  content: "\e4b5"; }

.fa-martini-glass::before {
  content: "\f57b"; }

.fa-glass-martini-alt::before {
  content: "\f57b"; }

.fa-rotate-left::before {
  content: "\f2ea"; }

.fa-rotate-back::before {
  content: "\f2ea"; }

.fa-rotate-backward::before {
  content: "\f2ea"; }

.fa-undo-alt::before {
  content: "\f2ea"; }

.fa-table-columns::before {
  content: "\f0db"; }

.fa-columns::before {
  content: "\f0db"; }

.fa-lemon::before {
  content: "\f094"; }

.fa-head-side-mask::before {
  content: "\e063"; }

.fa-handshake::before {
  content: "\f2b5"; }

.fa-gem::before {
  content: "\f3a5"; }

.fa-dolly::before {
  content: "\f472"; }

.fa-dolly-box::before {
  content: "\f472"; }

.fa-smoking::before {
  content: "\f48d"; }

.fa-minimize::before {
  content: "\f78c"; }

.fa-compress-arrows-alt::before {
  content: "\f78c"; }

.fa-monument::before {
  content: "\f5a6"; }

.fa-snowplow::before {
  content: "\f7d2"; }

.fa-angles-right::before {
  content: "\f101"; }

.fa-angle-double-right::before {
  content: "\f101"; }

.fa-cannabis::before {
  content: "\f55f"; }

.fa-circle-play::before {
  content: "\f144"; }

.fa-play-circle::before {
  content: "\f144"; }

.fa-tablets::before {
  content: "\f490"; }

.fa-ethernet::before {
  content: "\f796"; }

.fa-euro-sign::before {
  content: "\f153"; }

.fa-eur::before {
  content: "\f153"; }

.fa-euro::before {
  content: "\f153"; }

.fa-chair::before {
  content: "\f6c0"; }

.fa-circle-check::before {
  content: "\f058"; }

.fa-check-circle::before {
  content: "\f058"; }

.fa-circle-stop::before {
  content: "\f28d"; }

.fa-stop-circle::before {
  content: "\f28d"; }

.fa-compass-drafting::before {
  content: "\f568"; }

.fa-drafting-compass::before {
  content: "\f568"; }

.fa-plate-wheat::before {
  content: "\e55a"; }

.fa-icicles::before {
  content: "\f7ad"; }

.fa-person-shelter::before {
  content: "\e54f"; }

.fa-neuter::before {
  content: "\f22c"; }

.fa-id-badge::before {
  content: "\f2c1"; }

.fa-marker::before {
  content: "\f5a1"; }

.fa-face-laugh-beam::before {
  content: "\f59a"; }

.fa-laugh-beam::before {
  content: "\f59a"; }

.fa-helicopter-symbol::before {
  content: "\e502"; }

.fa-universal-access::before {
  content: "\f29a"; }

.fa-circle-chevron-up::before {
  content: "\f139"; }

.fa-chevron-circle-up::before {
  content: "\f139"; }

.fa-lari-sign::before {
  content: "\e1c8"; }

.fa-volcano::before {
  content: "\f770"; }

.fa-person-walking-dashed-line-arrow-right::before {
  content: "\e553"; }

.fa-sterling-sign::before {
  content: "\f154"; }

.fa-gbp::before {
  content: "\f154"; }

.fa-pound-sign::before {
  content: "\f154"; }

.fa-viruses::before {
  content: "\e076"; }

.fa-square-person-confined::before {
  content: "\e577"; }

.fa-user-tie::before {
  content: "\f508"; }

.fa-arrow-down-long::before {
  content: "\f175"; }

.fa-long-arrow-down::before {
  content: "\f175"; }

.fa-tent-arrow-down-to-line::before {
  content: "\e57e"; }

.fa-certificate::before {
  content: "\f0a3"; }

.fa-reply-all::before {
  content: "\f122"; }

.fa-mail-reply-all::before {
  content: "\f122"; }

.fa-suitcase::before {
  content: "\f0f2"; }

.fa-person-skating::before {
  content: "\f7c5"; }

.fa-skating::before {
  content: "\f7c5"; }

.fa-filter-circle-dollar::before {
  content: "\f662"; }

.fa-funnel-dollar::before {
  content: "\f662"; }

.fa-camera-retro::before {
  content: "\f083"; }

.fa-circle-arrow-down::before {
  content: "\f0ab"; }

.fa-arrow-circle-down::before {
  content: "\f0ab"; }

.fa-file-import::before {
  content: "\f56f"; }

.fa-arrow-right-to-file::before {
  content: "\f56f"; }

.fa-square-arrow-up-right::before {
  content: "\f14c"; }

.fa-external-link-square::before {
  content: "\f14c"; }

.fa-box-open::before {
  content: "\f49e"; }

.fa-scroll::before {
  content: "\f70e"; }

.fa-spa::before {
  content: "\f5bb"; }

.fa-location-pin-lock::before {
  content: "\e51f"; }

.fa-pause::before {
  content: "\f04c"; }

.fa-hill-avalanche::before {
  content: "\e507"; }

.fa-temperature-empty::before {
  content: "\f2cb"; }

.fa-temperature-0::before {
  content: "\f2cb"; }

.fa-thermometer-0::before {
  content: "\f2cb"; }

.fa-thermometer-empty::before {
  content: "\f2cb"; }

.fa-bomb::before {
  content: "\f1e2"; }

.fa-registered::before {
  content: "\f25d"; }

.fa-address-card::before {
  content: "\f2bb"; }

.fa-contact-card::before {
  content: "\f2bb"; }

.fa-vcard::before {
  content: "\f2bb"; }

.fa-scale-unbalanced-flip::before {
  content: "\f516"; }

.fa-balance-scale-right::before {
  content: "\f516"; }

.fa-subscript::before {
  content: "\f12c"; }

.fa-diamond-turn-right::before {
  content: "\f5eb"; }

.fa-directions::before {
  content: "\f5eb"; }

.fa-burst::before {
  content: "\e4dc"; }

.fa-house-laptop::before {
  content: "\e066"; }

.fa-laptop-house::before {
  content: "\e066"; }

.fa-face-tired::before {
  content: "\f5c8"; }

.fa-tired::before {
  content: "\f5c8"; }

.fa-money-bills::before {
  content: "\e1f3"; }

.fa-smog::before {
  content: "\f75f"; }

.fa-crutch::before {
  content: "\f7f7"; }

.fa-cloud-arrow-up::before {
  content: "\f0ee"; }

.fa-cloud-upload::before {
  content: "\f0ee"; }

.fa-cloud-upload-alt::before {
  content: "\f0ee"; }

.fa-palette::before {
  content: "\f53f"; }

.fa-arrows-turn-right::before {
  content: "\e4c0"; }

.fa-vest::before {
  content: "\e085"; }

.fa-ferry::before {
  content: "\e4ea"; }

.fa-arrows-down-to-people::before {
  content: "\e4b9"; }

.fa-seedling::before {
  content: "\f4d8"; }

.fa-sprout::before {
  content: "\f4d8"; }

.fa-left-right::before {
  content: "\f337"; }

.fa-arrows-alt-h::before {
  content: "\f337"; }

.fa-boxes-packing::before {
  content: "\e4c7"; }

.fa-circle-arrow-left::before {
  content: "\f0a8"; }

.fa-arrow-circle-left::before {
  content: "\f0a8"; }

.fa-group-arrows-rotate::before {
  content: "\e4f6"; }

.fa-bowl-food::before {
  content: "\e4c6"; }

.fa-candy-cane::before {
  content: "\f786"; }

.fa-arrow-down-wide-short::before {
  content: "\f160"; }

.fa-sort-amount-asc::before {
  content: "\f160"; }

.fa-sort-amount-down::before {
  content: "\f160"; }

.fa-cloud-bolt::before {
  content: "\f76c"; }

.fa-thunderstorm::before {
  content: "\f76c"; }

.fa-text-slash::before {
  content: "\f87d"; }

.fa-remove-format::before {
  content: "\f87d"; }

.fa-face-smile-wink::before {
  content: "\f4da"; }

.fa-smile-wink::before {
  content: "\f4da"; }

.fa-file-word::before {
  content: "\f1c2"; }

.fa-file-powerpoint::before {
  content: "\f1c4"; }

.fa-arrows-left-right::before {
  content: "\f07e"; }

.fa-arrows-h::before {
  content: "\f07e"; }

.fa-house-lock::before {
  content: "\e510"; }

.fa-cloud-arrow-down::before {
  content: "\f0ed"; }

.fa-cloud-download::before {
  content: "\f0ed"; }

.fa-cloud-download-alt::before {
  content: "\f0ed"; }

.fa-children::before {
  content: "\e4e1"; }

.fa-chalkboard::before {
  content: "\f51b"; }

.fa-blackboard::before {
  content: "\f51b"; }

.fa-user-large-slash::before {
  content: "\f4fa"; }

.fa-user-alt-slash::before {
  content: "\f4fa"; }

.fa-envelope-open::before {
  content: "\f2b6"; }

.fa-handshake-simple-slash::before {
  content: "\e05f"; }

.fa-handshake-alt-slash::before {
  content: "\e05f"; }

.fa-mattress-pillow::before {
  content: "\e525"; }

.fa-guarani-sign::before {
  content: "\e19a"; }

.fa-arrows-rotate::before {
  content: "\f021"; }

.fa-refresh::before {
  content: "\f021"; }

.fa-sync::before {
  content: "\f021"; }

.fa-fire-extinguisher::before {
  content: "\f134"; }

.fa-cruzeiro-sign::before {
  content: "\e152"; }

.fa-greater-than-equal::before {
  content: "\f532"; }

.fa-shield-halved::before {
  content: "\f3ed"; }

.fa-shield-alt::before {
  content: "\f3ed"; }

.fa-book-atlas::before {
  content: "\f558"; }

.fa-atlas::before {
  content: "\f558"; }

.fa-virus::before {
  content: "\e074"; }

.fa-envelope-circle-check::before {
  content: "\e4e8"; }

.fa-layer-group::before {
  content: "\f5fd"; }

.fa-arrows-to-dot::before {
  content: "\e4be"; }

.fa-archway::before {
  content: "\f557"; }

.fa-heart-circle-check::before {
  content: "\e4fd"; }

.fa-house-chimney-crack::before {
  content: "\f6f1"; }

.fa-house-damage::before {
  content: "\f6f1"; }

.fa-file-zipper::before {
  content: "\f1c6"; }

.fa-file-archive::before {
  content: "\f1c6"; }

.fa-square::before {
  content: "\f0c8"; }

.fa-martini-glass-empty::before {
  content: "\f000"; }

.fa-glass-martini::before {
  content: "\f000"; }

.fa-couch::before {
  content: "\f4b8"; }

.fa-cedi-sign::before {
  content: "\e0df"; }

.fa-italic::before {
  content: "\f033"; }

.fa-table-cells-column-lock::before {
  content: "\e678"; }

.fa-church::before {
  content: "\f51d"; }

.fa-comments-dollar::before {
  content: "\f653"; }

.fa-democrat::before {
  content: "\f747"; }

.fa-z::before {
  content: "\5a"; }

.fa-person-skiing::before {
  content: "\f7c9"; }

.fa-skiing::before {
  content: "\f7c9"; }

.fa-road-lock::before {
  content: "\e567"; }

.fa-a::before {
  content: "\41"; }

.fa-temperature-arrow-down::before {
  content: "\e03f"; }

.fa-temperature-down::before {
  content: "\e03f"; }

.fa-feather-pointed::before {
  content: "\f56b"; }

.fa-feather-alt::before {
  content: "\f56b"; }

.fa-p::before {
  content: "\50"; }

.fa-snowflake::before {
  content: "\f2dc"; }

.fa-newspaper::before {
  content: "\f1ea"; }

.fa-rectangle-ad::before {
  content: "\f641"; }

.fa-ad::before {
  content: "\f641"; }

.fa-circle-arrow-right::before {
  content: "\f0a9"; }

.fa-arrow-circle-right::before {
  content: "\f0a9"; }

.fa-filter-circle-xmark::before {
  content: "\e17b"; }

.fa-locust::before {
  content: "\e520"; }

.fa-sort::before {
  content: "\f0dc"; }

.fa-unsorted::before {
  content: "\f0dc"; }

.fa-list-ol::before {
  content: "\f0cb"; }

.fa-list-1-2::before {
  content: "\f0cb"; }

.fa-list-numeric::before {
  content: "\f0cb"; }

.fa-person-dress-burst::before {
  content: "\e544"; }

.fa-money-check-dollar::before {
  content: "\f53d"; }

.fa-money-check-alt::before {
  content: "\f53d"; }

.fa-vector-square::before {
  content: "\f5cb"; }

.fa-bread-slice::before {
  content: "\f7ec"; }

.fa-language::before {
  content: "\f1ab"; }

.fa-face-kiss-wink-heart::before {
  content: "\f598"; }

.fa-kiss-wink-heart::before {
  content: "\f598"; }

.fa-filter::before {
  content: "\f0b0"; }

.fa-question::before {
  content: "\3f"; }

.fa-file-signature::before {
  content: "\f573"; }

.fa-up-down-left-right::before {
  content: "\f0b2"; }

.fa-arrows-alt::before {
  content: "\f0b2"; }

.fa-house-chimney-user::before {
  content: "\e065"; }

.fa-hand-holding-heart::before {
  content: "\f4be"; }

.fa-puzzle-piece::before {
  content: "\f12e"; }

.fa-money-check::before {
  content: "\f53c"; }

.fa-star-half-stroke::before {
  content: "\f5c0"; }

.fa-star-half-alt::before {
  content: "\f5c0"; }

.fa-code::before {
  content: "\f121"; }

.fa-whiskey-glass::before {
  content: "\f7a0"; }

.fa-glass-whiskey::before {
  content: "\f7a0"; }

.fa-building-circle-exclamation::before {
  content: "\e4d3"; }

.fa-magnifying-glass-chart::before {
  content: "\e522"; }

.fa-arrow-up-right-from-square::before {
  content: "\f08e"; }

.fa-external-link::before {
  content: "\f08e"; }

.fa-cubes-stacked::before {
  content: "\e4e6"; }

.fa-won-sign::before {
  content: "\f159"; }

.fa-krw::before {
  content: "\f159"; }

.fa-won::before {
  content: "\f159"; }

.fa-virus-covid::before {
  content: "\e4a8"; }

.fa-austral-sign::before {
  content: "\e0a9"; }

.fa-f::before {
  content: "\46"; }

.fa-leaf::before {
  content: "\f06c"; }

.fa-road::before {
  content: "\f018"; }

.fa-taxi::before {
  content: "\f1ba"; }

.fa-cab::before {
  content: "\f1ba"; }

.fa-person-circle-plus::before {
  content: "\e541"; }

.fa-chart-pie::before {
  content: "\f200"; }

.fa-pie-chart::before {
  content: "\f200"; }

.fa-bolt-lightning::before {
  content: "\e0b7"; }

.fa-sack-xmark::before {
  content: "\e56a"; }

.fa-file-excel::before {
  content: "\f1c3"; }

.fa-file-contract::before {
  content: "\f56c"; }

.fa-fish-fins::before {
  content: "\e4f2"; }

.fa-building-flag::before {
  content: "\e4d5"; }

.fa-face-grin-beam::before {
  content: "\f582"; }

.fa-grin-beam::before {
  content: "\f582"; }

.fa-object-ungroup::before {
  content: "\f248"; }

.fa-poop::before {
  content: "\f619"; }

.fa-location-pin::before {
  content: "\f041"; }

.fa-map-marker::before {
  content: "\f041"; }

.fa-kaaba::before {
  content: "\f66b"; }

.fa-toilet-paper::before {
  content: "\f71e"; }

.fa-helmet-safety::before {
  content: "\f807"; }

.fa-hard-hat::before {
  content: "\f807"; }

.fa-hat-hard::before {
  content: "\f807"; }

.fa-eject::before {
  content: "\f052"; }

.fa-circle-right::before {
  content: "\f35a"; }

.fa-arrow-alt-circle-right::before {
  content: "\f35a"; }

.fa-plane-circle-check::before {
  content: "\e555"; }

.fa-face-rolling-eyes::before {
  content: "\f5a5"; }

.fa-meh-rolling-eyes::before {
  content: "\f5a5"; }

.fa-object-group::before {
  content: "\f247"; }

.fa-chart-line::before {
  content: "\f201"; }

.fa-line-chart::before {
  content: "\f201"; }

.fa-mask-ventilator::before {
  content: "\e524"; }

.fa-arrow-right::before {
  content: "\f061"; }

.fa-signs-post::before {
  content: "\f277"; }

.fa-map-signs::before {
  content: "\f277"; }

.fa-cash-register::before {
  content: "\f788"; }

.fa-person-circle-question::before {
  content: "\e542"; }

.fa-h::before {
  content: "\48"; }

.fa-tarp::before {
  content: "\e57b"; }

.fa-screwdriver-wrench::before {
  content: "\f7d9"; }

.fa-tools::before {
  content: "\f7d9"; }

.fa-arrows-to-eye::before {
  content: "\e4bf"; }

.fa-plug-circle-bolt::before {
  content: "\e55b"; }

.fa-heart::before {
  content: "\f004"; }

.fa-mars-and-venus::before {
  content: "\f224"; }

.fa-house-user::before {
  content: "\e1b0"; }

.fa-home-user::before {
  content: "\e1b0"; }

.fa-dumpster-fire::before {
  content: "\f794"; }

.fa-house-crack::before {
  content: "\e3b1"; }

.fa-martini-glass-citrus::before {
  content: "\f561"; }

.fa-cocktail::before {
  content: "\f561"; }

.fa-face-surprise::before {
  content: "\f5c2"; }

.fa-surprise::before {
  content: "\f5c2"; }

.fa-bottle-water::before {
  content: "\e4c5"; }

.fa-circle-pause::before {
  content: "\f28b"; }

.fa-pause-circle::before {
  content: "\f28b"; }

.fa-toilet-paper-slash::before {
  content: "\e072"; }

.fa-apple-whole::before {
  content: "\f5d1"; }

.fa-apple-alt::before {
  content: "\f5d1"; }

.fa-kitchen-set::before {
  content: "\e51a"; }

.fa-r::before {
  content: "\52"; }

.fa-temperature-quarter::before {
  content: "\f2ca"; }

.fa-temperature-1::before {
  content: "\f2ca"; }

.fa-thermometer-1::before {
  content: "\f2ca"; }

.fa-thermometer-quarter::before {
  content: "\f2ca"; }

.fa-cube::before {
  content: "\f1b2"; }

.fa-bitcoin-sign::before {
  content: "\e0b4"; }

.fa-shield-dog::before {
  content: "\e573"; }

.fa-solar-panel::before {
  content: "\f5ba"; }

.fa-lock-open::before {
  content: "\f3c1"; }

.fa-elevator::before {
  content: "\e16d"; }

.fa-money-bill-transfer::before {
  content: "\e528"; }

.fa-money-bill-trend-up::before {
  content: "\e529"; }

.fa-house-flood-water-circle-arrow-right::before {
  content: "\e50f"; }

.fa-square-poll-horizontal::before {
  content: "\f682"; }

.fa-poll-h::before {
  content: "\f682"; }

.fa-circle::before {
  content: "\f111"; }

.fa-backward-fast::before {
  content: "\f049"; }

.fa-fast-backward::before {
  content: "\f049"; }

.fa-recycle::before {
  content: "\f1b8"; }

.fa-user-astronaut::before {
  content: "\f4fb"; }

.fa-plane-slash::before {
  content: "\e069"; }

.fa-trademark::before {
  content: "\f25c"; }

.fa-basketball::before {
  content: "\f434"; }

.fa-basketball-ball::before {
  content: "\f434"; }

.fa-satellite-dish::before {
  content: "\f7c0"; }

.fa-circle-up::before {
  content: "\f35b"; }

.fa-arrow-alt-circle-up::before {
  content: "\f35b"; }

.fa-mobile-screen-button::before {
  content: "\f3cd"; }

.fa-mobile-alt::before {
  content: "\f3cd"; }

.fa-volume-high::before {
  content: "\f028"; }

.fa-volume-up::before {
  content: "\f028"; }

.fa-users-rays::before {
  content: "\e593"; }

.fa-wallet::before {
  content: "\f555"; }

.fa-clipboard-check::before {
  content: "\f46c"; }

.fa-file-audio::before {
  content: "\f1c7"; }

.fa-burger::before {
  content: "\f805"; }

.fa-hamburger::before {
  content: "\f805"; }

.fa-wrench::before {
  content: "\f0ad"; }

.fa-bugs::before {
  content: "\e4d0"; }

.fa-rupee-sign::before {
  content: "\f156"; }

.fa-rupee::before {
  content: "\f156"; }

.fa-file-image::before {
  content: "\f1c5"; }

.fa-circle-question::before {
  content: "\f059"; }

.fa-question-circle::before {
  content: "\f059"; }

.fa-plane-departure::before {
  content: "\f5b0"; }

.fa-handshake-slash::before {
  content: "\e060"; }

.fa-book-bookmark::before {
  content: "\e0bb"; }

.fa-code-branch::before {
  content: "\f126"; }

.fa-hat-cowboy::before {
  content: "\f8c0"; }

.fa-bridge::before {
  content: "\e4c8"; }

.fa-phone-flip::before {
  content: "\f879"; }

.fa-phone-alt::before {
  content: "\f879"; }

.fa-truck-front::before {
  content: "\e2b7"; }

.fa-cat::before {
  content: "\f6be"; }

.fa-anchor-circle-exclamation::before {
  content: "\e4ab"; }

.fa-truck-field::before {
  content: "\e58d"; }

.fa-route::before {
  content: "\f4d7"; }

.fa-clipboard-question::before {
  content: "\e4e3"; }

.fa-panorama::before {
  content: "\e209"; }

.fa-comment-medical::before {
  content: "\f7f5"; }

.fa-teeth-open::before {
  content: "\f62f"; }

.fa-file-circle-minus::before {
  content: "\e4ed"; }

.fa-tags::before {
  content: "\f02c"; }

.fa-wine-glass::before {
  content: "\f4e3"; }

.fa-forward-fast::before {
  content: "\f050"; }

.fa-fast-forward::before {
  content: "\f050"; }

.fa-face-meh-blank::before {
  content: "\f5a4"; }

.fa-meh-blank::before {
  content: "\f5a4"; }

.fa-square-parking::before {
  content: "\f540"; }

.fa-parking::before {
  content: "\f540"; }

.fa-house-signal::before {
  content: "\e012"; }

.fa-bars-progress::before {
  content: "\f828"; }

.fa-tasks-alt::before {
  content: "\f828"; }

.fa-faucet-drip::before {
  content: "\e006"; }

.fa-cart-flatbed::before {
  content: "\f474"; }

.fa-dolly-flatbed::before {
  content: "\f474"; }

.fa-ban-smoking::before {
  content: "\f54d"; }

.fa-smoking-ban::before {
  content: "\f54d"; }

.fa-terminal::before {
  content: "\f120"; }

.fa-mobile-button::before {
  content: "\f10b"; }

.fa-house-medical-flag::before {
  content: "\e514"; }

.fa-basket-shopping::before {
  content: "\f291"; }

.fa-shopping-basket::before {
  content: "\f291"; }

.fa-tape::before {
  content: "\f4db"; }

.fa-bus-simple::before {
  content: "\f55e"; }

.fa-bus-alt::before {
  content: "\f55e"; }

.fa-eye::before {
  content: "\f06e"; }

.fa-face-sad-cry::before {
  content: "\f5b3"; }

.fa-sad-cry::before {
  content: "\f5b3"; }

.fa-audio-description::before {
  content: "\f29e"; }

.fa-person-military-to-person::before {
  content: "\e54c"; }

.fa-file-shield::before {
  content: "\e4f0"; }

.fa-user-slash::before {
  content: "\f506"; }

.fa-pen::before {
  content: "\f304"; }

.fa-tower-observation::before {
  content: "\e586"; }

.fa-file-code::before {
  content: "\f1c9"; }

.fa-signal::before {
  content: "\f012"; }

.fa-signal-5::before {
  content: "\f012"; }

.fa-signal-perfect::before {
  content: "\f012"; }

.fa-bus::before {
  content: "\f207"; }

.fa-heart-circle-xmark::before {
  content: "\e501"; }

.fa-house-chimney::before {
  content: "\e3af"; }

.fa-home-lg::before {
  content: "\e3af"; }

.fa-window-maximize::before {
  content: "\f2d0"; }

.fa-face-frown::before {
  content: "\f119"; }

.fa-frown::before {
  content: "\f119"; }

.fa-prescription::before {
  content: "\f5b1"; }

.fa-shop::before {
  content: "\f54f"; }

.fa-store-alt::before {
  content: "\f54f"; }

.fa-floppy-disk::before {
  content: "\f0c7"; }

.fa-save::before {
  content: "\f0c7"; }

.fa-vihara::before {
  content: "\f6a7"; }

.fa-scale-unbalanced::before {
  content: "\f515"; }

.fa-balance-scale-left::before {
  content: "\f515"; }

.fa-sort-up::before {
  content: "\f0de"; }

.fa-sort-asc::before {
  content: "\f0de"; }

.fa-comment-dots::before {
  content: "\f4ad"; }

.fa-commenting::before {
  content: "\f4ad"; }

.fa-plant-wilt::before {
  content: "\e5aa"; }

.fa-diamond::before {
  content: "\f219"; }

.fa-face-grin-squint::before {
  content: "\f585"; }

.fa-grin-squint::before {
  content: "\f585"; }

.fa-hand-holding-dollar::before {
  content: "\f4c0"; }

.fa-hand-holding-usd::before {
  content: "\f4c0"; }

.fa-bacterium::before {
  content: "\e05a"; }

.fa-hand-pointer::before {
  content: "\f25a"; }

.fa-drum-steelpan::before {
  content: "\f56a"; }

.fa-hand-scissors::before {
  content: "\f257"; }

.fa-hands-praying::before {
  content: "\f684"; }

.fa-praying-hands::before {
  content: "\f684"; }

.fa-arrow-rotate-right::before {
  content: "\f01e"; }

.fa-arrow-right-rotate::before {
  content: "\f01e"; }

.fa-arrow-rotate-forward::before {
  content: "\f01e"; }

.fa-redo::before {
  content: "\f01e"; }

.fa-biohazard::before {
  content: "\f780"; }

.fa-location-crosshairs::before {
  content: "\f601"; }

.fa-location::before {
  content: "\f601"; }

.fa-mars-double::before {
  content: "\f227"; }

.fa-child-dress::before {
  content: "\e59c"; }

.fa-users-between-lines::before {
  content: "\e591"; }

.fa-lungs-virus::before {
  content: "\e067"; }

.fa-face-grin-tears::before {
  content: "\f588"; }

.fa-grin-tears::before {
  content: "\f588"; }

.fa-phone::before {
  content: "\f095"; }

.fa-calendar-xmark::before {
  content: "\f273"; }

.fa-calendar-times::before {
  content: "\f273"; }

.fa-child-reaching::before {
  content: "\e59d"; }

.fa-head-side-virus::before {
  content: "\e064"; }

.fa-user-gear::before {
  content: "\f4fe"; }

.fa-user-cog::before {
  content: "\f4fe"; }

.fa-arrow-up-1-9::before {
  content: "\f163"; }

.fa-sort-numeric-up::before {
  content: "\f163"; }

.fa-door-closed::before {
  content: "\f52a"; }

.fa-shield-virus::before {
  content: "\e06c"; }

.fa-dice-six::before {
  content: "\f526"; }

.fa-mosquito-net::before {
  content: "\e52c"; }

.fa-bridge-water::before {
  content: "\e4ce"; }

.fa-person-booth::before {
  content: "\f756"; }

.fa-text-width::before {
  content: "\f035"; }

.fa-hat-wizard::before {
  content: "\f6e8"; }

.fa-pen-fancy::before {
  content: "\f5ac"; }

.fa-person-digging::before {
  content: "\f85e"; }

.fa-digging::before {
  content: "\f85e"; }

.fa-trash::before {
  content: "\f1f8"; }

.fa-gauge-simple::before {
  content: "\f629"; }

.fa-gauge-simple-med::before {
  content: "\f629"; }

.fa-tachometer-average::before {
  content: "\f629"; }

.fa-book-medical::before {
  content: "\f7e6"; }

.fa-poo::before {
  content: "\f2fe"; }

.fa-quote-right::before {
  content: "\f10e"; }

.fa-quote-right-alt::before {
  content: "\f10e"; }

.fa-shirt::before {
  content: "\f553"; }

.fa-t-shirt::before {
  content: "\f553"; }

.fa-tshirt::before {
  content: "\f553"; }

.fa-cubes::before {
  content: "\f1b3"; }

.fa-divide::before {
  content: "\f529"; }

.fa-tenge-sign::before {
  content: "\f7d7"; }

.fa-tenge::before {
  content: "\f7d7"; }

.fa-headphones::before {
  content: "\f025"; }

.fa-hands-holding::before {
  content: "\f4c2"; }

.fa-hands-clapping::before {
  content: "\e1a8"; }

.fa-republican::before {
  content: "\f75e"; }

.fa-arrow-left::before {
  content: "\f060"; }

.fa-person-circle-xmark::before {
  content: "\e543"; }

.fa-ruler::before {
  content: "\f545"; }

.fa-align-left::before {
  content: "\f036"; }

.fa-dice-d6::before {
  content: "\f6d1"; }

.fa-restroom::before {
  content: "\f7bd"; }

.fa-j::before {
  content: "\4a"; }

.fa-users-viewfinder::before {
  content: "\e595"; }

.fa-file-video::before {
  content: "\f1c8"; }

.fa-up-right-from-square::before {
  content: "\f35d"; }

.fa-external-link-alt::before {
  content: "\f35d"; }

.fa-table-cells::before {
  content: "\f00a"; }

.fa-th::before {
  content: "\f00a"; }

.fa-file-pdf::before {
  content: "\f1c1"; }

.fa-book-bible::before {
  content: "\f647"; }

.fa-bible::before {
  content: "\f647"; }

.fa-o::before {
  content: "\4f"; }

.fa-suitcase-medical::before {
  content: "\f0fa"; }

.fa-medkit::before {
  content: "\f0fa"; }

.fa-user-secret::before {
  content: "\f21b"; }

.fa-otter::before {
  content: "\f700"; }

.fa-person-dress::before {
  content: "\f182"; }

.fa-female::before {
  content: "\f182"; }

.fa-comment-dollar::before {
  content: "\f651"; }

.fa-business-time::before {
  content: "\f64a"; }

.fa-briefcase-clock::before {
  content: "\f64a"; }

.fa-table-cells-large::before {
  content: "\f009"; }

.fa-th-large::before {
  content: "\f009"; }

.fa-book-tanakh::before {
  content: "\f827"; }

.fa-tanakh::before {
  content: "\f827"; }

.fa-phone-volume::before {
  content: "\f2a0"; }

.fa-volume-control-phone::before {
  content: "\f2a0"; }

.fa-hat-cowboy-side::before {
  content: "\f8c1"; }

.fa-clipboard-user::before {
  content: "\f7f3"; }

.fa-child::before {
  content: "\f1ae"; }

.fa-lira-sign::before {
  content: "\f195"; }

.fa-satellite::before {
  content: "\f7bf"; }

.fa-plane-lock::before {
  content: "\e558"; }

.fa-tag::before {
  content: "\f02b"; }

.fa-comment::before {
  content: "\f075"; }

.fa-cake-candles::before {
  content: "\f1fd"; }

.fa-birthday-cake::before {
  content: "\f1fd"; }

.fa-cake::before {
  content: "\f1fd"; }

.fa-envelope::before {
  content: "\f0e0"; }

.fa-angles-up::before {
  content: "\f102"; }

.fa-angle-double-up::before {
  content: "\f102"; }

.fa-paperclip::before {
  content: "\f0c6"; }

.fa-arrow-right-to-city::before {
  content: "\e4b3"; }

.fa-ribbon::before {
  content: "\f4d6"; }

.fa-lungs::before {
  content: "\f604"; }

.fa-arrow-up-9-1::before {
  content: "\f887"; }

.fa-sort-numeric-up-alt::before {
  content: "\f887"; }

.fa-litecoin-sign::before {
  content: "\e1d3"; }

.fa-border-none::before {
  content: "\f850"; }

.fa-circle-nodes::before {
  content: "\e4e2"; }

.fa-parachute-box::before {
  content: "\f4cd"; }

.fa-indent::before {
  content: "\f03c"; }

.fa-truck-field-un::before {
  content: "\e58e"; }

.fa-hourglass::before {
  content: "\f254"; }

.fa-hourglass-empty::before {
  content: "\f254"; }

.fa-mountain::before {
  content: "\f6fc"; }

.fa-user-doctor::before {
  content: "\f0f0"; }

.fa-user-md::before {
  content: "\f0f0"; }

.fa-circle-info::before {
  content: "\f05a"; }

.fa-info-circle::before {
  content: "\f05a"; }

.fa-cloud-meatball::before {
  content: "\f73b"; }

.fa-camera::before {
  content: "\f030"; }

.fa-camera-alt::before {
  content: "\f030"; }

.fa-square-virus::before {
  content: "\e578"; }

.fa-meteor::before {
  content: "\f753"; }

.fa-car-on::before {
  content: "\e4dd"; }

.fa-sleigh::before {
  content: "\f7cc"; }

.fa-arrow-down-1-9::before {
  content: "\f162"; }

.fa-sort-numeric-asc::before {
  content: "\f162"; }

.fa-sort-numeric-down::before {
  content: "\f162"; }

.fa-hand-holding-droplet::before {
  content: "\f4c1"; }

.fa-hand-holding-water::before {
  content: "\f4c1"; }

.fa-water::before {
  content: "\f773"; }

.fa-calendar-check::before {
  content: "\f274"; }

.fa-braille::before {
  content: "\f2a1"; }

.fa-prescription-bottle-medical::before {
  content: "\f486"; }

.fa-prescription-bottle-alt::before {
  content: "\f486"; }

.fa-landmark::before {
  content: "\f66f"; }

.fa-truck::before {
  content: "\f0d1"; }

.fa-crosshairs::before {
  content: "\f05b"; }

.fa-person-cane::before {
  content: "\e53c"; }

.fa-tent::before {
  content: "\e57d"; }

.fa-vest-patches::before {
  content: "\e086"; }

.fa-check-double::before {
  content: "\f560"; }

.fa-arrow-down-a-z::before {
  content: "\f15d"; }

.fa-sort-alpha-asc::before {
  content: "\f15d"; }

.fa-sort-alpha-down::before {
  content: "\f15d"; }

.fa-money-bill-wheat::before {
  content: "\e52a"; }

.fa-cookie::before {
  content: "\f563"; }

.fa-arrow-rotate-left::before {
  content: "\f0e2"; }

.fa-arrow-left-rotate::before {
  content: "\f0e2"; }

.fa-arrow-rotate-back::before {
  content: "\f0e2"; }

.fa-arrow-rotate-backward::before {
  content: "\f0e2"; }

.fa-undo::before {
  content: "\f0e2"; }

.fa-hard-drive::before {
  content: "\f0a0"; }

.fa-hdd::before {
  content: "\f0a0"; }

.fa-face-grin-squint-tears::before {
  content: "\f586"; }

.fa-grin-squint-tears::before {
  content: "\f586"; }

.fa-dumbbell::before {
  content: "\f44b"; }

.fa-rectangle-list::before {
  content: "\f022"; }

.fa-list-alt::before {
  content: "\f022"; }

.fa-tarp-droplet::before {
  content: "\e57c"; }

.fa-house-medical-circle-check::before {
  content: "\e511"; }

.fa-person-skiing-nordic::before {
  content: "\f7ca"; }

.fa-skiing-nordic::before {
  content: "\f7ca"; }

.fa-calendar-plus::before {
  content: "\f271"; }

.fa-plane-arrival::before {
  content: "\f5af"; }

.fa-circle-left::before {
  content: "\f359"; }

.fa-arrow-alt-circle-left::before {
  content: "\f359"; }

.fa-train-subway::before {
  content: "\f239"; }

.fa-subway::before {
  content: "\f239"; }

.fa-chart-gantt::before {
  content: "\e0e4"; }

.fa-indian-rupee-sign::before {
  content: "\e1bc"; }

.fa-indian-rupee::before {
  content: "\e1bc"; }

.fa-inr::before {
  content: "\e1bc"; }

.fa-crop-simple::before {
  content: "\f565"; }

.fa-crop-alt::before {
  content: "\f565"; }

.fa-money-bill-1::before {
  content: "\f3d1"; }

.fa-money-bill-alt::before {
  content: "\f3d1"; }

.fa-left-long::before {
  content: "\f30a"; }

.fa-long-arrow-alt-left::before {
  content: "\f30a"; }

.fa-dna::before {
  content: "\f471"; }

.fa-virus-slash::before {
  content: "\e075"; }

.fa-minus::before {
  content: "\f068"; }

.fa-subtract::before {
  content: "\f068"; }

.fa-chess::before {
  content: "\f439"; }

.fa-arrow-left-long::before {
  content: "\f177"; }

.fa-long-arrow-left::before {
  content: "\f177"; }

.fa-plug-circle-check::before {
  content: "\e55c"; }

.fa-street-view::before {
  content: "\f21d"; }

.fa-franc-sign::before {
  content: "\e18f"; }

.fa-volume-off::before {
  content: "\f026"; }

.fa-hands-asl-interpreting::before {
  content: "\f2a3"; }

.fa-american-sign-language-interpreting::before {
  content: "\f2a3"; }

.fa-asl-interpreting::before {
  content: "\f2a3"; }

.fa-hands-american-sign-language-interpreting::before {
  content: "\f2a3"; }

.fa-gear::before {
  content: "\f013"; }

.fa-cog::before {
  content: "\f013"; }

.fa-droplet-slash::before {
  content: "\f5c7"; }

.fa-tint-slash::before {
  content: "\f5c7"; }

.fa-mosque::before {
  content: "\f678"; }

.fa-mosquito::before {
  content: "\e52b"; }

.fa-star-of-david::before {
  content: "\f69a"; }

.fa-person-military-rifle::before {
  content: "\e54b"; }

.fa-cart-shopping::before {
  content: "\f07a"; }

.fa-shopping-cart::before {
  content: "\f07a"; }

.fa-vials::before {
  content: "\f493"; }

.fa-plug-circle-plus::before {
  content: "\e55f"; }

.fa-place-of-worship::before {
  content: "\f67f"; }

.fa-grip-vertical::before {
  content: "\f58e"; }

.fa-arrow-turn-up::before {
  content: "\f148"; }

.fa-level-up::before {
  content: "\f148"; }

.fa-u::before {
  content: "\55"; }

.fa-square-root-variable::before {
  content: "\f698"; }

.fa-square-root-alt::before {
  content: "\f698"; }

.fa-clock::before {
  content: "\f017"; }

.fa-clock-four::before {
  content: "\f017"; }

.fa-backward-step::before {
  content: "\f048"; }

.fa-step-backward::before {
  content: "\f048"; }

.fa-pallet::before {
  content: "\f482"; }

.fa-faucet::before {
  content: "\e005"; }

.fa-baseball-bat-ball::before {
  content: "\f432"; }

.fa-s::before {
  content: "\53"; }

.fa-timeline::before {
  content: "\e29c"; }

.fa-keyboard::before {
  content: "\f11c"; }

.fa-caret-down::before {
  content: "\f0d7"; }

.fa-house-chimney-medical::before {
  content: "\f7f2"; }

.fa-clinic-medical::before {
  content: "\f7f2"; }

.fa-temperature-three-quarters::before {
  content: "\f2c8"; }

.fa-temperature-3::before {
  content: "\f2c8"; }

.fa-thermometer-3::before {
  content: "\f2c8"; }

.fa-thermometer-three-quarters::before {
  content: "\f2c8"; }

.fa-mobile-screen::before {
  content: "\f3cf"; }

.fa-mobile-android-alt::before {
  content: "\f3cf"; }

.fa-plane-up::before {
  content: "\e22d"; }

.fa-piggy-bank::before {
  content: "\f4d3"; }

.fa-battery-half::before {
  content: "\f242"; }

.fa-battery-3::before {
  content: "\f242"; }

.fa-mountain-city::before {
  content: "\e52e"; }

.fa-coins::before {
  content: "\f51e"; }

.fa-khanda::before {
  content: "\f66d"; }

.fa-sliders::before {
  content: "\f1de"; }

.fa-sliders-h::before {
  content: "\f1de"; }

.fa-folder-tree::before {
  content: "\f802"; }

.fa-network-wired::before {
  content: "\f6ff"; }

.fa-map-pin::before {
  content: "\f276"; }

.fa-hamsa::before {
  content: "\f665"; }

.fa-cent-sign::before {
  content: "\e3f5"; }

.fa-flask::before {
  content: "\f0c3"; }

.fa-person-pregnant::before {
  content: "\e31e"; }

.fa-wand-sparkles::before {
  content: "\f72b"; }

.fa-ellipsis-vertical::before {
  content: "\f142"; }

.fa-ellipsis-v::before {
  content: "\f142"; }

.fa-ticket::before {
  content: "\f145"; }

.fa-power-off::before {
  content: "\f011"; }

.fa-right-long::before {
  content: "\f30b"; }

.fa-long-arrow-alt-right::before {
  content: "\f30b"; }

.fa-flag-usa::before {
  content: "\f74d"; }

.fa-laptop-file::before {
  content: "\e51d"; }

.fa-tty::before {
  content: "\f1e4"; }

.fa-teletype::before {
  content: "\f1e4"; }

.fa-diagram-next::before {
  content: "\e476"; }

.fa-person-rifle::before {
  content: "\e54e"; }

.fa-house-medical-circle-exclamation::before {
  content: "\e512"; }

.fa-closed-captioning::before {
  content: "\f20a"; }

.fa-person-hiking::before {
  content: "\f6ec"; }

.fa-hiking::before {
  content: "\f6ec"; }

.fa-venus-double::before {
  content: "\f226"; }

.fa-images::before {
  content: "\f302"; }

.fa-calculator::before {
  content: "\f1ec"; }

.fa-people-pulling::before {
  content: "\e535"; }

.fa-n::before {
  content: "\4e"; }

.fa-cable-car::before {
  content: "\f7da"; }

.fa-tram::before {
  content: "\f7da"; }

.fa-cloud-rain::before {
  content: "\f73d"; }

.fa-building-circle-xmark::before {
  content: "\e4d4"; }

.fa-ship::before {
  content: "\f21a"; }

.fa-arrows-down-to-line::before {
  content: "\e4b8"; }

.fa-download::before {
  content: "\f019"; }

.fa-face-grin::before {
  content: "\f580"; }

.fa-grin::before {
  content: "\f580"; }

.fa-delete-left::before {
  content: "\f55a"; }

.fa-backspace::before {
  content: "\f55a"; }

.fa-eye-dropper::before {
  content: "\f1fb"; }

.fa-eye-dropper-empty::before {
  content: "\f1fb"; }

.fa-eyedropper::before {
  content: "\f1fb"; }

.fa-file-circle-check::before {
  content: "\e5a0"; }

.fa-forward::before {
  content: "\f04e"; }

.fa-mobile::before {
  content: "\f3ce"; }

.fa-mobile-android::before {
  content: "\f3ce"; }

.fa-mobile-phone::before {
  content: "\f3ce"; }

.fa-face-meh::before {
  content: "\f11a"; }

.fa-meh::before {
  content: "\f11a"; }

.fa-align-center::before {
  content: "\f037"; }

.fa-book-skull::before {
  content: "\f6b7"; }

.fa-book-dead::before {
  content: "\f6b7"; }

.fa-id-card::before {
  content: "\f2c2"; }

.fa-drivers-license::before {
  content: "\f2c2"; }

.fa-outdent::before {
  content: "\f03b"; }

.fa-dedent::before {
  content: "\f03b"; }

.fa-heart-circle-exclamation::before {
  content: "\e4fe"; }

.fa-house::before {
  content: "\f015"; }

.fa-home::before {
  content: "\f015"; }

.fa-home-alt::before {
  content: "\f015"; }

.fa-home-lg-alt::before {
  content: "\f015"; }

.fa-calendar-week::before {
  content: "\f784"; }

.fa-laptop-medical::before {
  content: "\f812"; }

.fa-b::before {
  content: "\42"; }

.fa-file-medical::before {
  content: "\f477"; }

.fa-dice-one::before {
  content: "\f525"; }

.fa-kiwi-bird::before {
  content: "\f535"; }

.fa-arrow-right-arrow-left::before {
  content: "\f0ec"; }

.fa-exchange::before {
  content: "\f0ec"; }

.fa-rotate-right::before {
  content: "\f2f9"; }

.fa-redo-alt::before {
  content: "\f2f9"; }

.fa-rotate-forward::before {
  content: "\f2f9"; }

.fa-utensils::before {
  content: "\f2e7"; }

.fa-cutlery::before {
  content: "\f2e7"; }

.fa-arrow-up-wide-short::before {
  content: "\f161"; }

.fa-sort-amount-up::before {
  content: "\f161"; }

.fa-mill-sign::before {
  content: "\e1ed"; }

.fa-bowl-rice::before {
  content: "\e2eb"; }

.fa-skull::before {
  content: "\f54c"; }

.fa-tower-broadcast::before {
  content: "\f519"; }

.fa-broadcast-tower::before {
  content: "\f519"; }

.fa-truck-pickup::before {
  content: "\f63c"; }

.fa-up-long::before {
  content: "\f30c"; }

.fa-long-arrow-alt-up::before {
  content: "\f30c"; }

.fa-stop::before {
  content: "\f04d"; }

.fa-code-merge::before {
  content: "\f387"; }

.fa-upload::before {
  content: "\f093"; }

.fa-hurricane::before {
  content: "\f751"; }

.fa-mound::before {
  content: "\e52d"; }

.fa-toilet-portable::before {
  content: "\e583"; }

.fa-compact-disc::before {
  content: "\f51f"; }

.fa-file-arrow-down::before {
  content: "\f56d"; }

.fa-file-download::before {
  content: "\f56d"; }

.fa-caravan::before {
  content: "\f8ff"; }

.fa-shield-cat::before {
  content: "\e572"; }

.fa-bolt::before {
  content: "\f0e7"; }

.fa-zap::before {
  content: "\f0e7"; }

.fa-glass-water::before {
  content: "\e4f4"; }

.fa-oil-well::before {
  content: "\e532"; }

.fa-vault::before {
  content: "\e2c5"; }

.fa-mars::before {
  content: "\f222"; }

.fa-toilet::before {
  content: "\f7d8"; }

.fa-plane-circle-xmark::before {
  content: "\e557"; }

.fa-yen-sign::before {
  content: "\f157"; }

.fa-cny::before {
  content: "\f157"; }

.fa-jpy::before {
  content: "\f157"; }

.fa-rmb::before {
  content: "\f157"; }

.fa-yen::before {
  content: "\f157"; }

.fa-ruble-sign::before {
  content: "\f158"; }

.fa-rouble::before {
  content: "\f158"; }

.fa-rub::before {
  content: "\f158"; }

.fa-ruble::before {
  content: "\f158"; }

.fa-sun::before {
  content: "\f185"; }

.fa-guitar::before {
  content: "\f7a6"; }

.fa-face-laugh-wink::before {
  content: "\f59c"; }

.fa-laugh-wink::before {
  content: "\f59c"; }

.fa-horse-head::before {
  content: "\f7ab"; }

.fa-bore-hole::before {
  content: "\e4c3"; }

.fa-industry::before {
  content: "\f275"; }

.fa-circle-down::before {
  content: "\f358"; }

.fa-arrow-alt-circle-down::before {
  content: "\f358"; }

.fa-arrows-turn-to-dots::before {
  content: "\e4c1"; }

.fa-florin-sign::before {
  content: "\e184"; }

.fa-arrow-down-short-wide::before {
  content: "\f884"; }

.fa-sort-amount-desc::before {
  content: "\f884"; }

.fa-sort-amount-down-alt::before {
  content: "\f884"; }

.fa-less-than::before {
  content: "\3c"; }

.fa-angle-down::before {
  content: "\f107"; }

.fa-car-tunnel::before {
  content: "\e4de"; }

.fa-head-side-cough::before {
  content: "\e061"; }

.fa-grip-lines::before {
  content: "\f7a4"; }

.fa-thumbs-down::before {
  content: "\f165"; }

.fa-user-lock::before {
  content: "\f502"; }

.fa-arrow-right-long::before {
  content: "\f178"; }

.fa-long-arrow-right::before {
  content: "\f178"; }

.fa-anchor-circle-xmark::before {
  content: "\e4ac"; }

.fa-ellipsis::before {
  content: "\f141"; }

.fa-ellipsis-h::before {
  content: "\f141"; }

.fa-chess-pawn::before {
  content: "\f443"; }

.fa-kit-medical::before {
  content: "\f479"; }

.fa-first-aid::before {
  content: "\f479"; }

.fa-person-through-window::before {
  content: "\e5a9"; }

.fa-toolbox::before {
  content: "\f552"; }

.fa-hands-holding-circle::before {
  content: "\e4fb"; }

.fa-bug::before {
  content: "\f188"; }

.fa-credit-card::before {
  content: "\f09d"; }

.fa-credit-card-alt::before {
  content: "\f09d"; }

.fa-car::before {
  content: "\f1b9"; }

.fa-automobile::before {
  content: "\f1b9"; }

.fa-hand-holding-hand::before {
  content: "\e4f7"; }

.fa-book-open-reader::before {
  content: "\f5da"; }

.fa-book-reader::before {
  content: "\f5da"; }

.fa-mountain-sun::before {
  content: "\e52f"; }

.fa-arrows-left-right-to-line::before {
  content: "\e4ba"; }

.fa-dice-d20::before {
  content: "\f6cf"; }

.fa-truck-droplet::before {
  content: "\e58c"; }

.fa-file-circle-xmark::before {
  content: "\e5a1"; }

.fa-temperature-arrow-up::before {
  content: "\e040"; }

.fa-temperature-up::before {
  content: "\e040"; }

.fa-medal::before {
  content: "\f5a2"; }

.fa-bed::before {
  content: "\f236"; }

.fa-square-h::before {
  content: "\f0fd"; }

.fa-h-square::before {
  content: "\f0fd"; }

.fa-podcast::before {
  content: "\f2ce"; }

.fa-temperature-full::before {
  content: "\f2c7"; }

.fa-temperature-4::before {
  content: "\f2c7"; }

.fa-thermometer-4::before {
  content: "\f2c7"; }

.fa-thermometer-full::before {
  content: "\f2c7"; }

.fa-bell::before {
  content: "\f0f3"; }

.fa-superscript::before {
  content: "\f12b"; }

.fa-plug-circle-xmark::before {
  content: "\e560"; }

.fa-star-of-life::before {
  content: "\f621"; }

.fa-phone-slash::before {
  content: "\f3dd"; }

.fa-paint-roller::before {
  content: "\f5aa"; }

.fa-handshake-angle::before {
  content: "\f4c4"; }

.fa-hands-helping::before {
  content: "\f4c4"; }

.fa-location-dot::before {
  content: "\f3c5"; }

.fa-map-marker-alt::before {
  content: "\f3c5"; }

.fa-file::before {
  content: "\f15b"; }

.fa-greater-than::before {
  content: "\3e"; }

.fa-person-swimming::before {
  content: "\f5c4"; }

.fa-swimmer::before {
  content: "\f5c4"; }

.fa-arrow-down::before {
  content: "\f063"; }

.fa-droplet::before {
  content: "\f043"; }

.fa-tint::before {
  content: "\f043"; }

.fa-eraser::before {
  content: "\f12d"; }

.fa-earth-americas::before {
  content: "\f57d"; }

.fa-earth::before {
  content: "\f57d"; }

.fa-earth-america::before {
  content: "\f57d"; }

.fa-globe-americas::before {
  content: "\f57d"; }

.fa-person-burst::before {
  content: "\e53b"; }

.fa-dove::before {
  content: "\f4ba"; }

.fa-battery-empty::before {
  content: "\f244"; }

.fa-battery-0::before {
  content: "\f244"; }

.fa-socks::before {
  content: "\f696"; }

.fa-inbox::before {
  content: "\f01c"; }

.fa-section::before {
  content: "\e447"; }

.fa-gauge-high::before {
  content: "\f625"; }

.fa-tachometer-alt::before {
  content: "\f625"; }

.fa-tachometer-alt-fast::before {
  content: "\f625"; }

.fa-envelope-open-text::before {
  content: "\f658"; }

.fa-hospital::before {
  content: "\f0f8"; }

.fa-hospital-alt::before {
  content: "\f0f8"; }

.fa-hospital-wide::before {
  content: "\f0f8"; }

.fa-wine-bottle::before {
  content: "\f72f"; }

.fa-chess-rook::before {
  content: "\f447"; }

.fa-bars-staggered::before {
  content: "\f550"; }

.fa-reorder::before {
  content: "\f550"; }

.fa-stream::before {
  content: "\f550"; }

.fa-dharmachakra::before {
  content: "\f655"; }

.fa-hotdog::before {
  content: "\f80f"; }

.fa-person-walking-with-cane::before {
  content: "\f29d"; }

.fa-blind::before {
  content: "\f29d"; }

.fa-drum::before {
  content: "\f569"; }

.fa-ice-cream::before {
  content: "\f810"; }

.fa-heart-circle-bolt::before {
  content: "\e4fc"; }

.fa-fax::before {
  content: "\f1ac"; }

.fa-paragraph::before {
  content: "\f1dd"; }

.fa-check-to-slot::before {
  content: "\f772"; }

.fa-vote-yea::before {
  content: "\f772"; }

.fa-star-half::before {
  content: "\f089"; }

.fa-boxes-stacked::before {
  content: "\f468"; }

.fa-boxes::before {
  content: "\f468"; }

.fa-boxes-alt::before {
  content: "\f468"; }

.fa-link::before {
  content: "\f0c1"; }

.fa-chain::before {
  content: "\f0c1"; }

.fa-ear-listen::before {
  content: "\f2a2"; }

.fa-assistive-listening-systems::before {
  content: "\f2a2"; }

.fa-tree-city::before {
  content: "\e587"; }

.fa-play::before {
  content: "\f04b"; }

.fa-font::before {
  content: "\f031"; }

.fa-table-cells-row-lock::before {
  content: "\e67a"; }

.fa-rupiah-sign::before {
  content: "\e23d"; }

.fa-magnifying-glass::before {
  content: "\f002"; }

.fa-search::before {
  content: "\f002"; }

.fa-table-tennis-paddle-ball::before {
  content: "\f45d"; }

.fa-ping-pong-paddle-ball::before {
  content: "\f45d"; }

.fa-table-tennis::before {
  content: "\f45d"; }

.fa-person-dots-from-line::before {
  content: "\f470"; }

.fa-diagnoses::before {
  content: "\f470"; }

.fa-trash-can-arrow-up::before {
  content: "\f82a"; }

.fa-trash-restore-alt::before {
  content: "\f82a"; }

.fa-naira-sign::before {
  content: "\e1f6"; }

.fa-cart-arrow-down::before {
  content: "\f218"; }

.fa-walkie-talkie::before {
  content: "\f8ef"; }

.fa-file-pen::before {
  content: "\f31c"; }

.fa-file-edit::before {
  content: "\f31c"; }

.fa-receipt::before {
  content: "\f543"; }

.fa-square-pen::before {
  content: "\f14b"; }

.fa-pen-square::before {
  content: "\f14b"; }

.fa-pencil-square::before {
  content: "\f14b"; }

.fa-suitcase-rolling::before {
  content: "\f5c1"; }

.fa-person-circle-exclamation::before {
  content: "\e53f"; }

.fa-chevron-down::before {
  content: "\f078"; }

.fa-battery-full::before {
  content: "\f240"; }

.fa-battery::before {
  content: "\f240"; }

.fa-battery-5::before {
  content: "\f240"; }

.fa-skull-crossbones::before {
  content: "\f714"; }

.fa-code-compare::before {
  content: "\e13a"; }

.fa-list-ul::before {
  content: "\f0ca"; }

.fa-list-dots::before {
  content: "\f0ca"; }

.fa-school-lock::before {
  content: "\e56f"; }

.fa-tower-cell::before {
  content: "\e585"; }

.fa-down-long::before {
  content: "\f309"; }

.fa-long-arrow-alt-down::before {
  content: "\f309"; }

.fa-ranking-star::before {
  content: "\e561"; }

.fa-chess-king::before {
  content: "\f43f"; }

.fa-person-harassing::before {
  content: "\e549"; }

.fa-brazilian-real-sign::before {
  content: "\e46c"; }

.fa-landmark-dome::before {
  content: "\f752"; }

.fa-landmark-alt::before {
  content: "\f752"; }

.fa-arrow-up::before {
  content: "\f062"; }

.fa-tv::before {
  content: "\f26c"; }

.fa-television::before {
  content: "\f26c"; }

.fa-tv-alt::before {
  content: "\f26c"; }

.fa-shrimp::before {
  content: "\e448"; }

.fa-list-check::before {
  content: "\f0ae"; }

.fa-tasks::before {
  content: "\f0ae"; }

.fa-jug-detergent::before {
  content: "\e519"; }

.fa-circle-user::before {
  content: "\f2bd"; }

.fa-user-circle::before {
  content: "\f2bd"; }

.fa-user-shield::before {
  content: "\f505"; }

.fa-wind::before {
  content: "\f72e"; }

.fa-car-burst::before {
  content: "\f5e1"; }

.fa-car-crash::before {
  content: "\f5e1"; }

.fa-y::before {
  content: "\59"; }

.fa-person-snowboarding::before {
  content: "\f7ce"; }

.fa-snowboarding::before {
  content: "\f7ce"; }

.fa-truck-fast::before {
  content: "\f48b"; }

.fa-shipping-fast::before {
  content: "\f48b"; }

.fa-fish::before {
  content: "\f578"; }

.fa-user-graduate::before {
  content: "\f501"; }

.fa-circle-half-stroke::before {
  content: "\f042"; }

.fa-adjust::before {
  content: "\f042"; }

.fa-clapperboard::before {
  content: "\e131"; }

.fa-circle-radiation::before {
  content: "\f7ba"; }

.fa-radiation-alt::before {
  content: "\f7ba"; }

.fa-baseball::before {
  content: "\f433"; }

.fa-baseball-ball::before {
  content: "\f433"; }

.fa-jet-fighter-up::before {
  content: "\e518"; }

.fa-diagram-project::before {
  content: "\f542"; }

.fa-project-diagram::before {
  content: "\f542"; }

.fa-copy::before {
  content: "\f0c5"; }

.fa-volume-xmark::before {
  content: "\f6a9"; }

.fa-volume-mute::before {
  content: "\f6a9"; }

.fa-volume-times::before {
  content: "\f6a9"; }

.fa-hand-sparkles::before {
  content: "\e05d"; }

.fa-grip::before {
  content: "\f58d"; }

.fa-grip-horizontal::before {
  content: "\f58d"; }

.fa-share-from-square::before {
  content: "\f14d"; }

.fa-share-square::before {
  content: "\f14d"; }

.fa-child-combatant::before {
  content: "\e4e0"; }

.fa-child-rifle::before {
  content: "\e4e0"; }

.fa-gun::before {
  content: "\e19b"; }

.fa-square-phone::before {
  content: "\f098"; }

.fa-phone-square::before {
  content: "\f098"; }

.fa-plus::before {
  content: "\2b"; }

.fa-add::before {
  content: "\2b"; }

.fa-expand::before {
  content: "\f065"; }

.fa-computer::before {
  content: "\e4e5"; }

.fa-xmark::before {
  content: "\f00d"; }

.fa-close::before {
  content: "\f00d"; }

.fa-multiply::before {
  content: "\f00d"; }

.fa-remove::before {
  content: "\f00d"; }

.fa-times::before {
  content: "\f00d"; }

.fa-arrows-up-down-left-right::before {
  content: "\f047"; }

.fa-arrows::before {
  content: "\f047"; }

.fa-chalkboard-user::before {
  content: "\f51c"; }

.fa-chalkboard-teacher::before {
  content: "\f51c"; }

.fa-peso-sign::before {
  content: "\e222"; }

.fa-building-shield::before {
  content: "\e4d8"; }

.fa-baby::before {
  content: "\f77c"; }

.fa-users-line::before {
  content: "\e592"; }

.fa-quote-left::before {
  content: "\f10d"; }

.fa-quote-left-alt::before {
  content: "\f10d"; }

.fa-tractor::before {
  content: "\f722"; }

.fa-trash-arrow-up::before {
  content: "\f829"; }

.fa-trash-restore::before {
  content: "\f829"; }

.fa-arrow-down-up-lock::before {
  content: "\e4b0"; }

.fa-lines-leaning::before {
  content: "\e51e"; }

.fa-ruler-combined::before {
  content: "\f546"; }

.fa-copyright::before {
  content: "\f1f9"; }

.fa-equals::before {
  content: "\3d"; }

.fa-blender::before {
  content: "\f517"; }

.fa-teeth::before {
  content: "\f62e"; }

.fa-shekel-sign::before {
  content: "\f20b"; }

.fa-ils::before {
  content: "\f20b"; }

.fa-shekel::before {
  content: "\f20b"; }

.fa-sheqel::before {
  content: "\f20b"; }

.fa-sheqel-sign::before {
  content: "\f20b"; }

.fa-map::before {
  content: "\f279"; }

.fa-rocket::before {
  content: "\f135"; }

.fa-photo-film::before {
  content: "\f87c"; }

.fa-photo-video::before {
  content: "\f87c"; }

.fa-folder-minus::before {
  content: "\f65d"; }

.fa-store::before {
  content: "\f54e"; }

.fa-arrow-trend-up::before {
  content: "\e098"; }

.fa-plug-circle-minus::before {
  content: "\e55e"; }

.fa-sign-hanging::before {
  content: "\f4d9"; }

.fa-sign::before {
  content: "\f4d9"; }

.fa-bezier-curve::before {
  content: "\f55b"; }

.fa-bell-slash::before {
  content: "\f1f6"; }

.fa-tablet::before {
  content: "\f3fb"; }

.fa-tablet-android::before {
  content: "\f3fb"; }

.fa-school-flag::before {
  content: "\e56e"; }

.fa-fill::before {
  content: "\f575"; }

.fa-angle-up::before {
  content: "\f106"; }

.fa-drumstick-bite::before {
  content: "\f6d7"; }

.fa-holly-berry::before {
  content: "\f7aa"; }

.fa-chevron-left::before {
  content: "\f053"; }

.fa-bacteria::before {
  content: "\e059"; }

.fa-hand-lizard::before {
  content: "\f258"; }

.fa-notdef::before {
  content: "\e1fe"; }

.fa-disease::before {
  content: "\f7fa"; }

.fa-briefcase-medical::before {
  content: "\f469"; }

.fa-genderless::before {
  content: "\f22d"; }

.fa-chevron-right::before {
  content: "\f054"; }

.fa-retweet::before {
  content: "\f079"; }

.fa-car-rear::before {
  content: "\f5de"; }

.fa-car-alt::before {
  content: "\f5de"; }

.fa-pump-soap::before {
  content: "\e06b"; }

.fa-video-slash::before {
  content: "\f4e2"; }

.fa-battery-quarter::before {
  content: "\f243"; }

.fa-battery-2::before {
  content: "\f243"; }

.fa-radio::before {
  content: "\f8d7"; }

.fa-baby-carriage::before {
  content: "\f77d"; }

.fa-carriage-baby::before {
  content: "\f77d"; }

.fa-traffic-light::before {
  content: "\f637"; }

.fa-thermometer::before {
  content: "\f491"; }

.fa-vr-cardboard::before {
  content: "\f729"; }

.fa-hand-middle-finger::before {
  content: "\f806"; }

.fa-percent::before {
  content: "\25"; }

.fa-percentage::before {
  content: "\25"; }

.fa-truck-moving::before {
  content: "\f4df"; }

.fa-glass-water-droplet::before {
  content: "\e4f5"; }

.fa-display::before {
  content: "\e163"; }

.fa-face-smile::before {
  content: "\f118"; }

.fa-smile::before {
  content: "\f118"; }

.fa-thumbtack::before {
  content: "\f08d"; }

.fa-thumb-tack::before {
  content: "\f08d"; }

.fa-trophy::before {
  content: "\f091"; }

.fa-person-praying::before {
  content: "\f683"; }

.fa-pray::before {
  content: "\f683"; }

.fa-hammer::before {
  content: "\f6e3"; }

.fa-hand-peace::before {
  content: "\f25b"; }

.fa-rotate::before {
  content: "\f2f1"; }

.fa-sync-alt::before {
  content: "\f2f1"; }

.fa-spinner::before {
  content: "\f110"; }

.fa-robot::before {
  content: "\f544"; }

.fa-peace::before {
  content: "\f67c"; }

.fa-gears::before {
  content: "\f085"; }

.fa-cogs::before {
  content: "\f085"; }

.fa-warehouse::before {
  content: "\f494"; }

.fa-arrow-up-right-dots::before {
  content: "\e4b7"; }

.fa-splotch::before {
  content: "\f5bc"; }

.fa-face-grin-hearts::before {
  content: "\f584"; }

.fa-grin-hearts::before {
  content: "\f584"; }

.fa-dice-four::before {
  content: "\f524"; }

.fa-sim-card::before {
  content: "\f7c4"; }

.fa-transgender::before {
  content: "\f225"; }

.fa-transgender-alt::before {
  content: "\f225"; }

.fa-mercury::before {
  content: "\f223"; }

.fa-arrow-turn-down::before {
  content: "\f149"; }

.fa-level-down::before {
  content: "\f149"; }

.fa-person-falling-burst::before {
  content: "\e547"; }

.fa-award::before {
  content: "\f559"; }

.fa-ticket-simple::before {
  content: "\f3ff"; }

.fa-ticket-alt::before {
  content: "\f3ff"; }

.fa-building::before {
  content: "\f1ad"; }

.fa-angles-left::before {
  content: "\f100"; }

.fa-angle-double-left::before {
  content: "\f100"; }

.fa-qrcode::before {
  content: "\f029"; }

.fa-clock-rotate-left::before {
  content: "\f1da"; }

.fa-history::before {
  content: "\f1da"; }

.fa-face-grin-beam-sweat::before {
  content: "\f583"; }

.fa-grin-beam-sweat::before {
  content: "\f583"; }

.fa-file-export::before {
  content: "\f56e"; }

.fa-arrow-right-from-file::before {
  content: "\f56e"; }

.fa-shield::before {
  content: "\f132"; }

.fa-shield-blank::before {
  content: "\f132"; }

.fa-arrow-up-short-wide::before {
  content: "\f885"; }

.fa-sort-amount-up-alt::before {
  content: "\f885"; }

.fa-house-medical::before {
  content: "\e3b2"; }

.fa-golf-ball-tee::before {
  content: "\f450"; }

.fa-golf-ball::before {
  content: "\f450"; }

.fa-circle-chevron-left::before {
  content: "\f137"; }

.fa-chevron-circle-left::before {
  content: "\f137"; }

.fa-house-chimney-window::before {
  content: "\e00d"; }

.fa-pen-nib::before {
  content: "\f5ad"; }

.fa-tent-arrow-turn-left::before {
  content: "\e580"; }

.fa-tents::before {
  content: "\e582"; }

.fa-wand-magic::before {
  content: "\f0d0"; }

.fa-magic::before {
  content: "\f0d0"; }

.fa-dog::before {
  content: "\f6d3"; }

.fa-carrot::before {
  content: "\f787"; }

.fa-moon::before {
  content: "\f186"; }

.fa-wine-glass-empty::before {
  content: "\f5ce"; }

.fa-wine-glass-alt::before {
  content: "\f5ce"; }

.fa-cheese::before {
  content: "\f7ef"; }

.fa-yin-yang::before {
  content: "\f6ad"; }

.fa-music::before {
  content: "\f001"; }

.fa-code-commit::before {
  content: "\f386"; }

.fa-temperature-low::before {
  content: "\f76b"; }

.fa-person-biking::before {
  content: "\f84a"; }

.fa-biking::before {
  content: "\f84a"; }

.fa-broom::before {
  content: "\f51a"; }

.fa-shield-heart::before {
  content: "\e574"; }

.fa-gopuram::before {
  content: "\f664"; }

.fa-earth-oceania::before {
  content: "\e47b"; }

.fa-globe-oceania::before {
  content: "\e47b"; }

.fa-square-xmark::before {
  content: "\f2d3"; }

.fa-times-square::before {
  content: "\f2d3"; }

.fa-xmark-square::before {
  content: "\f2d3"; }

.fa-hashtag::before {
  content: "\23"; }

.fa-up-right-and-down-left-from-center::before {
  content: "\f424"; }

.fa-expand-alt::before {
  content: "\f424"; }

.fa-oil-can::before {
  content: "\f613"; }

.fa-t::before {
  content: "\54"; }

.fa-hippo::before {
  content: "\f6ed"; }

.fa-chart-column::before {
  content: "\e0e3"; }

.fa-infinity::before {
  content: "\f534"; }

.fa-vial-circle-check::before {
  content: "\e596"; }

.fa-person-arrow-down-to-line::before {
  content: "\e538"; }

.fa-voicemail::before {
  content: "\f897"; }

.fa-fan::before {
  content: "\f863"; }

.fa-person-walking-luggage::before {
  content: "\e554"; }

.fa-up-down::before {
  content: "\f338"; }

.fa-arrows-alt-v::before {
  content: "\f338"; }

.fa-cloud-moon-rain::before {
  content: "\f73c"; }

.fa-calendar::before {
  content: "\f133"; }

.fa-trailer::before {
  content: "\e041"; }

.fa-bahai::before {
  content: "\f666"; }

.fa-haykal::before {
  content: "\f666"; }

.fa-sd-card::before {
  content: "\f7c2"; }

.fa-dragon::before {
  content: "\f6d5"; }

.fa-shoe-prints::before {
  content: "\f54b"; }

.fa-circle-plus::before {
  content: "\f055"; }

.fa-plus-circle::before {
  content: "\f055"; }

.fa-face-grin-tongue-wink::before {
  content: "\f58b"; }

.fa-grin-tongue-wink::before {
  content: "\f58b"; }

.fa-hand-holding::before {
  content: "\f4bd"; }

.fa-plug-circle-exclamation::before {
  content: "\e55d"; }

.fa-link-slash::before {
  content: "\f127"; }

.fa-chain-broken::before {
  content: "\f127"; }

.fa-chain-slash::before {
  content: "\f127"; }

.fa-unlink::before {
  content: "\f127"; }

.fa-clone::before {
  content: "\f24d"; }

.fa-person-walking-arrow-loop-left::before {
  content: "\e551"; }

.fa-arrow-up-z-a::before {
  content: "\f882"; }

.fa-sort-alpha-up-alt::before {
  content: "\f882"; }

.fa-fire-flame-curved::before {
  content: "\f7e4"; }

.fa-fire-alt::before {
  content: "\f7e4"; }

.fa-tornado::before {
  content: "\f76f"; }

.fa-file-circle-plus::before {
  content: "\e494"; }

.fa-book-quran::before {
  content: "\f687"; }

.fa-quran::before {
  content: "\f687"; }

.fa-anchor::before {
  content: "\f13d"; }

.fa-border-all::before {
  content: "\f84c"; }

.fa-face-angry::before {
  content: "\f556"; }

.fa-angry::before {
  content: "\f556"; }

.fa-cookie-bite::before {
  content: "\f564"; }

.fa-arrow-trend-down::before {
  content: "\e097"; }

.fa-rss::before {
  content: "\f09e"; }

.fa-feed::before {
  content: "\f09e"; }

.fa-draw-polygon::before {
  content: "\f5ee"; }

.fa-scale-balanced::before {
  content: "\f24e"; }

.fa-balance-scale::before {
  content: "\f24e"; }

.fa-gauge-simple-high::before {
  content: "\f62a"; }

.fa-tachometer::before {
  content: "\f62a"; }

.fa-tachometer-fast::before {
  content: "\f62a"; }

.fa-shower::before {
  content: "\f2cc"; }

.fa-desktop::before {
  content: "\f390"; }

.fa-desktop-alt::before {
  content: "\f390"; }

.fa-m::before {
  content: "\4d"; }

.fa-table-list::before {
  content: "\f00b"; }

.fa-th-list::before {
  content: "\f00b"; }

.fa-comment-sms::before {
  content: "\f7cd"; }

.fa-sms::before {
  content: "\f7cd"; }

.fa-book::before {
  content: "\f02d"; }

.fa-user-plus::before {
  content: "\f234"; }

.fa-check::before {
  content: "\f00c"; }

.fa-battery-three-quarters::before {
  content: "\f241"; }

.fa-battery-4::before {
  content: "\f241"; }

.fa-house-circle-check::before {
  content: "\e509"; }

.fa-angle-left::before {
  content: "\f104"; }

.fa-diagram-successor::before {
  content: "\e47a"; }

.fa-truck-arrow-right::before {
  content: "\e58b"; }

.fa-arrows-split-up-and-left::before {
  content: "\e4bc"; }

.fa-hand-fist::before {
  content: "\f6de"; }

.fa-fist-raised::before {
  content: "\f6de"; }

.fa-cloud-moon::before {
  content: "\f6c3"; }

.fa-briefcase::before {
  content: "\f0b1"; }

.fa-person-falling::before {
  content: "\e546"; }

.fa-image-portrait::before {
  content: "\f3e0"; }

.fa-portrait::before {
  content: "\f3e0"; }

.fa-user-tag::before {
  content: "\f507"; }

.fa-rug::before {
  content: "\e569"; }

.fa-earth-europe::before {
  content: "\f7a2"; }

.fa-globe-europe::before {
  content: "\f7a2"; }

.fa-cart-flatbed-suitcase::before {
  content: "\f59d"; }

.fa-luggage-cart::before {
  content: "\f59d"; }

.fa-rectangle-xmark::before {
  content: "\f410"; }

.fa-rectangle-times::before {
  content: "\f410"; }

.fa-times-rectangle::before {
  content: "\f410"; }

.fa-window-close::before {
  content: "\f410"; }

.fa-baht-sign::before {
  content: "\e0ac"; }

.fa-book-open::before {
  content: "\f518"; }

.fa-book-journal-whills::before {
  content: "\f66a"; }

.fa-journal-whills::before {
  content: "\f66a"; }

.fa-handcuffs::before {
  content: "\e4f8"; }

.fa-triangle-exclamation::before {
  content: "\f071"; }

.fa-exclamation-triangle::before {
  content: "\f071"; }

.fa-warning::before {
  content: "\f071"; }

.fa-database::before {
  content: "\f1c0"; }

.fa-share::before {
  content: "\f064"; }

.fa-mail-forward::before {
  content: "\f064"; }

.fa-bottle-droplet::before {
  content: "\e4c4"; }

.fa-mask-face::before {
  content: "\e1d7"; }

.fa-hill-rockslide::before {
  content: "\e508"; }

.fa-right-left::before {
  content: "\f362"; }

.fa-exchange-alt::before {
  content: "\f362"; }

.fa-paper-plane::before {
  content: "\f1d8"; }

.fa-road-circle-exclamation::before {
  content: "\e565"; }

.fa-dungeon::before {
  content: "\f6d9"; }

.fa-align-right::before {
  content: "\f038"; }

.fa-money-bill-1-wave::before {
  content: "\f53b"; }

.fa-money-bill-wave-alt::before {
  content: "\f53b"; }

.fa-life-ring::before {
  content: "\f1cd"; }

.fa-hands::before {
  content: "\f2a7"; }

.fa-sign-language::before {
  content: "\f2a7"; }

.fa-signing::before {
  content: "\f2a7"; }

.fa-calendar-day::before {
  content: "\f783"; }

.fa-water-ladder::before {
  content: "\f5c5"; }

.fa-ladder-water::before {
  content: "\f5c5"; }

.fa-swimming-pool::before {
  content: "\f5c5"; }

.fa-arrows-up-down::before {
  content: "\f07d"; }

.fa-arrows-v::before {
  content: "\f07d"; }

.fa-face-grimace::before {
  content: "\f57f"; }

.fa-grimace::before {
  content: "\f57f"; }

.fa-wheelchair-move::before {
  content: "\e2ce"; }

.fa-wheelchair-alt::before {
  content: "\e2ce"; }

.fa-turn-down::before {
  content: "\f3be"; }

.fa-level-down-alt::before {
  content: "\f3be"; }

.fa-person-walking-arrow-right::before {
  content: "\e552"; }

.fa-square-envelope::before {
  content: "\f199"; }

.fa-envelope-square::before {
  content: "\f199"; }

.fa-dice::before {
  content: "\f522"; }

.fa-bowling-ball::before {
  content: "\f436"; }

.fa-brain::before {
  content: "\f5dc"; }

.fa-bandage::before {
  content: "\f462"; }

.fa-band-aid::before {
  content: "\f462"; }

.fa-calendar-minus::before {
  content: "\f272"; }

.fa-circle-xmark::before {
  content: "\f057"; }

.fa-times-circle::before {
  content: "\f057"; }

.fa-xmark-circle::before {
  content: "\f057"; }

.fa-gifts::before {
  content: "\f79c"; }

.fa-hotel::before {
  content: "\f594"; }

.fa-earth-asia::before {
  content: "\f57e"; }

.fa-globe-asia::before {
  content: "\f57e"; }

.fa-id-card-clip::before {
  content: "\f47f"; }

.fa-id-card-alt::before {
  content: "\f47f"; }

.fa-magnifying-glass-plus::before {
  content: "\f00e"; }

.fa-search-plus::before {
  content: "\f00e"; }

.fa-thumbs-up::before {
  content: "\f164"; }

.fa-user-clock::before {
  content: "\f4fd"; }

.fa-hand-dots::before {
  content: "\f461"; }

.fa-allergies::before {
  content: "\f461"; }

.fa-file-invoice::before {
  content: "\f570"; }

.fa-window-minimize::before {
  content: "\f2d1"; }

.fa-mug-saucer::before {
  content: "\f0f4"; }

.fa-coffee::before {
  content: "\f0f4"; }

.fa-brush::before {
  content: "\f55d"; }

.fa-mask::before {
  content: "\f6fa"; }

.fa-magnifying-glass-minus::before {
  content: "\f010"; }

.fa-search-minus::before {
  content: "\f010"; }

.fa-ruler-vertical::before {
  content: "\f548"; }

.fa-user-large::before {
  content: "\f406"; }

.fa-user-alt::before {
  content: "\f406"; }

.fa-train-tram::before {
  content: "\e5b4"; }

.fa-user-nurse::before {
  content: "\f82f"; }

.fa-syringe::before {
  content: "\f48e"; }

.fa-cloud-sun::before {
  content: "\f6c4"; }

.fa-stopwatch-20::before {
  content: "\e06f"; }

.fa-square-full::before {
  content: "\f45c"; }

.fa-magnet::before {
  content: "\f076"; }

.fa-jar::before {
  content: "\e516"; }

.fa-note-sticky::before {
  content: "\f249"; }

.fa-sticky-note::before {
  content: "\f249"; }

.fa-bug-slash::before {
  content: "\e490"; }

.fa-arrow-up-from-water-pump::before {
  content: "\e4b6"; }

.fa-bone::before {
  content: "\f5d7"; }

.fa-user-injured::before {
  content: "\f728"; }

.fa-face-sad-tear::before {
  content: "\f5b4"; }

.fa-sad-tear::before {
  content: "\f5b4"; }

.fa-plane::before {
  content: "\f072"; }

.fa-tent-arrows-down::before {
  content: "\e581"; }

.fa-exclamation::before {
  content: "\21"; }

.fa-arrows-spin::before {
  content: "\e4bb"; }

.fa-print::before {
  content: "\f02f"; }

.fa-turkish-lira-sign::before {
  content: "\e2bb"; }

.fa-try::before {
  content: "\e2bb"; }

.fa-turkish-lira::before {
  content: "\e2bb"; }

.fa-dollar-sign::before {
  content: "\24"; }

.fa-dollar::before {
  content: "\24"; }

.fa-usd::before {
  content: "\24"; }

.fa-x::before {
  content: "\58"; }

.fa-magnifying-glass-dollar::before {
  content: "\f688"; }

.fa-search-dollar::before {
  content: "\f688"; }

.fa-users-gear::before {
  content: "\f509"; }

.fa-users-cog::before {
  content: "\f509"; }

.fa-person-military-pointing::before {
  content: "\e54a"; }

.fa-building-columns::before {
  content: "\f19c"; }

.fa-bank::before {
  content: "\f19c"; }

.fa-institution::before {
  content: "\f19c"; }

.fa-museum::before {
  content: "\f19c"; }

.fa-university::before {
  content: "\f19c"; }

.fa-umbrella::before {
  content: "\f0e9"; }

.fa-trowel::before {
  content: "\e589"; }

.fa-d::before {
  content: "\44"; }

.fa-stapler::before {
  content: "\e5af"; }

.fa-masks-theater::before {
  content: "\f630"; }

.fa-theater-masks::before {
  content: "\f630"; }

.fa-kip-sign::before {
  content: "\e1c4"; }

.fa-hand-point-left::before {
  content: "\f0a5"; }

.fa-handshake-simple::before {
  content: "\f4c6"; }

.fa-handshake-alt::before {
  content: "\f4c6"; }

.fa-jet-fighter::before {
  content: "\f0fb"; }

.fa-fighter-jet::before {
  content: "\f0fb"; }

.fa-square-share-nodes::before {
  content: "\f1e1"; }

.fa-share-alt-square::before {
  content: "\f1e1"; }

.fa-barcode::before {
  content: "\f02a"; }

.fa-plus-minus::before {
  content: "\e43c"; }

.fa-video::before {
  content: "\f03d"; }

.fa-video-camera::before {
  content: "\f03d"; }

.fa-graduation-cap::before {
  content: "\f19d"; }

.fa-mortar-board::before {
  content: "\f19d"; }

.fa-hand-holding-medical::before {
  content: "\e05c"; }

.fa-person-circle-check::before {
  content: "\e53e"; }

.fa-turn-up::before {
  content: "\f3bf"; }

.fa-level-up-alt::before {
  content: "\f3bf"; }

.sr-only,
.fa-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0; }

.sr-only-focusable:not(:focus),
.fa-sr-only-focusable:not(:focus) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0; }

/*!
 * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */
:root, :host {
  --fa-style-family-classic: 'Font Awesome 6 Free';
  --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; }

@font-face {
  font-family: 'Font Awesome 6 Free';
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("https://playgroup.gg/assets/font-awesome/fa-solid-900-370bba3c04d5d177f9af8bcb796011e21509808f9a5369289328f89870dba0a0.woff2") format("woff2"), url("https://playgroup.gg/assets/font-awesome/fa-solid-900-3c7bf1859e32a508e8a6c4750a2e195eb283b77bba013bef0b93a44b11630e2f.ttf") format("truetype"); }

.fas,
.fa-solid {
  font-weight: 900; }

/*!
 * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */
:root, :host {
  --fa-style-family-classic: 'Font Awesome 6 Free';
  --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; }

@font-face {
  font-family: 'Font Awesome 6 Free';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("https://playgroup.gg/assets/font-awesome/fa-regular-400-f5930dd8a4e66926250f45d051ff86566a4237b8c45d28e3abdc937e0a58aa7f.woff2") format("woff2"), url("https://playgroup.gg/assets/font-awesome/fa-regular-400-60054ca3c188db05e091d3185a2ad284dd321587b06676bab96797a2764d10f0.ttf") format("truetype"); }

.far,
.fa-regular {
  font-weight: 400; }

/*!
 * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */
:root, :host {
  --fa-style-family-brands: 'Font Awesome 6 Brands';
  --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; }

@font-face {
  font-family: 'Font Awesome 6 Brands';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("https://playgroup.gg/assets/font-awesome/fa-brands-400-4f44a163fb44be54c1a2d02d4637b7a6a39722e313b6569cb81f88a72d879663.woff2") format("woff2"), url("https://playgroup.gg/assets/font-awesome/fa-brands-400-03e2d94838db33a68d48642e65b9a0c20389c97e7eca5e1d3c5b9b1b6fce4e07.ttf") format("truetype"); }

.fab,
.fa-brands {
  font-weight: 400; }

.fa-monero:before {
  content: "\f3d0"; }

.fa-hooli:before {
  content: "\f427"; }

.fa-yelp:before {
  content: "\f1e9"; }

.fa-cc-visa:before {
  content: "\f1f0"; }

.fa-lastfm:before {
  content: "\f202"; }

.fa-shopware:before {
  content: "\f5b5"; }

.fa-creative-commons-nc:before {
  content: "\f4e8"; }

.fa-aws:before {
  content: "\f375"; }

.fa-redhat:before {
  content: "\f7bc"; }

.fa-yoast:before {
  content: "\f2b1"; }

.fa-cloudflare:before {
  content: "\e07d"; }

.fa-ups:before {
  content: "\f7e0"; }

.fa-pixiv:before {
  content: "\e640"; }

.fa-wpexplorer:before {
  content: "\f2de"; }

.fa-dyalog:before {
  content: "\f399"; }

.fa-bity:before {
  content: "\f37a"; }

.fa-stackpath:before {
  content: "\f842"; }

.fa-buysellads:before {
  content: "\f20d"; }

.fa-first-order:before {
  content: "\f2b0"; }

.fa-modx:before {
  content: "\f285"; }

.fa-guilded:before {
  content: "\e07e"; }

.fa-vnv:before {
  content: "\f40b"; }

.fa-square-js:before {
  content: "\f3b9"; }

.fa-js-square:before {
  content: "\f3b9"; }

.fa-microsoft:before {
  content: "\f3ca"; }

.fa-qq:before {
  content: "\f1d6"; }

.fa-orcid:before {
  content: "\f8d2"; }

.fa-java:before {
  content: "\f4e4"; }

.fa-invision:before {
  content: "\f7b0"; }

.fa-creative-commons-pd-alt:before {
  content: "\f4ed"; }

.fa-centercode:before {
  content: "\f380"; }

.fa-glide-g:before {
  content: "\f2a6"; }

.fa-drupal:before {
  content: "\f1a9"; }

.fa-jxl:before {
  content: "\e67b"; }

.fa-hire-a-helper:before {
  content: "\f3b0"; }

.fa-creative-commons-by:before {
  content: "\f4e7"; }

.fa-unity:before {
  content: "\e049"; }

.fa-whmcs:before {
  content: "\f40d"; }

.fa-rocketchat:before {
  content: "\f3e8"; }

.fa-vk:before {
  content: "\f189"; }

.fa-untappd:before {
  content: "\f405"; }

.fa-mailchimp:before {
  content: "\f59e"; }

.fa-css3-alt:before {
  content: "\f38b"; }

.fa-square-reddit:before {
  content: "\f1a2"; }

.fa-reddit-square:before {
  content: "\f1a2"; }

.fa-vimeo-v:before {
  content: "\f27d"; }

.fa-contao:before {
  content: "\f26d"; }

.fa-square-font-awesome:before {
  content: "\e5ad"; }

.fa-deskpro:before {
  content: "\f38f"; }

.fa-brave:before {
  content: "\e63c"; }

.fa-sistrix:before {
  content: "\f3ee"; }

.fa-square-instagram:before {
  content: "\e055"; }

.fa-instagram-square:before {
  content: "\e055"; }

.fa-battle-net:before {
  content: "\f835"; }

.fa-the-red-yeti:before {
  content: "\f69d"; }

.fa-square-hacker-news:before {
  content: "\f3af"; }

.fa-hacker-news-square:before {
  content: "\f3af"; }

.fa-edge:before {
  content: "\f282"; }

.fa-threads:before {
  content: "\e618"; }

.fa-napster:before {
  content: "\f3d2"; }

.fa-square-snapchat:before {
  content: "\f2ad"; }

.fa-snapchat-square:before {
  content: "\f2ad"; }

.fa-google-plus-g:before {
  content: "\f0d5"; }

.fa-artstation:before {
  content: "\f77a"; }

.fa-markdown:before {
  content: "\f60f"; }

.fa-sourcetree:before {
  content: "\f7d3"; }

.fa-google-plus:before {
  content: "\f2b3"; }

.fa-diaspora:before {
  content: "\f791"; }

.fa-foursquare:before {
  content: "\f180"; }

.fa-stack-overflow:before {
  content: "\f16c"; }

.fa-github-alt:before {
  content: "\f113"; }

.fa-phoenix-squadron:before {
  content: "\f511"; }

.fa-pagelines:before {
  content: "\f18c"; }

.fa-algolia:before {
  content: "\f36c"; }

.fa-red-river:before {
  content: "\f3e3"; }

.fa-creative-commons-sa:before {
  content: "\f4ef"; }

.fa-safari:before {
  content: "\f267"; }

.fa-google:before {
  content: "\f1a0"; }

.fa-square-font-awesome-stroke:before {
  content: "\f35c"; }

.fa-font-awesome-alt:before {
  content: "\f35c"; }

.fa-atlassian:before {
  content: "\f77b"; }

.fa-linkedin-in:before {
  content: "\f0e1"; }

.fa-digital-ocean:before {
  content: "\f391"; }

.fa-nimblr:before {
  content: "\f5a8"; }

.fa-chromecast:before {
  content: "\f838"; }

.fa-evernote:before {
  content: "\f839"; }

.fa-hacker-news:before {
  content: "\f1d4"; }

.fa-creative-commons-sampling:before {
  content: "\f4f0"; }

.fa-adversal:before {
  content: "\f36a"; }

.fa-creative-commons:before {
  content: "\f25e"; }

.fa-watchman-monitoring:before {
  content: "\e087"; }

.fa-fonticons:before {
  content: "\f280"; }

.fa-weixin:before {
  content: "\f1d7"; }

.fa-shirtsinbulk:before {
  content: "\f214"; }

.fa-codepen:before {
  content: "\f1cb"; }

.fa-git-alt:before {
  content: "\f841"; }

.fa-lyft:before {
  content: "\f3c3"; }

.fa-rev:before {
  content: "\f5b2"; }

.fa-windows:before {
  content: "\f17a"; }

.fa-wizards-of-the-coast:before {
  content: "\f730"; }

.fa-square-viadeo:before {
  content: "\f2aa"; }

.fa-viadeo-square:before {
  content: "\f2aa"; }

.fa-meetup:before {
  content: "\f2e0"; }

.fa-centos:before {
  content: "\f789"; }

.fa-adn:before {
  content: "\f170"; }

.fa-cloudsmith:before {
  content: "\f384"; }

.fa-opensuse:before {
  content: "\e62b"; }

.fa-pied-piper-alt:before {
  content: "\f1a8"; }

.fa-square-dribbble:before {
  content: "\f397"; }

.fa-dribbble-square:before {
  content: "\f397"; }

.fa-codiepie:before {
  content: "\f284"; }

.fa-node:before {
  content: "\f419"; }

.fa-mix:before {
  content: "\f3cb"; }

.fa-steam:before {
  content: "\f1b6"; }

.fa-cc-apple-pay:before {
  content: "\f416"; }

.fa-scribd:before {
  content: "\f28a"; }

.fa-debian:before {
  content: "\e60b"; }

.fa-openid:before {
  content: "\f19b"; }

.fa-instalod:before {
  content: "\e081"; }

.fa-expeditedssl:before {
  content: "\f23e"; }

.fa-sellcast:before {
  content: "\f2da"; }

.fa-square-twitter:before {
  content: "\f081"; }

.fa-twitter-square:before {
  content: "\f081"; }

.fa-r-project:before {
  content: "\f4f7"; }

.fa-delicious:before {
  content: "\f1a5"; }

.fa-freebsd:before {
  content: "\f3a4"; }

.fa-vuejs:before {
  content: "\f41f"; }

.fa-accusoft:before {
  content: "\f369"; }

.fa-ioxhost:before {
  content: "\f208"; }

.fa-fonticons-fi:before {
  content: "\f3a2"; }

.fa-app-store:before {
  content: "\f36f"; }

.fa-cc-mastercard:before {
  content: "\f1f1"; }

.fa-itunes-note:before {
  content: "\f3b5"; }

.fa-golang:before {
  content: "\e40f"; }

.fa-kickstarter:before {
  content: "\f3bb"; }

.fa-square-kickstarter:before {
  content: "\f3bb"; }

.fa-grav:before {
  content: "\f2d6"; }

.fa-weibo:before {
  content: "\f18a"; }

.fa-uncharted:before {
  content: "\e084"; }

.fa-firstdraft:before {
  content: "\f3a1"; }

.fa-square-youtube:before {
  content: "\f431"; }

.fa-youtube-square:before {
  content: "\f431"; }

.fa-wikipedia-w:before {
  content: "\f266"; }

.fa-wpressr:before {
  content: "\f3e4"; }

.fa-rendact:before {
  content: "\f3e4"; }

.fa-angellist:before {
  content: "\f209"; }

.fa-galactic-republic:before {
  content: "\f50c"; }

.fa-nfc-directional:before {
  content: "\e530"; }

.fa-skype:before {
  content: "\f17e"; }

.fa-joget:before {
  content: "\f3b7"; }

.fa-fedora:before {
  content: "\f798"; }

.fa-stripe-s:before {
  content: "\f42a"; }

.fa-meta:before {
  content: "\e49b"; }

.fa-laravel:before {
  content: "\f3bd"; }

.fa-hotjar:before {
  content: "\f3b1"; }

.fa-bluetooth-b:before {
  content: "\f294"; }

.fa-square-letterboxd:before {
  content: "\e62e"; }

.fa-sticker-mule:before {
  content: "\f3f7"; }

.fa-creative-commons-zero:before {
  content: "\f4f3"; }

.fa-hips:before {
  content: "\f452"; }

.fa-behance:before {
  content: "\f1b4"; }

.fa-reddit:before {
  content: "\f1a1"; }

.fa-discord:before {
  content: "\f392"; }

.fa-chrome:before {
  content: "\f268"; }

.fa-app-store-ios:before {
  content: "\f370"; }

.fa-cc-discover:before {
  content: "\f1f2"; }

.fa-wpbeginner:before {
  content: "\f297"; }

.fa-confluence:before {
  content: "\f78d"; }

.fa-shoelace:before {
  content: "\e60c"; }

.fa-mdb:before {
  content: "\f8ca"; }

.fa-dochub:before {
  content: "\f394"; }

.fa-accessible-icon:before {
  content: "\f368"; }

.fa-ebay:before {
  content: "\f4f4"; }

.fa-amazon:before {
  content: "\f270"; }

.fa-unsplash:before {
  content: "\e07c"; }

.fa-yarn:before {
  content: "\f7e3"; }

.fa-square-steam:before {
  content: "\f1b7"; }

.fa-steam-square:before {
  content: "\f1b7"; }

.fa-500px:before {
  content: "\f26e"; }

.fa-square-vimeo:before {
  content: "\f194"; }

.fa-vimeo-square:before {
  content: "\f194"; }

.fa-asymmetrik:before {
  content: "\f372"; }

.fa-font-awesome:before {
  content: "\f2b4"; }

.fa-font-awesome-flag:before {
  content: "\f2b4"; }

.fa-font-awesome-logo-full:before {
  content: "\f2b4"; }

.fa-gratipay:before {
  content: "\f184"; }

.fa-apple:before {
  content: "\f179"; }

.fa-hive:before {
  content: "\e07f"; }

.fa-gitkraken:before {
  content: "\f3a6"; }

.fa-keybase:before {
  content: "\f4f5"; }

.fa-apple-pay:before {
  content: "\f415"; }

.fa-padlet:before {
  content: "\e4a0"; }

.fa-amazon-pay:before {
  content: "\f42c"; }

.fa-square-github:before {
  content: "\f092"; }

.fa-github-square:before {
  content: "\f092"; }

.fa-stumbleupon:before {
  content: "\f1a4"; }

.fa-fedex:before {
  content: "\f797"; }

.fa-phoenix-framework:before {
  content: "\f3dc"; }

.fa-shopify:before {
  content: "\e057"; }

.fa-neos:before {
  content: "\f612"; }

.fa-square-threads:before {
  content: "\e619"; }

.fa-hackerrank:before {
  content: "\f5f7"; }

.fa-researchgate:before {
  content: "\f4f8"; }

.fa-swift:before {
  content: "\f8e1"; }

.fa-angular:before {
  content: "\f420"; }

.fa-speakap:before {
  content: "\f3f3"; }

.fa-angrycreative:before {
  content: "\f36e"; }

.fa-y-combinator:before {
  content: "\f23b"; }

.fa-empire:before {
  content: "\f1d1"; }

.fa-envira:before {
  content: "\f299"; }

.fa-google-scholar:before {
  content: "\e63b"; }

.fa-square-gitlab:before {
  content: "\e5ae"; }

.fa-gitlab-square:before {
  content: "\e5ae"; }

.fa-studiovinari:before {
  content: "\f3f8"; }

.fa-pied-piper:before {
  content: "\f2ae"; }

.fa-wordpress:before {
  content: "\f19a"; }

.fa-product-hunt:before {
  content: "\f288"; }

.fa-firefox:before {
  content: "\f269"; }

.fa-linode:before {
  content: "\f2b8"; }

.fa-goodreads:before {
  content: "\f3a8"; }

.fa-square-odnoklassniki:before {
  content: "\f264"; }

.fa-odnoklassniki-square:before {
  content: "\f264"; }

.fa-jsfiddle:before {
  content: "\f1cc"; }

.fa-sith:before {
  content: "\f512"; }

.fa-themeisle:before {
  content: "\f2b2"; }

.fa-page4:before {
  content: "\f3d7"; }

.fa-hashnode:before {
  content: "\e499"; }

.fa-react:before {
  content: "\f41b"; }

.fa-cc-paypal:before {
  content: "\f1f4"; }

.fa-squarespace:before {
  content: "\f5be"; }

.fa-cc-stripe:before {
  content: "\f1f5"; }

.fa-creative-commons-share:before {
  content: "\f4f2"; }

.fa-bitcoin:before {
  content: "\f379"; }

.fa-keycdn:before {
  content: "\f3ba"; }

.fa-opera:before {
  content: "\f26a"; }

.fa-itch-io:before {
  content: "\f83a"; }

.fa-umbraco:before {
  content: "\f8e8"; }

.fa-galactic-senate:before {
  content: "\f50d"; }

.fa-ubuntu:before {
  content: "\f7df"; }

.fa-draft2digital:before {
  content: "\f396"; }

.fa-stripe:before {
  content: "\f429"; }

.fa-houzz:before {
  content: "\f27c"; }

.fa-gg:before {
  content: "\f260"; }

.fa-dhl:before {
  content: "\f790"; }

.fa-square-pinterest:before {
  content: "\f0d3"; }

.fa-pinterest-square:before {
  content: "\f0d3"; }

.fa-xing:before {
  content: "\f168"; }

.fa-blackberry:before {
  content: "\f37b"; }

.fa-creative-commons-pd:before {
  content: "\f4ec"; }

.fa-playstation:before {
  content: "\f3df"; }

.fa-quinscape:before {
  content: "\f459"; }

.fa-less:before {
  content: "\f41d"; }

.fa-blogger-b:before {
  content: "\f37d"; }

.fa-opencart:before {
  content: "\f23d"; }

.fa-vine:before {
  content: "\f1ca"; }

.fa-signal-messenger:before {
  content: "\e663"; }

.fa-paypal:before {
  content: "\f1ed"; }

.fa-gitlab:before {
  content: "\f296"; }

.fa-typo3:before {
  content: "\f42b"; }

.fa-reddit-alien:before {
  content: "\f281"; }

.fa-yahoo:before {
  content: "\f19e"; }

.fa-dailymotion:before {
  content: "\e052"; }

.fa-affiliatetheme:before {
  content: "\f36b"; }

.fa-pied-piper-pp:before {
  content: "\f1a7"; }

.fa-bootstrap:before {
  content: "\f836"; }

.fa-odnoklassniki:before {
  content: "\f263"; }

.fa-nfc-symbol:before {
  content: "\e531"; }

.fa-mintbit:before {
  content: "\e62f"; }

.fa-ethereum:before {
  content: "\f42e"; }

.fa-speaker-deck:before {
  content: "\f83c"; }

.fa-creative-commons-nc-eu:before {
  content: "\f4e9"; }

.fa-patreon:before {
  content: "\f3d9"; }

.fa-avianex:before {
  content: "\f374"; }

.fa-ello:before {
  content: "\f5f1"; }

.fa-gofore:before {
  content: "\f3a7"; }

.fa-bimobject:before {
  content: "\f378"; }

.fa-brave-reverse:before {
  content: "\e63d"; }

.fa-facebook-f:before {
  content: "\f39e"; }

.fa-square-google-plus:before {
  content: "\f0d4"; }

.fa-google-plus-square:before {
  content: "\f0d4"; }

.fa-web-awesome:before {
  content: "\e682"; }

.fa-mandalorian:before {
  content: "\f50f"; }

.fa-first-order-alt:before {
  content: "\f50a"; }

.fa-osi:before {
  content: "\f41a"; }

.fa-google-wallet:before {
  content: "\f1ee"; }

.fa-d-and-d-beyond:before {
  content: "\f6ca"; }

.fa-periscope:before {
  content: "\f3da"; }

.fa-fulcrum:before {
  content: "\f50b"; }

.fa-cloudscale:before {
  content: "\f383"; }

.fa-forumbee:before {
  content: "\f211"; }

.fa-mizuni:before {
  content: "\f3cc"; }

.fa-schlix:before {
  content: "\f3ea"; }

.fa-square-xing:before {
  content: "\f169"; }

.fa-xing-square:before {
  content: "\f169"; }

.fa-bandcamp:before {
  content: "\f2d5"; }

.fa-wpforms:before {
  content: "\f298"; }

.fa-cloudversify:before {
  content: "\f385"; }

.fa-usps:before {
  content: "\f7e1"; }

.fa-megaport:before {
  content: "\f5a3"; }

.fa-magento:before {
  content: "\f3c4"; }

.fa-spotify:before {
  content: "\f1bc"; }

.fa-optin-monster:before {
  content: "\f23c"; }

.fa-fly:before {
  content: "\f417"; }

.fa-aviato:before {
  content: "\f421"; }

.fa-itunes:before {
  content: "\f3b4"; }

.fa-cuttlefish:before {
  content: "\f38c"; }

.fa-blogger:before {
  content: "\f37c"; }

.fa-flickr:before {
  content: "\f16e"; }

.fa-viber:before {
  content: "\f409"; }

.fa-soundcloud:before {
  content: "\f1be"; }

.fa-digg:before {
  content: "\f1a6"; }

.fa-tencent-weibo:before {
  content: "\f1d5"; }

.fa-letterboxd:before {
  content: "\e62d"; }

.fa-symfony:before {
  content: "\f83d"; }

.fa-maxcdn:before {
  content: "\f136"; }

.fa-etsy:before {
  content: "\f2d7"; }

.fa-facebook-messenger:before {
  content: "\f39f"; }

.fa-audible:before {
  content: "\f373"; }

.fa-think-peaks:before {
  content: "\f731"; }

.fa-bilibili:before {
  content: "\e3d9"; }

.fa-erlang:before {
  content: "\f39d"; }

.fa-x-twitter:before {
  content: "\e61b"; }

.fa-cotton-bureau:before {
  content: "\f89e"; }

.fa-dashcube:before {
  content: "\f210"; }

.fa-42-group:before {
  content: "\e080"; }

.fa-innosoft:before {
  content: "\e080"; }

.fa-stack-exchange:before {
  content: "\f18d"; }

.fa-elementor:before {
  content: "\f430"; }

.fa-square-pied-piper:before {
  content: "\e01e"; }

.fa-pied-piper-square:before {
  content: "\e01e"; }

.fa-creative-commons-nd:before {
  content: "\f4eb"; }

.fa-palfed:before {
  content: "\f3d8"; }

.fa-superpowers:before {
  content: "\f2dd"; }

.fa-resolving:before {
  content: "\f3e7"; }

.fa-xbox:before {
  content: "\f412"; }

.fa-square-web-awesome-stroke:before {
  content: "\e684"; }

.fa-searchengin:before {
  content: "\f3eb"; }

.fa-tiktok:before {
  content: "\e07b"; }

.fa-square-facebook:before {
  content: "\f082"; }

.fa-facebook-square:before {
  content: "\f082"; }

.fa-renren:before {
  content: "\f18b"; }

.fa-linux:before {
  content: "\f17c"; }

.fa-glide:before {
  content: "\f2a5"; }

.fa-linkedin:before {
  content: "\f08c"; }

.fa-hubspot:before {
  content: "\f3b2"; }

.fa-deploydog:before {
  content: "\f38e"; }

.fa-twitch:before {
  content: "\f1e8"; }

.fa-ravelry:before {
  content: "\f2d9"; }

.fa-mixer:before {
  content: "\e056"; }

.fa-square-lastfm:before {
  content: "\f203"; }

.fa-lastfm-square:before {
  content: "\f203"; }

.fa-vimeo:before {
  content: "\f40a"; }

.fa-mendeley:before {
  content: "\f7b3"; }

.fa-uniregistry:before {
  content: "\f404"; }

.fa-figma:before {
  content: "\f799"; }

.fa-creative-commons-remix:before {
  content: "\f4ee"; }

.fa-cc-amazon-pay:before {
  content: "\f42d"; }

.fa-dropbox:before {
  content: "\f16b"; }

.fa-instagram:before {
  content: "\f16d"; }

.fa-cmplid:before {
  content: "\e360"; }

.fa-upwork:before {
  content: "\e641"; }

.fa-facebook:before {
  content: "\f09a"; }

.fa-gripfire:before {
  content: "\f3ac"; }

.fa-jedi-order:before {
  content: "\f50e"; }

.fa-uikit:before {
  content: "\f403"; }

.fa-fort-awesome-alt:before {
  content: "\f3a3"; }

.fa-phabricator:before {
  content: "\f3db"; }

.fa-ussunnah:before {
  content: "\f407"; }

.fa-earlybirds:before {
  content: "\f39a"; }

.fa-trade-federation:before {
  content: "\f513"; }

.fa-autoprefixer:before {
  content: "\f41c"; }

.fa-whatsapp:before {
  content: "\f232"; }

.fa-square-upwork:before {
  content: "\e67c"; }

.fa-slideshare:before {
  content: "\f1e7"; }

.fa-google-play:before {
  content: "\f3ab"; }

.fa-viadeo:before {
  content: "\f2a9"; }

.fa-line:before {
  content: "\f3c0"; }

.fa-google-drive:before {
  content: "\f3aa"; }

.fa-servicestack:before {
  content: "\f3ec"; }

.fa-simplybuilt:before {
  content: "\f215"; }

.fa-bitbucket:before {
  content: "\f171"; }

.fa-imdb:before {
  content: "\f2d8"; }

.fa-deezer:before {
  content: "\e077"; }

.fa-raspberry-pi:before {
  content: "\f7bb"; }

.fa-jira:before {
  content: "\f7b1"; }

.fa-docker:before {
  content: "\f395"; }

.fa-screenpal:before {
  content: "\e570"; }

.fa-bluetooth:before {
  content: "\f293"; }

.fa-gitter:before {
  content: "\f426"; }

.fa-d-and-d:before {
  content: "\f38d"; }

.fa-microblog:before {
  content: "\e01a"; }

.fa-cc-diners-club:before {
  content: "\f24c"; }

.fa-gg-circle:before {
  content: "\f261"; }

.fa-pied-piper-hat:before {
  content: "\f4e5"; }

.fa-kickstarter-k:before {
  content: "\f3bc"; }

.fa-yandex:before {
  content: "\f413"; }

.fa-readme:before {
  content: "\f4d5"; }

.fa-html5:before {
  content: "\f13b"; }

.fa-sellsy:before {
  content: "\f213"; }

.fa-square-web-awesome:before {
  content: "\e683"; }

.fa-sass:before {
  content: "\f41e"; }

.fa-wirsindhandwerk:before {
  content: "\e2d0"; }

.fa-wsh:before {
  content: "\e2d0"; }

.fa-buromobelexperte:before {
  content: "\f37f"; }

.fa-salesforce:before {
  content: "\f83b"; }

.fa-octopus-deploy:before {
  content: "\e082"; }

.fa-medapps:before {
  content: "\f3c6"; }

.fa-ns8:before {
  content: "\f3d5"; }

.fa-pinterest-p:before {
  content: "\f231"; }

.fa-apper:before {
  content: "\f371"; }

.fa-fort-awesome:before {
  content: "\f286"; }

.fa-waze:before {
  content: "\f83f"; }

.fa-bluesky:before {
  content: "\e671"; }

.fa-cc-jcb:before {
  content: "\f24b"; }

.fa-snapchat:before {
  content: "\f2ab"; }

.fa-snapchat-ghost:before {
  content: "\f2ab"; }

.fa-fantasy-flight-games:before {
  content: "\f6dc"; }

.fa-rust:before {
  content: "\e07a"; }

.fa-wix:before {
  content: "\f5cf"; }

.fa-square-behance:before {
  content: "\f1b5"; }

.fa-behance-square:before {
  content: "\f1b5"; }

.fa-supple:before {
  content: "\f3f9"; }

.fa-webflow:before {
  content: "\e65c"; }

.fa-rebel:before {
  content: "\f1d0"; }

.fa-css3:before {
  content: "\f13c"; }

.fa-staylinked:before {
  content: "\f3f5"; }

.fa-kaggle:before {
  content: "\f5fa"; }

.fa-space-awesome:before {
  content: "\e5ac"; }

.fa-deviantart:before {
  content: "\f1bd"; }

.fa-cpanel:before {
  content: "\f388"; }

.fa-goodreads-g:before {
  content: "\f3a9"; }

.fa-square-git:before {
  content: "\f1d2"; }

.fa-git-square:before {
  content: "\f1d2"; }

.fa-square-tumblr:before {
  content: "\f174"; }

.fa-tumblr-square:before {
  content: "\f174"; }

.fa-trello:before {
  content: "\f181"; }

.fa-creative-commons-nc-jp:before {
  content: "\f4ea"; }

.fa-get-pocket:before {
  content: "\f265"; }

.fa-perbyte:before {
  content: "\e083"; }

.fa-grunt:before {
  content: "\f3ad"; }

.fa-weebly:before {
  content: "\f5cc"; }

.fa-connectdevelop:before {
  content: "\f20e"; }

.fa-leanpub:before {
  content: "\f212"; }

.fa-black-tie:before {
  content: "\f27e"; }

.fa-themeco:before {
  content: "\f5c6"; }

.fa-python:before {
  content: "\f3e2"; }

.fa-android:before {
  content: "\f17b"; }

.fa-bots:before {
  content: "\e340"; }

.fa-free-code-camp:before {
  content: "\f2c5"; }

.fa-hornbill:before {
  content: "\f592"; }

.fa-js:before {
  content: "\f3b8"; }

.fa-ideal:before {
  content: "\e013"; }

.fa-git:before {
  content: "\f1d3"; }

.fa-dev:before {
  content: "\f6cc"; }

.fa-sketch:before {
  content: "\f7c6"; }

.fa-yandex-international:before {
  content: "\f414"; }

.fa-cc-amex:before {
  content: "\f1f3"; }

.fa-uber:before {
  content: "\f402"; }

.fa-github:before {
  content: "\f09b"; }

.fa-php:before {
  content: "\f457"; }

.fa-alipay:before {
  content: "\f642"; }

.fa-youtube:before {
  content: "\f167"; }

.fa-skyatlas:before {
  content: "\f216"; }

.fa-firefox-browser:before {
  content: "\e007"; }

.fa-replyd:before {
  content: "\f3e6"; }

.fa-suse:before {
  content: "\f7d6"; }

.fa-jenkins:before {
  content: "\f3b6"; }

.fa-twitter:before {
  content: "\f099"; }

.fa-rockrms:before {
  content: "\f3e9"; }

.fa-pinterest:before {
  content: "\f0d2"; }

.fa-buffer:before {
  content: "\f837"; }

.fa-npm:before {
  content: "\f3d4"; }

.fa-yammer:before {
  content: "\f840"; }

.fa-btc:before {
  content: "\f15a"; }

.fa-dribbble:before {
  content: "\f17d"; }

.fa-stumbleupon-circle:before {
  content: "\f1a3"; }

.fa-internet-explorer:before {
  content: "\f26b"; }

.fa-stubber:before {
  content: "\e5c7"; }

.fa-telegram:before {
  content: "\f2c6"; }

.fa-telegram-plane:before {
  content: "\f2c6"; }

.fa-old-republic:before {
  content: "\f510"; }

.fa-odysee:before {
  content: "\e5c6"; }

.fa-square-whatsapp:before {
  content: "\f40c"; }

.fa-whatsapp-square:before {
  content: "\f40c"; }

.fa-node-js:before {
  content: "\f3d3"; }

.fa-edge-legacy:before {
  content: "\e078"; }

.fa-slack:before {
  content: "\f198"; }

.fa-slack-hash:before {
  content: "\f198"; }

.fa-medrt:before {
  content: "\f3c8"; }

.fa-usb:before {
  content: "\f287"; }

.fa-tumblr:before {
  content: "\f173"; }

.fa-vaadin:before {
  content: "\f408"; }

.fa-quora:before {
  content: "\f2c4"; }

.fa-square-x-twitter:before {
  content: "\e61a"; }

.fa-reacteurope:before {
  content: "\f75d"; }

.fa-medium:before {
  content: "\f23a"; }

.fa-medium-m:before {
  content: "\f23a"; }

.fa-amilia:before {
  content: "\f36d"; }

.fa-mixcloud:before {
  content: "\f289"; }

.fa-flipboard:before {
  content: "\f44d"; }

.fa-viacoin:before {
  content: "\f237"; }

.fa-critical-role:before {
  content: "\f6c9"; }

.fa-sitrox:before {
  content: "\e44a"; }

.fa-discourse:before {
  content: "\f393"; }

.fa-joomla:before {
  content: "\f1aa"; }

.fa-mastodon:before {
  content: "\f4f6"; }

.fa-airbnb:before {
  content: "\f834"; }

.fa-wolf-pack-battalion:before {
  content: "\f514"; }

.fa-buy-n-large:before {
  content: "\f8a6"; }

.fa-gulp:before {
  content: "\f3ae"; }

.fa-creative-commons-sampling-plus:before {
  content: "\f4f1"; }

.fa-strava:before {
  content: "\f428"; }

.fa-ember:before {
  content: "\f423"; }

.fa-canadian-maple-leaf:before {
  content: "\f785"; }

.fa-teamspeak:before {
  content: "\f4f9"; }

.fa-pushed:before {
  content: "\f3e1"; }

.fa-wordpress-simple:before {
  content: "\f411"; }

.fa-nutritionix:before {
  content: "\f3d6"; }

.fa-wodu:before {
  content: "\e088"; }

.fa-google-pay:before {
  content: "\e079"; }

.fa-intercom:before {
  content: "\f7af"; }

.fa-zhihu:before {
  content: "\f63f"; }

.fa-korvue:before {
  content: "\f42f"; }

.fa-pix:before {
  content: "\e43a"; }

.fa-steam-symbol:before {
  content: "\f3f6"; }
