@font-face {
    font-family: equity_ot_a;
    font-style: normal;
    font-weight: normal;
    font-stretch: normal;
    font-display: auto;
    src: url('../fonts/equity_ot_a_regular.woff2') format('woff2');
}

@font-face {
    font-family: equity_ot_a;
    font-style: italic;
    font-weight: normal;
    font-stretch: normal;
    font-display: auto;
    src: url('../fonts/equity_ot_a_italic.woff2') format('woff2');
}

@font-face {
    font-family: equity_ot_a;
    font-style: normal;
    font-weight: bold;
    font-stretch: normal;
    font-display: auto;
    src: url('../fonts/equity_ot_a_bold.woff2') format('woff2');
}

@font-face {
    font-family: equity_ot_a;
    font-style: italic;
    font-weight: bold;
    font-stretch: normal;
    font-display: auto;
    src: url('../fonts/equity_ot_a_bold_italic.woff2') format('woff2');
}

@font-face {
    font-family: triplicate_a;
    font-style: normal;
    font-weight: normal;
    font-stretch: normal;
    font-display: auto;
    src: url('../fonts/triplicate_a_regular.woff2') format('woff2');
}

@font-face {
    font-family: triplicate_a;
    font-style: normal;
    font-weight: bold;
    font-stretch: normal;
    font-display: auto;
    src: url('../fonts/triplicate_a_bold.woff2') format('woff2');
}

:root {
    --brand: #9137A9;
    --primary: #151315;
    --secondary: #f0f4ef;
    --accent: #73DA2F;
    --muted: #989298;
    --bg-highlight: yellow;
    --bg-baseline: #c7221c;
    --color-baseline: #fff;
    --is-best: #118f39;
    --is-good: #bdf6cf;
    --is-ok: #ffffc4;
    --is-bad: #ffbfbf;
    --is-worst: #dc1010;
    --body-standard-font-size: 23px;
    --body-mobile-font-size: 19px;
    --h1-standard-font-size: calc(var(--body-standard-font-size) * 1.5);
    --h1-mobile-font-size: calc(var(--body-mobile-font-size) * 1.3);
    --h1-font-size: var(--h1-standard-font-size);
    --h2-standard-font-size: calc(var(--body-standard-font-size) * 1.2);
    --h2-mobile-font-size: calc(var(--body-mobile-font-size) * 1.1);
    --h2-font-size: var(--h2-standard-font-size);
    --body-font-size: var(--body-standard-font-size);
    --body-font-line-height: calc(var(--body-font-size) * 1.3);
    --small-font-size: calc(var(--body-font-size) * 0.7);
    --table-font-size: calc(var(--body-font-size) * 0.8);
    --container-width: 650px;
    --max-width: 768px;
    --row-padding-y: 1em;
    --row-padding-x: 1.5em;
    --row-head-pad: 0.5em;
}

:focus
{
    /* remove the stupid blue border on fresh load */
    outline: 0;
}

body
{
    font-family: equity_ot_a, serif;
    border:none;
    color: var(--primary);
}

.container
{
    max-width: var(--container-width);
    margin: 0 auto;
}

.tools-layout
{
    max-width: var(--max-width);
    margin: 0 auto;
}

.hero
{
    padding: calc(var(--h1-font-size) * 2) 0;
    border-top: 2px solid var(--primary);
    border-bottom: 2px solid var(--primary);
}

a, a:visited
{
    color:var(--brand);
    text-decoration: none;
}

a:hover, a:focus
{
    background-color: var(--secondary);
    transition: background-color 0.5s;
    border-bottom: 1px solid var(--accent);
}

p
{
    font-size: var(--body-font-size);
    line-height: var(--body-font-line-height);
    margin: 0 0 var(--body-font-size) 0;
}

h1
{
    font-size: var(--h1-font-size);
    border: none;
    margin: 0 0 calc(var(--h1-font-size) * 0.5) 0;
}

h2
{
    font-size: var(--h2-font-size);
    border:0;
    margin: var(--h2-font-size) 0 calc(var(--h2-font-size) * 0.5) 0;
}

small
{
    font-size: var(--small-font-size);
    color: var(--muted);
}

table
{
    font-family: triplicate_a, monospace;
    border-collapse: collapse;
    font-size: var(--table-font-size);
}

.table-wrapper
{
    overflow-x: auto;
    display: block;
}

th
{
    border-bottom:1px solid var(--primary);
    text-align: left;
    padding: var(--row-head-pad) 0;
}

tr
{
    border-bottom: 1px solid var(--secondary);
}

tr td
{
    padding: var(--row-padding-y) var(--row-padding-x) var(--row-padding-y) 0;
}

tr.is-baseline
{
    background-color: var(--bg-baseline);
    color: var(--color-baseline);
    border:2px solid black;
    font-weight: bolder;
}

td.pm small
{
    display: block;
    margin-bottom: 0.25em;
    text-align: center;
}

mark
{
    background-color: var(--bg-highlight);
}

footer
{
    background-color: var(--secondary);
    padding: 1.5em 0.75em;
}

.filters
{
    margin-bottom: 1.5em;
}

.tag
{
    padding:0.25em 0.35em;
    background-color: var(--secondary);
    border:1px solid var(--primary);
    border-radius: 3px;
}

small.tag
{
    color: var(--primary);
}

.tag.is-best
{
    background-color: var(--is-best);
    color: var(--color-baseline);
}

.tag.is-good
{
    background-color: var(--is-good);
}

.tag.is-ok
{
    background-color: var(--is-ok);
}

.tag.is-bad
{
    background-color: var(--is-bad);
}

.tag.is-worst
{
    background-color: var(--is-worst);
    color:var(--color-baseline);
}

.danger
{
    color: var(--is-worst);
    font-weight: bold;
}

.blink-it {
    animation: blinker 1s linear infinite;
}

@keyframes blinker {
    50% {
        opacity: 0;
    }
}

#blazor-error-ui {
    background: red;
    color:white;
    font-weight: bolder;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

.loading-progress {
    position: relative;
    display: block;
    width: 8rem;
    height: 8rem;
    margin: 20vh auto 1rem auto;
}

.loading-progress circle {
    fill: none;
    stroke: #e0e0e0;
    stroke-width: 0.6rem;
    transform-origin: 50% 50%;
    transform: rotate(-90deg);
}

.loading-progress circle:last-child {
    stroke: #1b6ec2;
    stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
    transition: stroke-dasharray 0.05s ease-in-out;
}

.loading-progress-text {
    position: absolute;
    text-align: center;
    font-weight: bold;
    inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
}

.loading-progress-text:after {
    content: var(--blazor-load-percentage-text, "Loading");
}

@media only screen and (max-width: 768px) {
    :root {
        --body-font-size: var(--body-mobile-font-size);
        --h1-font-size: var(--h1-mobile-font-size);
        --h2-font-size: var(--h2-mobile-font-size);
    }
}

