/* GENERATED by extract-fa.py -- do not hand-edit; re-run the script instead.
 *
 * Replaces Font Awesome Free 6.7.2 (all.min.css + four woff2 fonts, ~400 KB) with the
 * 41 glyphs this app actually renders, extracted from that release's
 * fa-solid-900.woff2 and served as 21 KB of SVG.
 *
 * Icons: CC BY 4.0, Copyright 2024 Fonticons, Inc. See images/fa/ATTRIBUTION.md.
 *
 * Rendered as a MASK rather than an <img> so the glyph still takes its colour from the
 * surrounding text: background-color:currentColor is what an <img> cannot do, and several
 * call sites rely on it (RichTextRenderer sets style="color:#555" on the icon, and every
 * hover rule that recolours an icon assumed a font glyph). Sizing stays in em, so the
 * font-size-based .fa-2x family below keeps working exactly as it did.
 */

.fa {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;

    /* A font glyph printed as text; this is a background, and browsers drop backgrounds when
       printing by default, so without this every icon vanishes in a Ctrl+P or save-as-PDF. */
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Each icon carries its glyph's own advance width, so a wide icon stays wide exactly as it
   did when the font supplied the advance. .fa-fw below deliberately follows these rules, at
   equal specificity, so it still wins for the fixed-width call sites. */
.fa-arrow-down {
    width: 0.75em;
    -webkit-mask-image: url(../images/fa/arrow-down.svg);
    mask-image: url(../images/fa/arrow-down.svg);
}
.fa-arrow-left {
    width: 0.875em;
    -webkit-mask-image: url(../images/fa/arrow-left.svg);
    mask-image: url(../images/fa/arrow-left.svg);
}
.fa-arrow-right {
    width: 0.875em;
    -webkit-mask-image: url(../images/fa/arrow-right.svg);
    mask-image: url(../images/fa/arrow-right.svg);
}
.fa-arrow-up {
    width: 0.75em;
    -webkit-mask-image: url(../images/fa/arrow-up.svg);
    mask-image: url(../images/fa/arrow-up.svg);
}
.fa-binoculars {
    width: 1em;
    -webkit-mask-image: url(../images/fa/binoculars.svg);
    mask-image: url(../images/fa/binoculars.svg);
}
.fa-box-open {
    width: 1.25em;
    -webkit-mask-image: url(../images/fa/box-open.svg);
    mask-image: url(../images/fa/box-open.svg);
}
.fa-calculator {
    width: 0.75em;
    -webkit-mask-image: url(../images/fa/calculator.svg);
    mask-image: url(../images/fa/calculator.svg);
}
.fa-chart-area {
    width: 1em;
    -webkit-mask-image: url(../images/fa/chart-area.svg);
    mask-image: url(../images/fa/chart-area.svg);
}
.fa-check {
    width: 0.875em;
    -webkit-mask-image: url(../images/fa/check.svg);
    mask-image: url(../images/fa/check.svg);
}
.fa-chevron-down {
    width: 1em;
    -webkit-mask-image: url(../images/fa/chevron-down.svg);
    mask-image: url(../images/fa/chevron-down.svg);
}
.fa-chevron-right {
    width: 0.625em;
    -webkit-mask-image: url(../images/fa/chevron-right.svg);
    mask-image: url(../images/fa/chevron-right.svg);
}
.fa-chevron-up {
    width: 1em;
    -webkit-mask-image: url(../images/fa/chevron-up.svg);
    mask-image: url(../images/fa/chevron-up.svg);
}
.fa-clone {
    width: 1em;
    -webkit-mask-image: url(../images/fa/clone.svg);
    mask-image: url(../images/fa/clone.svg);
}
.fa-compress-arrows-alt {
    width: 1em;
    -webkit-mask-image: url(../images/fa/compress-arrows-alt.svg);
    mask-image: url(../images/fa/compress-arrows-alt.svg);
}
.fa-copy {
    width: 0.875em;
    -webkit-mask-image: url(../images/fa/copy.svg);
    mask-image: url(../images/fa/copy.svg);
}
.fa-down-long {
    width: 0.625em;
    -webkit-mask-image: url(../images/fa/down-long.svg);
    mask-image: url(../images/fa/down-long.svg);
}
.fa-download {
    width: 1em;
    -webkit-mask-image: url(../images/fa/download.svg);
    mask-image: url(../images/fa/download.svg);
}
.fa-expand-arrows-alt {
    width: 1em;
    -webkit-mask-image: url(../images/fa/expand-arrows-alt.svg);
    mask-image: url(../images/fa/expand-arrows-alt.svg);
}
.fa-eye {
    width: 1.125em;
    -webkit-mask-image: url(../images/fa/eye.svg);
    mask-image: url(../images/fa/eye.svg);
}
.fa-lightbulb {
    width: 0.75em;
    -webkit-mask-image: url(../images/fa/lightbulb.svg);
    mask-image: url(../images/fa/lightbulb.svg);
}
.fa-magic {
    width: 1em;
    -webkit-mask-image: url(../images/fa/magic.svg);
    mask-image: url(../images/fa/magic.svg);
}
.fa-pen {
    width: 1em;
    -webkit-mask-image: url(../images/fa/pen.svg);
    mask-image: url(../images/fa/pen.svg);
}
.fa-pencil-alt {
    width: 1em;
    -webkit-mask-image: url(../images/fa/pencil-alt.svg);
    mask-image: url(../images/fa/pencil-alt.svg);
}
.fa-play {
    width: 0.75em;
    -webkit-mask-image: url(../images/fa/play.svg);
    mask-image: url(../images/fa/play.svg);
}
.fa-plus {
    width: 0.875em;
    -webkit-mask-image: url(../images/fa/plus.svg);
    mask-image: url(../images/fa/plus.svg);
}
.fa-poll {
    width: 0.875em;
    -webkit-mask-image: url(../images/fa/poll.svg);
    mask-image: url(../images/fa/poll.svg);
}
.fa-question-circle {
    width: 1em;
    -webkit-mask-image: url(../images/fa/question-circle.svg);
    mask-image: url(../images/fa/question-circle.svg);
}
.fa-redo {
    width: 1em;
    -webkit-mask-image: url(../images/fa/redo.svg);
    mask-image: url(../images/fa/redo.svg);
}
.fa-rotate-left {
    width: 1em;
    -webkit-mask-image: url(../images/fa/rotate-left.svg);
    mask-image: url(../images/fa/rotate-left.svg);
}
.fa-save {
    width: 0.875em;
    -webkit-mask-image: url(../images/fa/save.svg);
    mask-image: url(../images/fa/save.svg);
}
.fa-shield-alt {
    width: 1em;
    -webkit-mask-image: url(../images/fa/shield-alt.svg);
    mask-image: url(../images/fa/shield-alt.svg);
}
.fa-sliders-h {
    width: 1em;
    -webkit-mask-image: url(../images/fa/sliders-h.svg);
    mask-image: url(../images/fa/sliders-h.svg);
}
.fa-spinner {
    width: 1em;
    -webkit-mask-image: url(../images/fa/spinner.svg);
    mask-image: url(../images/fa/spinner.svg);
}
.fa-stethoscope {
    width: 1.125em;
    -webkit-mask-image: url(../images/fa/stethoscope.svg);
    mask-image: url(../images/fa/stethoscope.svg);
}
.fa-sync-alt {
    width: 1em;
    -webkit-mask-image: url(../images/fa/sync-alt.svg);
    mask-image: url(../images/fa/sync-alt.svg);
}
.fa-timeline {
    width: 1.25em;
    -webkit-mask-image: url(../images/fa/timeline.svg);
    mask-image: url(../images/fa/timeline.svg);
}
.fa-times {
    width: 0.75em;
    -webkit-mask-image: url(../images/fa/times.svg);
    mask-image: url(../images/fa/times.svg);
}
.fa-trash-alt {
    width: 0.875em;
    -webkit-mask-image: url(../images/fa/trash-alt.svg);
    mask-image: url(../images/fa/trash-alt.svg);
}
.fa-up-long {
    width: 0.625em;
    -webkit-mask-image: url(../images/fa/up-long.svg);
    mask-image: url(../images/fa/up-long.svg);
}
.fa-up-right-from-square {
    width: 1em;
    -webkit-mask-image: url(../images/fa/up-right-from-square.svg);
    mask-image: url(../images/fa/up-right-from-square.svg);
}
.fa-user {
    width: 0.875em;
    -webkit-mask-image: url(../images/fa/user.svg);
    mask-image: url(../images/fa/user.svg);
}

.fa-fw {
    width: 1.25em;
}

.fa-xs { font-size: 0.75em; }
.fa-sm { font-size: 0.875em; }
.fa-md { font-size: 1em; }
.fa-lg { font-size: 1.25em; }
.fa-2x { font-size: 2em; }
.fa-3x { font-size: 3em; }
.fa-4x { font-size: 4em; }
.fa-5x { font-size: 5em; }
.fa-7x { font-size: 7em; }
.fa-10x { font-size: 10em; }

.fa-spin {
    animation: fa-spin 2s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
    .fa-spin {
        animation: none;
    }
}

@keyframes fa-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
