/* Settings */
:root {
    --font-size: 16px;
    --line-height: 1.5;
    --font-family: system-ui, -apple-system, "Segoe UI", "Roboto", "Ubuntu", "Cantarell", "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --main-content-width: 95%;
    --header-min-width: unset;
    --outline-width: 3px;
    --transition: 0.2s ease-in-out;
    --form-width: 100%;
    --input-height: calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);
}


@media (min-width: 1200px) {
    :root {
        --header-min-width: 20rem;
    }
}

/* Sizes */
.margin-60 {
    margin-left: 15%;
    margin-right: 15%;
}

.margin-55 {
    margin-left: 12.5%;
    margin-right: 12.5%;
}

.margin-50 {
    margin-left: 10%;
    margin-right: 10%;
}

.margin-45 {
    margin-left: 7.5%;
    margin-right: 7.5%;
}

.margin-40 {
    margin-left: 5%;
    margin-right: 5%;
}

.margin-35 {
    margin-left: 2.5%;
    margin-right: 2.5%;
}

.margin-30 {
    margin-left: 15%;
    margin-right: 15%;
}

.margin-25 {
    margin-left: 12.5%;
    margin-right: 12.5%;
}

.margin-20 {
    margin-left: 10%;
    margin-right: 10%;
}

.margin-15 {
    margin-left: 7.5%;
    margin-right: 7.5%;
}

.margin-10 {
    margin-left: 5%;
    margin-right: 5%;
}

.margin-5 {
    margin-left: 2.5%;
    margin-right: 2.5%;
}

/* Classes */
.flex-center-row {
    display: flex;
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
}

.flex-center-column {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-wrap: wrap;
}

.center-text,
.center-text tr>* {
    text-align: center;
}

.monospace {
    --pico-font-family: var(--pico-font-family-monospace);
}

.header {
    background-color: var(--header-background-color);
}

.header>ul {
    min-width: var(--header-min-width);
}

.header>.profile>a {
    display: inline-block;
    height: 100%;
}

.header>.profile img {
    width: 2rem;
    vertical-align: middle;
    border-radius: 50%;
    margin: auto 0.5rem;
}

.header>.session {
    justify-content: right;
}

.menu {
    background-color: var(--menu-background-color);
    height: 2rem;
    justify-content: center;
}

.menu a {
    margin: auto 1em;
}

.menu:empty {
    display: none;
}

.no-menu-padding {
    margin-left: unset;
}

.sub-menu {
    background-color: var(--sub-menu-background-color);
}

.error {
    color: var(--error-color);
}

.warn {
    color: var(--warn-color);
}

.success {
    color: var(--success-color);
}

.glow {
    text-shadow: var(--glow-color) 1px 0 10px;
}

.red-button {
    --color: #e81b1b;
    --color-hover: #9c1515;
    --pico-primary-hover-background: var(--color-hover);
    --pico-primary-hover-border: var(--color-hover);
    --pico-background-color: var(--color);
    --pico-border-color: var(--color)
}

form>div[role="group"] {
    width: 100%;
}

.album {
    width: 20em;
    margin-left: 1em;
    margin-right: 1em;
}

.album-art {
    max-height: 120px;
    margin: 0 auto 1rem auto;
}

.album-progress {
    width: unset;
}

.no-background-color {
    background-color: unset;
}

.select-hover:hover {
    color: var(--pico-primary-hover);
}

.deleted-message {
    text-decoration: line-through;
    color: color-mix(in srgb, #ff0000 75%, var(--pico-color));
}

input.small-button {
    /* This style is to make buttons work inline */
    height: unset;
    padding: 0.25em 0.5em;
    margin-bottom: 0;
    width: auto;
}

.selector-search {
    position: relative;
}

.selector-search:has(input[type="hidden"]:not([value=""])) .selector-search-set {
    display: inline;
}

.selector-search-set {
    display: none;
}

.selector-search:has(input[type="search"]:focus) .selector-result:not(:empty),
.selector-result:hover {
    height: unset;
    opacity: unset;
    transition: opacity 500ms, height 500ms;
}

.selector-result {
    height: 0;
    opacity: 0;

    max-height: 10em;
    background-color: var(--pico-form-element-background-color);
    overflow: hidden scroll;
    scrollbar-width: none;
    padding: 0.125em 1em;
    position: absolute;
    z-index: 1;
    margin-top: -1em;
    margin-left: 1.5em;
    margin-right: 1.5em;
    border: 1.5px solid var(--pico-form-element-focus-color);
    border-radius: 0 0 1em 1em;
}

.selector-search input.disabled {
    pointer-events: none;
    color: var(--disabled-color);
}

.selector-clear {
    --pico-border-radius: 5rem;
}

.command-state {
    text-align: center;
}

.command-parameter {
    cursor: pointer;
    margin-bottom: calc(var(--pico-spacing) * .375);
}

/* Element Based */
td>progress {
    vertical-align: middle;
    margin-bottom: calc(var(--pico-spacing) * .25);
}

label>input~small {
    padding-top: 1rem;
}

td[data-tooltip] {
    border-bottom: var(--pico-border-width) solid var(--pico-table-border-color);
}

a,
a.secondary,
a.contrast {
    --pico-text-decoration: none;
}

/* Goal Page */
.grid-list-header:not(:has(~div>input[name*="save"])) {
    display: none;
}

#goalLevelHeader {
    grid-template-columns: 2fr 1fr 1fr 1fr 7em;
}

fieldset:has(select[name="type"]>option:not([value="IndividualExact"]):checked) #goalLevelHeader {
    grid-template-columns: 2fr 1fr 7em;
}

fieldset:has(select[name="type"]>option:not([value="IndividualExact"]):checked) .goal-level-individual {
    display: none;
}

/* Specific Elements */
#main-content {
    padding-top: 1rem;
}

#breadcrumbs>nav {
    margin: auto;
}

#override-test-data {
    display: none;
}

div:has(input[name="overrideTestData"]:checked)~#override-test-data {
    display: unset;
}

#commandTestResponse blockquote {
    white-space: pre-wrap;
}

#intervalTextCount,
#thresholdTextCount {
    min-width: 3ch;
    display: inline-block;
    text-align: center;
}

#messageTextCount {
    vertical-align: super;
    font-size: 0.75em;
    color: var(--pico-muted-color);
    text-align: right;
}