﻿:root {
    --font-size-default: 40px;
    --font-size-header: 72px;
    --font-size-large: 55px;
    --font-size-small: 25px;
    --font-size-tiny: 20px;
    --font-size-dummy: 12px;
    --header-height: 80px;
    --header-clock-width: 400px;
    --indicator-width: 10px;
    --color-fire: red;
    --color-fire-text: black;
    --color-med: yellow;
    --color-med-text: black;
    --color-dark: black;
    --color-dark-text: white;
    --color-header: lightgrey;
    --color-header-text: black;
    --color-page: whitesmoke;
    --color-page-text: black;
    --color-title: red;
    --color-foreign-text: dimgray;
}

body, html {
    height: 100%;
    min-height: 100%;
    max-height: 100%;
    padding: 0;
    margin: 0;
    font-size: var(--font-size-default);
    position: relative;
    overflow: hidden;
    font-family: Arial, Helvetica, sans-serif;
}

div, table {
    clear: none;
    box-sizing: border-box;
    border-collapse: collapse;
}

.flash,
.flash-fire,
.flash-med {
    animation-name: flash-generic;
    animation-duration: 0.2s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-play-state: paused;
}

.flash-fire {
    animation-name: flash-fire;
}

.flash-med {
    animation-name: flash-med;
}

.flash-connection-retry {
    animation-name: flash-connection-retry;
}

.flash-connection-offline {
    animation-name: flash-connection-offline;
}

.flash-fast,
.flash-connection-offline {
    animation-duration: 0.2s;
    animation-play-state: running;
}

.flash-slow,
.flash-connection-retry {
    animation-duration: 0.5s;
    animation-play-state: running;
}

@keyframes flash-generic {
    from {
        color: black;
    }

    to {
        color: dimgray;
    }
}

@keyframes flash-fire {
    from {
        color: var(--color-fire-text);
    }

    to {
        color: var(--color-fire);
    }
}

@keyframes flash-med {
    from {
        color: var(--color-med-text);
    }

    to {
        color: var(--color-med);
    }
}

@keyframes flash-connection-retry {
    from {
        background-color: orange;
    }

    to {
        background-color: darkorange;
    }
}

@keyframes flash-connection-offline {
    from {
        background-color: red;
    }

    to {
        background-color: darkred;
    }
}


.connection-indicator-online,
.connection-indicator-retry,
.connection-indicator-offline {
    position: absolute;
    bottom: 0px;
    right: 0px;
    width: 10px;
    height: 10px;
    z-index: 2147483647;
}

.connection-indicator-online {
    display: none;
    background-color: green;
}

.connection-indicator-retry {
    background-color: orange;
}

.connection-indicator-offline {
    background-color: red;
}

/* Zone1 */
.page,
.page-fire,
.page-med {
    top: 0;
    left: 0;
    position: absolute;
    height: 100%;
    width: 100%;
    flex-direction: column;
    color: var(--color-page-text);
    background-color: var(--color-page);
}

.page-dark {
    color: var(--color-dark-text);
    background-color: var(--color-dark);
}

.page-visible {
    display: flex;
}

.page-hidden {
    display: none;
}


.page-header {
}

.page-header-large {
}

.page-fill {
    flex: 1;
    overflow: hidden;
}

.page-footer {
}

/* Zone1 */
.header,
.header-fire,
.header-med,
.header-text,
.header-timer,
.header-clock {
    border-left: none;
    font-size: var(--font-size-header);
    min-height: var(--header-height);
    position: relative;
}

.header {
    max-height: var(--header-height);
}

.header-text {
    display: inline-block;
    position: absolute;
    top: 0px;
}

.page-header-large .header-text {
    position: relative;
    max-width: calc(100% - var(--indicator-width) - var(--header-clock-width));
    min-height: calc(2 * var(--header-height));
}

.header-logo {
    overflow: hidden;
    display: inline-block;
    max-height: var(--header-height);
    margin-right: 10px;
}

.header-timer {
    position: absolute;
    top: 0px;
    right: var(--header-clock-width);
    text-align: right;
    padding-right: 16px;
}

.page-header-large .header-timer {
    right: 0px;
    top: var(--header-height);
}

.header-clock {
    position: absolute;
    top: 0px;
    right: 0px;
    padding-right: 16px;
    text-align: right;
}

.page-header-large .header-clock {
}


/* Zone1 */
.page-title {
    font-size: var(--font-size-large);
    color: var(--color-title);
}

.page-body {
    padding: 5px;
}

/* Zone1 */
.page-body-info {
    padding: 10px;
}

.page {
    border-left: 10px solid lightgray;
}

.page-fire {
    border-left: 10px solid red;
}

.page-med {
    border-left: 10px solid yellow;
}

.header,
.header-fire,
.header-med {
    color: var(--color-header-text);
    background-color: var(--color-header);
}

.header-fire {
    color: var(--color-fire-text);
    background-color: var(--color-fire);
}

.header-med {
    color: var(--color-med-text);
    background-color: var(--color-med);
}

.intervention,
.intervention-address,
.intervention-town,
.intervention-info,
.intervention-callgroup,
.intervention-map,
.intervention-vehicles,
.intervention-staff,
.intervention-staff-med {
    font-size: var(--font-size-default);
}

.intervention-address,
.intervention-town,
.intervention-callgroup,
.intervention-info,
.intervention-map {
}

