@keyframes selected {
    0% {
        -webkit-box-shadow: 0px 0px 25px 10px var(--roadsign-blue);
        -moz-box-shadow: 0px 0px 25px 10px var(--roadsign-blue);
        box-shadow: 0px 0px 25px 10px var(--roadsign-blue)
    }

    33% {
        -webkit-box-shadow: 0px 0px 5px 2px var(--roadsign-blue);
        -moz-box-shadow: 0px 0px 5px 2px var(--roadsign-blue);
        box-shadow: 0px 0px 5px 2px var(--roadsign-blue)
    }

    66% {
        -webkit-box-shadow: 0px 0px 25px 10px var(--roadsign-blue);
        -moz-box-shadow: 0px 0px 25px 10px var(--roadsign-blue);
        box-shadow: 0px 0px 25px 10px var(--roadsign-blue)
    }

    80% {
        -webkit-box-shadow: 0px 0px 0 0 var(--roadsign-blue);
        -moz-box-shadow: 0px 0px 0 0 var(--roadsign-blue);
        box-shadow: 0px 0px 0 0 var(--roadsign-blue)
    }

    81% {
        -webkit-box-shadow: inset 0px 0px 0px 2px var(--roadsign-blue);
        -moz-box-shadow: inset 0px 0px 0px 2px var(--roadsign-blue);
        box-shadow: inset 0px 0px 0px 2px var(--roadsign-blue)
    }

    100% {
        -webkit-box-shadow: inset 0px 0px 5px 2px var(--roadsign-blue);
        -moz-box-shadow: inset 0px 0px 5px 2px var(--roadsign-blue);
        box-shadow: inset 0px 0px 5px 2px var(--roadsign-blue)
    }
}

#app {
    height: 100vh;
}

.flow-vehicle {
    height: 52px;
    position: relative;
    width: 110px
}

    .flow-vehicle > svg {
        height: 100%;
        left: 0;
        position: absolute;
        top: 0;
        width: 100px;
        z-index: 1
    }

    .flow-vehicle .vehicle-info {
        white-space: nowrap
    }

        .flow-vehicle .vehicle-info .for {
            color: #000;
            font-size: 11px;
            font-weight: 600
        }

        .flow-vehicle .vehicle-info .time {
            font-size: 14px
        }

            .flow-vehicle .vehicle-info .time.outdated {
                color: red
            }

.zero-speed {
    animation: blinker 2s ease-in infinite;
}

@keyframes blinker {
    50% {
        opacity: 0
    }
}

.flow-vehicle .highlight-box {
    animation-duration: 3s;
    animation-name: selected;
    border: 2px solid var(--roadsign-blue);
    border-radius: 20px;
    height: 67px;
    left: -5px;
    position: absolute;
    top: -12px;
    width: 108px;
    z-index: 4;
    -webkit-box-shadow: inset 0px 0px 5px 2px var(--roadsign-blue);
    -moz-box-shadow: inset 0px 0px 5px 2px var(--roadsign-blue);
    box-shadow: inset 0px 0px 5px 2px var(--roadsign-blue)
}

.expansion-panel.blocked {
    background-color: var(--asphalt-light);
    cursor: not-allowed
}

.expansion-panel.enabled {
    cursor: pointer
}

.expansion-panel .expansion-details {
    background-color: #fff
}

    .expansion-panel .expansion-details.extended {
        border: 1px solid var(--asphalt-grey-1);
        border-radius: 0 0 4px 4px
    }

.expansion-panel .expansion-summary {
    padding: 0.7em;
    border: 1px solid var(--asphalt-grey-1);
    border-radius: 4px
}

    .expansion-panel .expansion-summary.extended {
        border-radius: 4px 4px 0 0;
        border-bottom: none;
        cursor: initial
    }

.section-spacing > div + div {
    margin-top: 1.2em
}

.deviation-summary-container {
    display: flex;
    align-items: center;
    width: 100%;
    position: relative;
    min-height: 34px
}

.deviation-details-container {
    position: relative;
    padding: 12px;
    display: grid;
    grid-gap: 12px;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    grid-template-rows: repeat(auto-fill, 32px);
    grid-auto-flow: dense;
    cursor: default;
    overflow-x: auto
}

.expansion-panel-drag-over .expansion-details.extended {
    border: none !important;
    box-shadow: inset 0px 0px 5px var(--roadsign-blue),inset 0px 0px 5px var(--roadsign-blue)
}

.drag-over {
    border: none !important;
    box-shadow: inset 0px 0px 5px var(--roadsign-blue),inset 0px 0px 5px var(--roadsign-blue)
}

.dragging-expansion-panel .expansion-details.extended {
    border: 2px dashed var(--roadsign-blue)
}

.dragging {
    border: 2px dashed var(--roadsign-blue)
}

.dragging-text {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateX(-50%) translateY(-50%) rotate(-45deg);
    font-size: 2rem;
    z-index: 15;
    color: var(--roadsign-blue)
}

.sidebar-drop-area {
    position: relative;
    display: grid;
    grid-gap: 12px;
    grid-template-columns: 100%;
    grid-template-rows: repeat(auto-fill, 32px);
    padding-top: 6px;
    padding-bottom: 12px;
    min-height: 200px;
    max-height: 500px;
    overflow-y: auto
}

