﻿:root {
    /* PHZH colors */
    --phzh-color-red: #ee3647;
    --phzh-color-pink: #f2726f;
    --phzh-color-pink-light: #f69892;
    --phzh-color-blue: #26bac7;
    --phzh-color-blue-light: #79cdd0;
    --phzh-color-greyblue: #d1ecec;
    --phzh-color-purple: #ed1c91;
    --phzh-color-ocher: #bebca6;
    --phzh-color-ocher-light: #e0e6dd;
    --phzh-color-yellow: #fec227;
    --phzh-color-green: #b1d270;
    --phzh-color-cool-grey: #f1ece2;
    --phzh-color-dark-grey: #666666;
    /* generic styles */
    --phzh-app-header-height: 61px;
    --phzh-app-header-border-color: var(--neutral-stroke-active);
    --phzh-splitter-opacity: 0.6;
    --phzh-highlight-background: #ffe7b2;
    --phzh-control-height: calc((var(--base-height-multiplier) + var(--density)) * var(--design-unit) * 1px);
    --phzh-favorite-color: var(--presence-away);
    --phzh-favorite-color-hover: color-mix(in srgb,var(--presence-away),#000 10%);
    /* badge colors */
    --badge-color-dark: #1a1a1a;
    --badge-color-light: #ffffff;
    --badge-fill-danger: color-mix(in srgb,var(--presence-busy),#fff 10%);
    --badge-color-danger: var(--badge-color-light);
    --badge-fill-warning: color-mix(in srgb,var(--presence-away),#fff 10%);
    --badge-color-warning: var(--badge-color-light);
    --badge-fill-success: color-mix(in srgb,var(--presence-available),#fff 10%);
    --badge-color-success: var(--badge-color-light);
    --badge-fill-info: color-mix(in srgb,#0e6db5,#fff 10%);
    --badge-color-info: var(--badge-color-light);
    --badge-fill-highlight: var(--phzh-highlight-background);
    --badge-color-highlight: var(--badge-color-dark);
    /*
    --badge-fill-active: #acc7ee;
    --badge-color-active: var(--badge-color-dark);
    --badge-fill-completed: #98d393;
    --badge-color-completed: var(--badge-color-dark);
    --badge-fill-archived: #ffebcd;
    --badge-color-archived: var(--badge-color-dark);
    --badge-fill-offline: #ffa1a1;
    --badge-color-offline: var(--badge-color-dark);
*/
}


* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    width: 100vw;
    height: 100vh;
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
    /* this prevents flickering when loading our app */
    body[data-teams-theme='dark'] {
        background-color: #272727;
    }

    body[data-teams-theme='default'] {
        background-color: #fbfbfb;
    }

    body[data-teams-theme='light'] {
        background-color: #fbfbfb;
    }

.fluent-design-container {
    width: 100%;
    height: 100%;
}

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

/*pre,*/
div.error {
    background-color: #e5e5e5;
    padding: 1rem;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
    border-radius: 3px;
    margin: 1rem 0;
    max-height: 250px;
}

    /*pre.fixed,*/
    div.error.fixed {
        height: 200px;
    }

code {
    background-color: #e5e5e5;
    display: inline-block;
    padding: 0px 6px;
    border-radius: 3px;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
}

.json {
    background-color: var(--bs-gray-100);
    color: var(--bs-gray-700);
}

    .json > pre {
        padding: 0.5rem;
        line-height: 1.25em;
        white-space: pre-wrap;
        margin: 0;
    }

    .json .jsonKey {
        color: #005e87;
    }

    .json .jsonString {
        color: #A52800;
    }

    .json .jsonConst {
        color: #009F8C;
    }

    .json .jsonNumber {
        color: #EB2F00;
    }

/* FluentUI override */
fluent-badge > span {
    padding-left: 0.3em;
    padding-right: 0.3em;
}

.fluent-data-grid {
    --fluent-data-grid-resize-handle-color: var(--neutral-stroke-divider-rest) !important;
    --fluent-data-grid-resize-handle-width: 1px;
    --fluent-data-grid-header-opacity: 1 !important;
    flex-grow: 0 !important;
}

fluent-checkbox::part(label) {
    margin-inline-end: 0;
}

/* FluentTabs */
.phzh-fluent-tabs {
    --density: 0 !important;
}

    .phzh-fluent-tabs::part(start),
    .phzh-fluent-tabs::part(end) {
        --density: 0 !important; /* don't change this, it will scale controls up */
    }

    .phzh-fluent-tabs fluent-tab {
        padding: 0 1px !important;
    }

        .phzh-fluent-tabs fluent-tab:not(:last-of-type) {
            margin-right: 1rem;
        }

        /* fixes selection indicator of tabs, without indicator (set 'ShowActiveIndicator="false"' on FluentTabs) */
        .phzh-fluent-tabs fluent-tab[aria-selected="true"] {
            position: relative;
        }

            .phzh-fluent-tabs fluent-tab[aria-selected="true"]:after {
                content: "";
                display: block;
                position: absolute;
                margin-top: 28px;
                width: 100%;
                height: 3px;
                border-radius: calc(var(--control-corner-radius) * 1px);
                justify-self: center;
                background: var(--accent-fill-rest);
            }

    .phzh-fluent-tabs .phzh-fluent-tab-icon {
        margin-inline: -1px 4px;
        fill: var(--neutral-foreground-hint) !important;
    }

    .phzh-fluent-tabs .phzh-fluent-tab-badge {
        margin-top: 3px;
        margin-left: 4px;
    }
        .phzh-fluent-tabs .phzh-badge.phzh-fluent-tab-badge > span {
            padding-left: 0.1em;
            padding-right: 0.1em;
            font-weight: 700;
        }

    .phzh-fluent-tabs fluent-tab[aria-selected="true"] .phzh-fluent-tab-icon {
        fill: var(--accent-fill-rest) !important;
    }

        .phzh-fluent-tabs fluent-tab[aria-selected="true"] .phzh-fluent-tab-icon.phzh-fluent-tab-icon_inactive {
            display: none;
        }

    .phzh-fluent-tabs fluent-tab[aria-selected="false"] .phzh-fluent-tab-icon.phzh-fluent-tab-icon_active {
        display: none;
    }

/* FluentGrid */
.phzh-grid {
}

    .phzh-grid th.phzh-column-header_no-title .col-sort-button::part(control) {
        padding-left: 3px;
        padding-right: 3px;
    }

/* Custom Components where we cannot use direct css because wrapping directly FluentUI components */
/* HoverButton */
.phzh-hover-button {
}

    .phzh-hover-button.phzh-hover-button_only-icon::part(control) {
        padding: 0px;
        line-height: 0;
        flex-grow: 0;
        min-width: var(--phzh-control-height);
    }

    .phzh-hover-button.phzh-hover-button_only-icon::part(start) {
        margin-inline-end: 0;
    }

    .phzh-hover-button.phzh-hover-button_only-icon::part(end) {
        margin-inline-start: 0;
    }

    .phzh-hover-button.phzh-hover-button_dropdown::part(control) {
        padding-right: 0 !important;
        min-width: auto;
    }

    .phzh-hover-button.phzh-hover-button_icon-start::part(start) {
        margin-inline-end: 5px;
        line-height: 1;
    }

    .phzh-hover-button.phzh-hover-button_icon-end::part(end) {
        margin-inline-start: 5px;
        line-height: 1;
    }

    .phzh-hover-button fluent-progress-ring {
        width: var(--progress-size) !important;
    }

    .phzh-hover-button.phzh-hover-button_invert-progress fluent-progress-ring {
        filter: none !important;
    }

        .phzh-hover-button.phzh-hover-button_invert-progress fluent-progress-ring::part(background) {
            stroke: var(--neutral-fill-rest);
        }

        .phzh-hover-button.phzh-hover-button_invert-progress fluent-progress-ring::part(indeterminate-indicator-1) {
            stroke: var(--progress-indeterminate-stroke);
        }

    .phzh-hover-button.phzh-hover-button_link {
        text-decoration: underline 1px;
        height: auto !important;
        vertical-align: text-top;
    }

        .phzh-hover-button.phzh-hover-button_link::part(control) {
            padding: 0;
            border: 0;
        }

            .phzh-hover-button.phzh-hover-button_link::part(control):not([disabled]):hover {
                opacity: 1 !important;
            }

        .phzh-hover-button.phzh-hover-button_link > fluent-button {
            text-decoration: underline 1px;
            height: auto !important;
            vertical-align: text-top;
        }

            .phzh-hover-button.phzh-hover-button_link > fluent-button::part(control) {
                padding: 0;
                border: 0;
            }

                .phzh-hover-button.phzh-hover-button_link > fluent-button::part(control):hover {
                    opacity: 1 !important;
                }

    .phzh-hover-button.phzh-hover-button_small {
        --base-height-multiplier: 6;
    }

        .phzh-hover-button.phzh-hover-button_small > p[typo='body'] {
            font-size: var(--type-ramp-minus-1-font-size);
            line-height: var(--type-ramp-minus-1-font-size);
        }

        .phzh-hover-button.phzh-hover-button_small::part(control) {
            padding: 0 calc((6 + (var(--design-unit) * 2 * var(--density))) * 1px);
        }

/* CounterBadge */
.phzh-counter-badge {
    margin-left: 5px;
}

    .phzh-counter-badge > span {
        padding-left: 0.1em;
        padding-right: 0.1em;
        font-weight: 600;
    }

    .phzh-counter-badge::part(control) {
        font-size: var(--type-ramp-minus-2-font-size);
        line-height: var(--type-ramp-minus-2-line-height);
        font-variation-settings: var(--type-ramp-minus-2-font-variations);
    }

/* Badge */
.phzh-badge {
    font-size: var(--type-ramp-minus-1-font-size);
    font-variation-settings: var(--type-ramp-minus-1-font-variations);
    line-height: 1;
}

    .phzh-badge > span {
        line-height: 1;
        padding-block: 1px 2px;
        padding-left: 0.3em;
        padding-right: 0.3em;
    }

    .phzh-badge.phzh-badge_small {
        font-size: var(--type-ramp-minus-2-font-size);
        font-variation-settings: var(--type-ramp-minus-2-font-variations);
    }

        .phzh-badge.phzh-badge_small > span {
            padding-left: 0.2em;
            padding-right: 0.2em;
            font-weight: 600;
        }

    .phzh-badge.phzh-badge_large {
        font-size: var(--type-ramp-base-font-size);
        font-variation-settings: var(--type-ramp-base-font-variations);
    }

        .phzh-badge.phzh-badge_large > span {
            padding-left: 0.4em;
            padding-right: 0.4em;
        }

/* Persona */
.phzh-avatar {
    overflow: hidden;
    border-radius: 0 !important; /* fluent-persona has 999px */
}

    .phzh-avatar .name {
        margin-inline-start: 8px !important;
        overflow: hidden;
    }

    .phzh-avatar.phzh-avatar_image-only .name {
        display: none;
    }

    .phzh-avatar .phzh-avatar-name {
        line-height: calc(var(--type-ramp-base-line-height) - 2px);
        text-overflow: ellipsis;
        overflow: hidden;
    }

    .phzh-avatar .phzh-avatar-details {
        font-size: var(--type-ramp-minus-1-font-size);
        line-height: var(--type-ramp-minus-1-line-height);
        font-variation-settings: var(--type-ramp-minus-1-font-variations);
        color: var(--neutral-foreground-hint);
        text-overflow: ellipsis;
        overflow: hidden;
    }

/* PeoplePicker */
.phzh-peoplepicker {
}

.phzh-peoplepicker-entry {
    background-color: var(--neutral-fill-input-alt-rest);
    padding: 1px 0 1px 2px;
    border-radius: calc(var(--control-corner-radius) * 1px);
}

    .phzh-peoplepicker-entry .phzh-hover-button {
        height: auto;
    }

/* ParticipantsPicker Entry */
.phzh-participantspicker {
}

.phzh-participantspicker-entry {
    padding: 1px 0 1px 2px;
    background-color: var(--neutral-fill-input-alt-rest);
}

    .phzh-participantspicker-entry:nth-child(even) {
        background-color: var(--neutral-fill-input-rest);
    }

    .phzh-participantspicker-entry .phzh-avatar {
        flex-grow: 1;
    }

/* FluentDialog */

.phzh-dialog-header {
    padding-bottom: 8px !important;
}

.phzh-dialog-body {
    overflow: auto;
    padding: 1px; /* needed that validation border is valid */
}

.phzh-dialog-footer {
}

/*.fluent-dialog-main {}

.fluent-dialog-header {
    x-background-color: indianred;
    padding-bottom: 8px !important;
    column-gap: 10px;
}
.fluent-dialog-body {
    x-background-color: sandybrown;
    overflow: auto;
}
.fluent-dialog-footer {
    x-background-color: palegoldenrod;
}*/

/* Forms */
.phzh-form-field {
}

    .phzh-form-field > fluent-text-field,
    .phzh-form-field > fluent-text-area {
        width: 100%;
    }

.phzh-form-field-in-stack {
    display: flex;
}

.phzh-form-field-stack {
}

.phzh-form-field-label {
    font-size: var(--type-ramp-minus-1-font-size);
    line-height: var(--type-ramp-minus-1-line-height);
    font-variation-settings: var(--type-ramp-minus-1-font-variations);
}

.phzh-field-required {
    color: var(--error);
    margin-left: 3px;
}

.phzh-form-field-validation-message {
    font-size: var(--type-ramp-minus-1-font-size);
    line-height: var(--type-ramp-minus-1-line-height);
    font-variation-settings: var(--type-ramp-minus-1-font-variations);
    color: var(--error);
}

.phzh-form-field-description {
    font-size: var(--type-ramp-minus-1-font-size);
    line-height: var(--type-ramp-minus-1-line-height);
    font-variation-settings: var(--type-ramp-minus-1-font-variations);
    color: var(--neutral-foreground-hint);
}

.phzh-time-input {
}