.intervention-address-left {
    display: inline-block;
    left: 0px;
}

.intervention-town-right {
    display: inline-block;
    position: absolute;
    right: 5px;
    text-align: right;
}

.intervention-address {
    font-size: var(--font-size-large);
}

.intervention-info,
.intervention-info-detail {
    color: black;
    background-color: lightyellow;
    border: 1px solid dimgray;
    padding-left: 5px;
    padding-right: 5px;
    padding-top: 1px;
    padding-bottom: 1px;
}

.intervention-info-detail {
    overflow: hidden;
}

.intervention-map {
    height: 100%;
    overflow: hidden;
    border: 1px solid lightgray;
}

.intervention-map-detail {
    height: 100%;
    overflow: hidden;
    border: 1px solid lightgray;
}

.intervention-vehicles,
.intervention-vehicles-foreign,
.intervention-vehicles-foreign-small {
    width: 100%;
    min-height: 80px;
}

.intervention-vehicles {
}

.intervention-vehicles-foreign {
}

.intervention-vehicles-foreign-small {
}


.intervention-staff {
    vertical-align: top;
    border-collapse: collapse;
    padding-right: 10px;
}

.intervention-staff-med {
    display: inline-block;
    position: relative;
    border-collapse: collapse;
}

.staff-vehicle-status {
    min-width: 10px;
    max-width: 10px;
}

.staff-vehicle-foreign {
    color: var(--color-foreign-text);
}

.vehicle-status {
}

.staff-vehicle-topline {
    border-top: 2px solid dimgray;
}

.staff-vehicle-name {
    padding-left: 2px;
    padding-right: 10px;
}

.staff-vehicle-station {
    padding-left: 2px;
    padding-right: 10px;
    font-size: var(--font-size-small);
}

.staff-person-status {
    min-width: 10px;
    max-width: 10px;
}

.staff-person-name {
    padding-left: 2px;
    padding-right: 10px;
    font-size: var(--font-size-small);
}

.staff-person-function {
    font-size: var(--font-size-small);
}

.vehicle-train-vehicle,
.vehicle-status-vehicle {
    display: inline-block;
    min-width: 350px;
    min-height: 80px;
    position: relative;
    border: 2px solid black;
    border-radius: 5px;
}

.vehicle-train-vehicle {
}

.vehicle-train-staff {
    display: inline-block;
}

.vehicle-train-staff-foreign {
    top: 20px;
}

.vehicle-status-vehicle {
    display: flex;
    flex: 0;
    flex-direction: column;
    overflow: clip;
    padding: 1px;
    color: gray;
    min-width: 500px;
    min-height: 100px;
    margin-bottom: 5px;
}

.vehicle-train-vehicle-foreign,
.vehicle-train-vehicle-foreign-small,
.vehicle-train-vehicle-foreign-dummy {
    border: 2px dashed darkred;
    color: var(--color-foreign-text);
    top: 15px;
}

.vehicle-train-vehicle-foreign-small {
    min-width: 125px !important;
    bottom: 0px !important;
}

.vehicle-train-vehicle-foreign-dummy {
    min-width: 50px !important;
    min-height: 50px !important;
    top: 0px !important;
    bottom: 0px !important;
}

.vehicle-train-vehicle-name {
    position: absolute;
    top: 1px;
    left: 1px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: clip;
    max-width: calc(100% - 50px);
}

.vehicle-train-vehicle-crew {
    position: absolute;
    text-align: right;
    top: 1px;
    right: 5px;
}

.vehicle-train-vehicle-station {
    position: absolute;
    bottom: 1px;
    left: 1px;
    font-size: var(--font-size-small);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: clip;
    max-width: calc(100% - 5px);
}


.vehicle-status-vehicle-name {
    font-size: var(--font-size-large);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: clip;
    max-width: calc(100% - 5px);
}

.vehicle-status-vehicle-remark {
    font-size: var(--font-size-small);

    display: flex;
    flex-direction: row;
    gap: 500px;
    padding-right: 500px;
    width: max-content;

    p {
        margin: 0px;
    }
}

.vehicle-status-vehicle-remark-animation {
    animation: vehicle-status-vehicle-remark-marquee 10s linear infinite forwards;
}

@keyframes vehicle-status-vehicle-remark-marquee {
    to {
        transform: translateX(-50%);
    }
}

.vehicle-status-vehicle-duration {
    font-size: var(--font-size-small);
    text-align: end;
}

.vehicle-overview {
    display: flex;
    gap: 10px;
}

.personnel-overview {
    font-size: var(--font-size-dummy);
    width: 100%;
    /*border: 1px solid darkgray;*/
}

.personnel-overview-box {
    padding: 2px;
    border: 1px solid var(--color-page);
}

.personnel-overview-column-title {
    font-size: var(--font-size-small) !important;
}

.personnel-overview-group-title {
    font-weight: bold;
}

.personnel-overview-text {
    font-size: var(--font-size-tiny);
}

.person-status-nonvisible {
    visibility: hidden;
}

.margin-all,
.margin-vertical,
.margin-top {
    margin-top: 5px;
}

.margin-all,
.margin-vertical,
.margin-bottom {
    margin-bottom: 5px;
}

.margin-all,
.margin-horizontal,
.margin-left {
    margin-left: 5px;
}

.margin-all,
.margin-horizontal,
.margin-right {
    margin-right: 5px;
}
