:root {color-scheme: light dark;--default: light-dark(#1A1A1A, #D1D1D1);--border: light-dark(#dbdbdb, #404040);--light: light-dark(#FFFFFF, #121212);--light2: light-dark(#FBF8EE, #14130F);--main: light-dark(#419D78, #06402B);--maintext: light-dark(#FFFFFF, #F0F0F0);--dark: light-dark(#268A62, #39ca91);--accent: light-dark(#4427a8, #4427a8);--mainsemi: light-dark(#419D7855, #52c59855);--accentsemi: light-dark(#4427a855, #9b82f355);--accent2: light-dark(#453F3C, #D1CDC7);--link: light-dark(#357E65, #A6D7C3);--bg: light-dark(#FFFFFF, #121212);--title: light-dark(#363636,#fff);--codebg: #1D1D1D;--codefg: #DCDCDC;}
[data-theme='dark'] { color-scheme: dark; }
[data-theme='light'] { color-scheme: light; }
a, nav.breadcrumb a { color: var(--link);}
.breadcrumb a:hover { color: var(--default); }
.content a { text-decoration: none }
a.button { text-decoration: none }
body, html {font-family: "Segoe UI", "Segoe UI Variable Text", -apple-system, BlinkMacSystemFont, Helvetica Neue, Helvetica, Arial, sans-serif;
    font-style: normal;margin: 0;padding: 0;height: 100%;background-color: var(--bg);color: var(--default);}
body > .footer a { text-decoration: dotted underline 0.25px; }
body > .footer a:hover { text-decoration-style: solid; }
#main > .container
{scroll-behavior: smooth;display: flex;flex-direction: column;flex: 1;min-width: 0;margin: 0;padding-bottom: 1rem;}
#main > .column {padding: 0;}
#main-column {padding: 0.75rem 0 1rem 1.25rem;}
main > article.content { padding: 0; }
.footer {padding: 0 1.5rem; background-color: var(--bg);}
.content h1, .content h2, .content h3, .content h4 {
    font-style: normal;font-weight: 600;text-transform: none;margin: revert;color: var(--title);}
strong { color: var(--title)}
code { background-color: var(--bg);}
code,kbd,samp,pre,.code { font-family: SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;}
.content .table, .content .table thead { background-color: var(--light2); color: var(--default); border-color: var(--mainsemi) }
.content table thead td, .content table thead th {color: var(--title);}
.content table.is-hoverable tbody tr :hover, .table.is-hoverable tbody tr:not(.is-selected):hover {background: var(--light2);color: var(--default);border-color: var(--border);}
.content table td, .content table th { border-color: var(--border); }
.navbar-brand > a {text-decoration: none !important}
.navbar {width: 100%;background-color: var(--main);color: var(--maintext);}
.navbar .button {background-color: var(--light2);color: var(--default);}
.navbar .button:hover {background-color: var(--accent);color: var(--maintext);}
.navbar .button, .codePanelHeader .button {border-color: var(--accent)}
.navbar-title {font-size: 24px;font-weight: 600;color: var(--maintext);}
.navbar-title > span {color: #aba;}
.navbar-end .buttons {margin-right: 10px;}
a.navbar-toggle {font-size: 24px;position: relative;margin-left: auto;width: 3.25rem;height: 3.25rem;color: var(--maintext);display: flex;align-items: center;justify-content: center;}
a.navbar-toggle > span {display: flex;}
a.navbar-toggle > span + span {display: none;}
a.navbar-toggle.is-active > span {display: none;}
a.navbar-toggle.is-active > span + span {display: flex;}
@media screen and (min-width: 1024px) {a.navbar-toggle {display: none}
#main-column {width: 70%}
#right-column {width: 30%}}
@media screen and (max-width: 1023px) {.navbar-menu.is-active {background-color: var(--light);box-shadow: 0 8px 16px var(--mainsemi);}}
@media (min-width: 768px) {.sidebar {position: sticky;top: calc(1.5*24px + 1rem);}
.sidebar-header {display: none;}}
.sidebar {flex: .3;display: block;background-color: var(--light2);}
@media screen and (min-width: 769px), print {.sidebar {overflow: hidden;max-width: 360px;max-height: calc(100vh - 56px);}}
.sidebar-header {width: 100%;align-items: center;justify-content: space-between;padding: 1rem;}
.sidebar-body {overflow-y: auto;display: flex;min-width: 0;width: 100%;height: 100%;}
.sidebar-toc {flex: 1 1 auto;}
.content {display: flex;flex: 1;flex-direction: column;width: 100%;padding: 1rem;}
.content a.button:not(.is-danger):not(.is-warning), .content button.button, #toggleTOC {border-color: var(--accent);background-color: var(--main);font-weight: bold;color: var(--maintext) !important;text-decoration: none;}
.content a.button:not(.is-danger):not(.is-warning):hover {background-color: var(--accent);}
.content ul {margin-top: 0}
@media screen and (max-width: 768px) {.sidebar {width: 100%;}
.content {margin-left: 0;}}
div.footer {padding: 2rem 1.5rem 2rem;}
#firebaseui-auth-container ul {list-style-type: none;}
aside.section {padding: 56px 0 0 5px;}
.menu .menu-list {padding: 0 0 0 10px;margin: 0;line-height: 1.0;}
.menu .menu-list a.is-active {background: var(--main);border-radius: 4px;}
.menu .menu-label {margin: 10px 0;padding: 15px 5px 10px 10px;text-transform: none;font-size: 18px;font-weight: 600;color: var(--default);}
.firebaseui-idp-button {border-radius: 8px !important;}
.articleHeader {display: flex;}
.articleHeader .dropdown {margin-left: auto;}
.dropdown.is-right a.dropdown-item {padding-right: 1em;}
.dropdown.is-right .dropdown-menu {min-width: 8rem;}
.articleHeader .dropdown-menu {background-color: var(--light2);border: 1px solid var(--default);padding-top: 0;}
.dropdown-content {background-color: var(--light2);}
.dropdown-item {color: var(--default);}
a.dropdown-item:hover, button.dropdown-item:hover {background-color: var(--accent);color: var(--maintext);}
.button.is-hovered, .button:hover {border-color: var(--accent);background-color: var(--accent);color: var(--maintext);}
td .dropdown {width: 100%;}
.dropdown-trigger {display: inline-flex;width: 100%;}
.dropdown-trigger > button {justify-content: flex-start;width: 100%;background-color: var(--light2);border: none;color: var(--default)}
.dropdown-trigger > button > span:first-child {flex: 1;text-align: left;}
.dropdown-trigger > button > span + span {justify-content: flex-end;}
.breadcrumb {width: 100%;font-size: 0.8rem;padding: 0.5rem 0.25rem;}
nav.breadcrumb:not(:last-child) {margin-bottom: 0.5rem;}
nav.breadcrumb li:last-child a {display: none;}
@media screen and (max-width: 768px) {nav.breadcrumb.is-small {font-size: 1rem;line-height: 1.65;}}
/* Attribute-based visibility. Elements are invisible
* unless they also have class 'is-active'.*/
[data-nn-key], .toc [data-nn-key] {display: none;}
[data-nn-key].is-active {display: initial;}
section[data-nn-key].is-active {display: block;}
[data-nn-key].button.is-active {display: inline-flex;}
/* Bulma sets last child's bottom margin to zero.
* This messes with the layout when elements are
* grouped to use attribute-based visibility.
.content [data-nn-key] > :last-child { margin-bottom: 1em; }*/
/* override bulma */
div.tabs:not(:last-child) {margin-bottom: 0;}
.tabs.is-boxed li.is-active a {border-top-left-radius: 0.375rem;border-top-right-radius: 0.375rem;background: var(--main);color: var(--light) !important;}
.content .tabs ul {margin-left: 0;margin-top: 0;}
/* Code blocks can be under tabs or as individual panels. */
.codeTabPanel > pre,
.codePanel > pre {color: var(--codefg);background-color: var(--codebg);}
p + .codePanel {padding-top: 0;}
.codePanel > pre {padding: 5px 5px 5px 5px;border: 1px solid var(--main);border-top: 0;}
/* Content panels under tabs */
.codeTabPanels {background: var(--main);color: var(--light);border: 1px solid #dbdbdb;border-top: 0px;padding: 5px;margin-bottom: 1rem;}
.codeTabPanel {position: relative;align-items: center;}
.codeTabPanel > .code-action {z-index: 30;position: absolute;top: 0.25rem;right: 0;opacity: 0.3;transition: opacity 0.3s ease;}
.codeTabPanel:hover > .code-action,
.codeTabPanel:active > .code-action {opacity: 1.0;}
/* Individual code panels have a header that contains the action button. */
.codePanelHeader {background: var(--main);color: var(--maintext);border: 1px solid var(--main);border-bottom: 0;display: flex;align-items: center;}
.codePanelHeader .language {flex-grow: 1;padding: 2px 16px;}
.codePanelHeader > button.button {color: var(--default) !important;background-color: var(--light);border-color: var(--accent);}
.codePanel {padding: 1em;flex: 1;box-sizing: content-box;}
.codePanel pre {padding: 0.5em;line-height: 1.37;}
/* Copy code, turns green for 1s when action succeeded. */
.code-action, #mainBanner .button {height: auto; /* override bulma */
margin-right: calc(0.5em - 1px);padding-top: calc(0.25em - 1px);padding-bottom: calc(0.25em - 1px);padding-left: 0.75em;padding-right: 0.75em;}
#mainBanner .button {}
/* Documentation style fine-tuning */
.content #seeAlsoSection h4 {margin-bottom: 0;}
.content hr {background-color: lightgrey;}
.content div.caption {font-style: italic;padding-top: 0.75em;padding-bottom: 0.75em;}
.content dt {font-weight: 600;}
.content dd:not(:last-child) {margin-bottom: 1em;}
.content q {font-style: italic;}
.content .var {font-style: italic;}
/* Source code coloring */
pre.highlight {overflow-x: auto;background: rgb(30, 30, 30);}
pre.highlight > code a {color: rgb(220, 220, 220) !important;}
pre.highlight > code {color: rgb(220, 220, 220);line-height: 1.3571;}
.c1, .hljs-comment, .hljs-quote, .hljs-variable {color: rgb(87, 166, 74)}
.k, .kt, .hljs-built_in, .hljs-keyword, .hljs-name, .hljs-selector-tag, .hljs-tag {color: rgb(86, 156, 214)}
.s, .hljs-addition, .hljs-attribute, .hljs-section, .hljs-string, .hljs-template-tag, .hljs-template-variable, .hljs-title, .hljs-type {color: rgb(214, 157, 133)}
.m, .hljs-literal {color: rgb(181, 206, 168)}
.hljs-deletion, .hljs-meta, .hljs-selector-attr, .hljs-selector-pseudo {color: #2b91af}
.hljs-doctag {color: grey}
.hljs-attr {color: red}
.hljs-bullet, .hljs-link, .hljs-symbol {color: #00b0e8}
.hljs-emphasis {font-style: italic}
.hljs-strong {font-weight: 700}
@media screen {code {.pln {color: #DCDCDC}
.str {color: #D69D85}
.kwd {color: #569CD6}
.com {color: #57A64A}
.typ {color: #4DC9B0}
.lit {color: #DCDCDC}
.pun, .opn, .clo {color: #B4B4B4}
.tag {color: #008}
.atn {color: #606}
.atv {color: #080}
.dec, .var {color: #DCDCDC}
.fun {color: red}}}
@media print,projection {.pln {color: #DCDCDC}
.str {color: #060}
.kwd {color: #006;font-weight: bold}
.com {color: #600;font-style: italic}
.typ {color: #404;font-weight: bold}
.lit {color: #044}
.pun, .opn, .clo {color: #440}
.tag {color: #006;font-weight: bold}
.atn {color: #404}
.atv {color: #060}}
.pln a {color: #DCDCDC}
.str a {color: #D69D85}
.kwd a {color: #569CD6}
.com a {color: #57A64A}
.typ a {color: #4DC9B0}
.lit a {color: #DCDCDC}
.pun, .opn, .clo a {color: #B4B4B4}
.tag a {color: #008}
.atn a {color: #606}
.atv a {color: #080}
.dec, .var a {color: #DCDCDC}
.fun a {color: red}
/* Tables */
table.is-borderless th,
table.is-borderless td {border: 0}
table.is-compact {width: initial}
table.is-compact td {padding: 0.15em 0.75em;vertical-align: middle;}
input[type="number"] {width: 3em;}
/* Table of Contents */
.toc {padding: 2px;margin: 0;}
@media (min-width: 768px) {.toc {font-size: 9pt;}}
.toc a {text-decoration: none;color: var(--title);padding: 2px;}
.toc a:hover {text-decoration: underline;color: var(--default);}
.toc li[data-nn-key].is-active {display: inline-block;}
.toc li {padding-top: 0.2em;padding-bottom: 0.2em;}
.toc svg {transform: rotate(0);transition: transform 0.2s ease;position: relative;top: 0.1rem;width: 0.75rem;height: 0.75rem;}
.toc .expanded > span > svg {transform: rotate(90deg);}
.toc li.expanded > ul {display: block;}
.toc li > ul {display: none;padding-top: 0.2em}
.toc > ul > li > ul li {margin-left: 1rem;}
.toc .selected > a {color: var(--maintext) !important;background-color: var(--main);border-radius: 3px;}
.toc .selected > a:hover {text-decoration: none;cursor: default;}
/* Page table of contents */
a:hover {text-decoration: underline;color: var(--title)}
#right-column .page-toc:has(.message-body:empty) {display: none;}
#right-column .message-header {justify-content: initial;background-color: var(--main);color: var(--maintext);}
#right-column .message:not(:last-child) {margin-bottom: 0.5em;}
#right-column .message .message-body:empty {display: none}
#right-column .message-body h3:first-child {margin-top: 0;}
#right-column .message-body h3:not(:last-child) {margin-bottom: 0.25em;}
#right-column .message-header + .message-body {border-width: 1px;border-top: 0;border-color: var(--main);background-color: var(--light2);}
#right-column .message a {color: var(--link);}
#right-column .message.list a {text-decoration: underline;}
#right-column li {font-size: 0.85rem;line-height: 1.15rem;margin-bottom: 0.35rem;}
.in-article-toc {margin-bottom: 1em;}
.in-article-toc > h4 {margin-bottom: 0;}
.in-article-toc > .page-toc-menu a {text-decoration-style: dotted}
.page-toc {padding: 0.25em;}
.page-toc .message a:not(.button):not(.tag):not(.dropdown-item) {text-decoration: none;}
.page-toc .message a:not(.button):not(.tag):not(.dropdown-item):hover {text-decoration: underline;}
button.button .icon:last-child:not(:first-child) {margin-left: 0em;margin-right: 0;}
ul.page-toc-menu {list-style: none;}
.page-toc-menu li {line-height: 1.15em;margin-bottom: 0.35em;}
.page-toc-menu li > ul {padding-top: 0.35em;}
.page-toc-menu li > ul > li {padding-left: 1em;}
svg {fill: currentColor;}
.content code {color: var(--default);font-size: 1em;padding: initial;}
/* Icons */
.icon svg {fill: currentColor;display: inline-block;width: 1rem;height: 1rem;padding-right: 3px;}
.icon.is-large svg {width: 2rem;height: 2rem;}
.icon.is-medium svg {width: 2rem;height: 2rem;position: relative;top: 0.625rem;}
a span.icon {width: 1em;height: 1em;}
/* a span.icon svg {padding-top:0.25em} */
/* Banners */
#mainBanner {font-size: 0.75em;background-color: var(--mainsemi);border-radius: 0;padding: 0.25rem 2.5rem 0.5rem 0.75rem;margin-bottom: 0;display: none;}
#mainBanner.is-active, #mainBanner.always-visible {display: block;}
#mainBanner.is-warning {color: var(--default);background-color: light-dark(#f9d77a7f, #5c3e1a7f);}
#mainBanner.is-danger {color: var(--default);background-color: light-dark(#ec50707f, #5c23247f);}
#mainBanner .button {border-color: var(--main);}
#mainBanner.is-warning .button {border-color: light-dark(#b88700, #8a6000);}
#mainBanner.is-danger .button {border-color: light-dark(#8e0b25, #6a0a18);}
/* Collapsable sections */
.toggleSection {transition: transform 0.2s ease;transform-origin: center;margin-right: 0.25em;cursor: pointer;}
.collapsed {height: 0;overflow-y: hidden;transition: height 0.2s ease-in-out;}
.toggleCollapsed {transform: rotate(-90deg)}
/* Permalinks to headers */
.header-link {position: relative;left: 0.5em;opacity: 0;font-size: 0.8em;transition: opacity 0.2s ease-in-out 0.1s;}
h2:hover > .header-link, h2:active > .header-link,
h3:hover > .header-link, h3:active > .header-link {opacity: 0.5;}
.header-link:hover {opacity: 1;}
test::before {background-color: blueviolet;color: green;content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' color='white' %3E%3Cpath fill='currentColor' stroke='currentColor' d='M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z'/%3E%3C/svg%3E");display: inline-block;width: 16px;height: 16px;margin-right: 4px;}
.table.is-stacked-touch {table-layout: fixed;border: 1px solid var(--border);word-wrap: break-word;}
@media screen and (min-width: 768px) {.table-name-value tr > :first-child {width: 33%;word-wrap: break-word}}
@media screen and (max-width: 767px) {.table.is-stacked-touch th, .table.is-stacked-touch td {width: 100%;display: block;}
.table.is-stacked-touch th:not(:last-child),
.table.is-stacked-touch td:not(:last-child) {border-bottom: 0;}}
.has-tooltip + tooltip {display: none;transition: opacity 0.5s ease-in;}
.has-tooltip:hover + tooltip {display: block;font-size: 0.8rem;opacity: 1;position: absolute;padding: 0.25em 0.5em;background-color: var(--light2);border: 1px solid var(--main);border-radius: 0.25rem;z-index: 9999;}
input:user-invalid {border-color: red;}
.firebase-emulator-warning {display: none}
#firebaseui-auth-container button {border-radius: 9999px !important;}
#cookie-banner {position: fixed;bottom: 0;left: 0;right: 0;padding: 0.5em;margin: 0;font-size: 0.75rem;display: flex;align-items: center;justify-content: center;z-index: 1000;}
#cookie-banner .button {margin-left: 2em;}