.single-button {
    width: 100% !important;
    margin: 0 !important;
    max-width: none !important
}

.loading-error-container {
    height: 200px;
    width: Min(90%, 500px);
    background-color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid blue;
    border-radius: 4px;
    color: red;
    line-height: 1.7
}

.squared-icon img, .squared-icon .btn-icon {
    border-radius: 0 !important
}

.status-icon > div.btn-icon {
    margin-left: auto;
    margin-right: auto;
    width: 2.5em !important;
    height: 2.5em !important
}

    .status-icon > div.btn-icon img {
        width: inherit !important;
        height: inherit !important
    }

.full-width-input {
    width: 100%
}

    .full-width-input input {
        width: 100%
    }

.table-checkbox > div.btn-icon {
    margin-left: auto;
    margin-right: auto;
    width: 14px !important;
    height: 14px !important
}

    .table-checkbox > div.btn-icon img {
        width: inherit !important;
        height: inherit !important
    }

.table-status-icon > div.btn-icon {
    margin-left: auto;
    margin-right: auto
}

    .table-status-icon > div.btn-icon:hover {
        cursor: default;
        border: none
    }

    .table-status-icon > div.btn-icon img {
        width: inherit !important;
        height: inherit !important
    }

.background-color-disabled > textarea {
    background-color: var(--asphalt-light)
}

.background-color-disabled > input {
    background-color: var(--asphalt-light)
}

.valid.modified:not([type=checkbox]) {
    border: 1px solid green !important
}

.invalid {
    border: 1px solid red !important
}

.validation-message {
    color: red;
    padding: 0.2rem 0.4rem
}

#blazor-error-ui {
    bottom: 5px;
    display: none;
    right: 5px;
    position: fixed;
    z-index: 1000;
}

    #blazor-error-ui:hover {
        cursor: pointer
    }

    #blazor-error-ui .dismiss svg {
        transform: rotate(180deg);
        background: #eba032;
        border-radius: 50%;
    }

[data-tooltip] {
    position: relative;
    cursor: pointer;
}

    [data-tooltip]:before,
    [data-tooltip]:after {
        line-height: 1;
        font-size: .9em;
        pointer-events: none;
        position: absolute;
        box-sizing: border-box;
        display: none;
        opacity: 0;
    }

    [data-tooltip]:before {
        content: "";
        border: 5px solid transparent;
        z-index: 100;
    }

    [data-tooltip]:after {
        content: attr(data-tooltip);
        text-align: center;
        min-width: 3em;
        max-width: 21em;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        padding: 6px 8px;
        border-radius: 3px;
        background: #eba032;
        color: #000000;
        z-index: 99;
    }

    [data-tooltip]:hover:before,
    [data-tooltip]:hover:after {
        display: block;
        opacity: 1;
    }

    [data-tooltip]:not([data-flow])::before,
    [data-tooltip][data-flow="top"]::before {
        bottom: 100%;
        border-bottom-width: 0;
        border-top-color: #EBAE26;
    }

    [data-tooltip]:not([data-flow])::after,
    [data-tooltip][data-flow="top"]::after {
        bottom: calc(100% + 5px);
    }

    [data-tooltip]:not([data-flow])::before, [tooltip]:not([data-flow])::after,
    [data-tooltip][data-flow="top"]::before,
    [data-tooltip][data-flow="top"]::after {
        left: 50%;
        -webkit-transform: translate(-50%, -4px);
        transform: translate(-50%, -4px);
    }

    [data-tooltip][data-flow="bottom"]::before {
        top: 100%;
        border-top-width: 0;
        border-bottom-color: #EBAE26;
    }

    [data-tooltip][data-flow="bottom"]::after {
        top: calc(100% + 5px);
    }

    [data-tooltip][data-flow="bottom"]::before, [data-tooltip][data-flow="bottom"]::after {
        left: 50%;
        -webkit-transform: translate(-50%, 8px);
        transform: translate(-50%, 8px);
    }

    [data-tooltip][data-flow="left"]::before {
        top: 50%;
        border-right-width: 0;
        border-left-color: #EBAE26;
        left: calc(0em - 5px);
        -webkit-transform: translate(-8px, -50%);
        transform: translate(-8px, -50%);
    }

    [data-tooltip][data-flow="left"]::after {
        top: 50%;
        right: calc(100% + 5px);
        -webkit-transform: translate(-8px, -50%);
        transform: translate(-8px, -50%);
    }

    [data-tooltip][data-flow="right"]::before {
        top: 50%;
        border-left-width: 0;
        border-right-color: #EBAE26;
        right: calc(0em - 5px);
        -webkit-transform: translate(8px, -50%);
        transform: translate(8px, -50%);
    }

    [data-tooltip][data-flow="right"]::after {
        top: 50%;
        left: calc(100% + 5px);
        -webkit-transform: translate(8px, -50%);
        transform: translate(8px, -50%);
    }

[data-tooltip=""]::after, [data-tooltip=""]::before {
    display: none !important;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem,#b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }