:root {
    font-family: "Fira Sans", sans-serif;
    font-size: 16px;
    --red: #c62828;
    --border: rgba(0, 0, 0, 0.18);
    --btn-transition: background-color 300ms ease;
    --btn-dark-bg: rgba(0, 0, 0, 0.075);
    --btn-light-bg: rgba(255, 255, 255, 0.075);
    --btn-radius: 0.25em;
    --btn-padding: 0.75rem;
    --top-h: 4rem;
}

* {
    min-height: 0;
    min-width: 0;
}

html,
body,
#svelte {
    height: 100%;
}

html {
    color: #111;
}

body {
    margin: 0;
}

#loading {
    display: flex;
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: -1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    animation: enter 350ms ease;
    animation-fill-mode: forwards;
}

@keyframes enter {
    0% {
        transform: scale(0);
    }
    100% {
        transform: scale(1);
    }
}

#loading-icon {
    width: min(13rem, 50vw);
    height: min(13rem, 50vh);
    background-image: url(/icons/512.png);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    margin-bottom: 3.5rem;
}

#progress-line,
#progress-line:before {
    height: 3px;
    width: min(80vh, 15rem);
    margin: 0;
}

#progress-line {
    background-color: #b3d4fc;
    display: flex;
}

#progress-line:before {
    background-color: #F82559;
    content: '';
    animation: running-progress 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes running-progress {
    0% {
        margin-left: 0px;
        margin-right: 100%;
    }
    50% {
        margin-left: 25%;
        margin-right: 0%;
    }
    100% {
        margin-left: 100%;
        margin-right: 0;
    }
}

button {
    appearance: none;
    border: 0;
    outline: 0;
    padding: 0;
    margin: 0;
    background-color: transparent;
    font: inherit;
}

.btn-dark,
.btn-light {
    user-select: none;
    cursor: pointer;
    transition: var(--btn-transition)
}

.btn-dark {
    --ripple-color: rgba(0, 0, 0, 0.2);
}

.btn-light {
    --ripple-color: rgba(255, 255, 255, 0.2);
}

.btn-dark:hover,
.btn-dark.hover {
    background-color: var(--btn-dark-bg);
}

.btn-light:hover,
.btn-light.hover {
    background-color: var(--btn-light-bg);
}

.btn-primary {
    background-color: var(--red);
    color: #fff !important;
    padding: var(--btn-padding);
    border-radius: var(--btn-radius);
    transition: var(--btn-transition);
}

.btn-primary:hover {
    background-color: #bf3434;
}

.na {
    color: inherit;
    text-decoration: none;
}

.tooltip {
    position: fixed;
    display: inline-block;
    padding: 0.5rem 0.75rem;
    font-size: 0.85rem;
    pointer-events: none;
    transition: opacity 200ms ease;
    opacity: 0;
    color: #fff;
    background: rgba(0, 0, 0, 0.8);
    z-index: 999999999;
    border-radius: 0.25rem;
    max-width: calc(100vw - 32px);
}

.tooltip.visible {
    opacity: 1;
}

.thin-scroll {
    scrollbar-width: thin;
}

.thin-scroll::-webkit-scrollbar {
    width: 5px;
}

.thin-scroll::-webkit-scrollbar-track {
    background: #ddd;
}

.thin-scroll::-webkit-scrollbar-thumb {
    background: #aaa;
}

.thin-scroll::-webkit-scrollbar-thumb:hover {
    background: #888;
}

.elev2 {
    box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}

.elev3 {
    box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
    /*  box-shadow: 0px 5px 11.7px rgba(0, 0, 0, 0.11),
              0px 10.1px 22.9px rgba(0, 0, 0, 0.079),
              0px 17px 35.8px rgba(0, 0, 0, 0.071),
              0px 32px 57.7px rgba(0, 0, 0, 0.063),
              0px 138px 141px rgba(0, 0, 0, 0.047)
              */
}

.elev4 {
    box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}

.elev6 {
    box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}

.elev8 {
    box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
}

.elev16 {
    box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}

@media not all and (max-width: 800px) {
    .only-narrow {
        display: none !important;
    }
}

@media (max-width: 800px) {
    .only-wide {
        display: none !important;
    }
}