@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap');

body {
    margin: 0;
    padding: 0;
    background-color: rgb(235, 235, 235);
    overflow-y: hidden;
}

body#razeniBody {
    overflow-y: scroll;
    height: 101%;
}

.main_body {
    margin-left: 4rem;
}

#about_body {
    margin-top: 4rem;
    font-family: "DM Sans", sans-serif;
}

* {
    font-family: "DM Sans", sans-serif;
}

#loading_background {
    margin-left: 20rem;
    position: fixed;
    z-index: 10;
    height: 100%;
    width: 100%;
    opacity: 0.1;
}

#loading_line {
    background-color: #000000;
    width: 0rem;
    max-width: 19.5rem;
    height: 0.1rem;
    margin-left: 0.75rem;
    border-radius: 999px;
    transition: 0.2s all;
}

#loading_icon {
    height: 2rem;
    margin-left: -38rem;
    transition: 2s transform;
    scale: 0.5;
}

#loading_screen {
    position: absolute;
    z-index: 5;
    background-color: white;
    height: 100dvh;
    width: 100dvw;
    display: grid;
    place-content: center;
    font-size: 2rem;
}

#load_video {
    position: absolute;
    z-index: 6;
}

@keyframes loading_end {
    from {opacity: 1}
    to {opacity: 0;}
}

#loading_text {
    position: absolute;
    font-size: 2rem;
    color: #002664;
    bottom: 0;
    z-index: 8;
    margin-left: 2rem;
    font-weight: 300;
    font-family: "CD Fedra", sans-serif;
}

#gradient_video_bg {
    position: absolute;
    width: 100dvw;
    height: 8.5dvh;
    background: white;
    min-height: 5rem;
    z-index: 7;
    bottom: 0;
}

#output {
    visibility: hidden;
    cursor: pointer;
}

#search_button {
    border-color: transparent;
    border-radius: 0.65rem;
    padding: 0.2rem;
    background-color: #002664;
    color: white;
    transition: 0.1s all;
    cursor: pointer;
    width: 7rem;
    margin-top: 0.5rem;
    height: 2.537rem;
    float: right;
}

#title_img {
    margin-left: -1.5rem;
    margin-bottom: 1rem;
    margin-top: 0.5rem;
    height: 4.5rem;
}

#satellite_button {
    position: static;
    margin-top: -1.85rem;
    border-radius: 999px;
    padding: 0.2rem;
    background-color: transparent;
    color: #0b57d0;
    transition: 0.1s all;
    cursor: pointer;
    width: 10rem;
    height: 2.537rem;
    float: left;
    margin-left: 3rem;
    border-color: transparent;
}

#trainline_checkbox_div {
    margin-left: 0.3rem;
    margin-top: 1.1rem;
}

.main_container_text {
    margin-left: 0.35rem;
}

#search_button:hover {
    transition: 0.1s all;
    background-color: #0f5cd8;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

#satellite_button:hover {
    transition: 0.1s all;
    box-shadow: 0 0 0;
    text-decoration: underline;
}   

#search_button:active {
    scale: 0.95;
    background-color: #216adf;
}

#satellite_button:active {
    scale: 0.95;
}

.input_text {
    border-width: 0;
    border-style: solid;
    margin-left: 0.5rem;
    width: calc(100% - 1.7rem);
    height: 2.5%;
    padding: 0.6rem;
    border-radius: 0.7rem;
    background-color: #e4eeff;
    outline-color: #99b8e9;
    min-height: 1.1rem;
}

::-webkit-scrollbar {
    width: 0.2rem;
}

::-webkit-scrollbar-track {
    background: #e4eeff;
}

::-webkit-scrollbar-thumb {
    background: #3e4e69;
}

::-webkit-scrollbar-thumb:hover {
    background: #555;
}

#main_container {
    position: absolute;
    overflow-y: scroll;
    width: 22rem;
    height: 100%;
    padding: 0.5rem;
    padding-right: 1.5rem;
    background-color: white;
    z-index: 10;
    animation: 0.5s loadMapContainer forwards;
}

@keyframes loadMapContainer {
    from{margin-left: -2rem; opacity: 0;}
    to{opacity: 1}
}

a {
    text-decoration: none;
    color: #0d58cf;
    cursor: pointer;
}

.sidepanel_link_text {
    position: fixed;
    bottom: 1rem;
    z-index: 2;
    color: #0d58cf;
}

.sidepanel_link_text:hover {
    text-decoration: underline;
}

#about_text {
    left: 0.9rem;
    position: fixed;
    bottom: 1rem;
    z-index: 12;
}

#departureboards_text {
    left: 17.5rem;
}

#map {
    height: 100dvh;
    position: relative;
    z-index: 0;
}

input:disabled {
    cursor: no-drop;
    color: gray;
    user-select: none;
}

#divider {
    width: 100%;
    margin-left: 0.5rem;
    margin-top: -2rem;
    transition: 0.5s margin;
    height: 0.2%;
    background-color: #ededed;
}

#divider_testing {
    background-color: black;
    height: 0.1rem;
    margin-top: 2.5rem;
}

#notice {
    position: absolute;
    background-color: white;
    margin-top: 1rem;
    z-index: 3;
    margin-left: 25rem;
    padding: 0.7rem;
    border-radius: 0.3rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    visibility: visible;
    cursor: pointer;
    text-wrap: nowrap;
}

#notice2 {
    position: absolute;
    background-color: white;
    margin-top: 5.5rem;
    z-index: 3;
    margin-left: 23rem;
    padding: 0.7rem;
    border-radius: 0.3rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    visibility: visible;
    cursor: pointer;
    text-wrap: nowrap;
}

#about_gradient {
    background: linear-gradient(to top, white, transparent);
    position: fixed;
    z-index: 11;
    bottom: 0;
    width: 20rem;
    height: 7rem;
}

.notice_textshift {
    margin-left: 1.3rem;
}

#notice_redbox {
    width: 1rem;
    height: 3.3rem;
    border-radius: 0.2rem;
    background-color: #edc163;
    position: absolute;
    margin-top: -3rem;
    margin-left: -0.3rem;
}

#dev_notice {
    font-size: 12px;
    color: #0d58cf;
    font-weight: 1000;
    margin-top: -2.25rem;
    margin-left: 84%;
    margin-bottom: 2.5rem;
    user-select: none;
}

#title_about {
    user-select: none;
    margin-top: 4rem;
    margin-left: 2.5rem;
    margin-bottom: 3rem;
    margin-left: 2.5rem;
    color: black;
    font-size: 1.2rem;
}

#connection_card {
    width: 18rem;
    height: 4rem;
    position: absolute;
    margin-right: 1rem;
    background-color: white;
    border-radius: 1rem;
    bottom: 0;
    margin-bottom: 2rem;
    right: 0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    padding: 1rem;
    visibility: hidden;
    z-index: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#connection_details_card {
    width: 18rem;
    height: 10rem;
    position: absolute;
    margin-right: 1rem;
    background-color: white;
    border-radius: 1rem;
    bottom: 0;
    right: 0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    padding: 1rem;
    z-index: 1;
    margin-bottom: 9rem;
    visibility: hidden;
}

#card_vehicle_img {
    width: 1.4rem;
    height: 1.4rem;
    filter: grayscale(1);
    margin-bottom: -0.35rem;
}

#card_route, #card_company {
    text-overflow: ellipsis;
    white-space: nowrap;
}

#card_refresh_icon {
    filter: invert(1);
    width: 1.5rem;
    height: 1.5rem;
    float: right;
    cursor: pointer;
    transition: 0.5s all;
    rotate: 0deg;
}

#about_text_body {
    opacity: 0;
    padding: 2rem;
    padding-top: 0;
    animation: 1s fade_in forwards;
    animation-delay: 0.2s;
}

#about_header {
    border-bottom: 1px solid rgb(0 0 0 / 15%);
    transition: 1s all;
    margin-bottom: 2rem;
    margin-top: -1rem;
}

#dark_mode_button {
    position: absolute;
    z-index: 4;
    right: 1rem;
    top: 1rem;
    border-style: solid;
    transition: 0.1s all;
    padding: 0.4rem;
    padding-left: 0.8rem;
    padding-right: 0.8rem;
    border: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    background-color: white;
    border-radius: 0.4rem;
    cursor: pointer;
}

#location_icon {
    height: 1.2rem;
    width: 1.2rem;
    margin-top: 0.25rem;
}

#gps_button {
    position: absolute;
    z-index: 4;
    right: 4.2rem;
    top: 1rem;
    border-style: solid;
    transition: 0.1s all;
    padding: 0.1rem;
    padding-left: 0.8rem;
    padding-right: 0.8rem;
    padding-top: 0.1rem;
    padding-bottom: 0.1rem;
    border: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    background-color: white;
    border-radius: 0.4rem;
    cursor: pointer;
}

#dark_mode_button:hover {
    background-color: #f1f6ff;
    border: none;
}

#dark_mode_button:active {
    scale: 0.98;
}

@keyframes fade_in {
    from {opacity: 0;}
    to {opacity: 1;}
}

@keyframes pin_changefocus {
    0% {scale: 1;}
    50% {scale: 0.8; opacity: 0;}
    100% {scale: 1;}
}

@keyframes connections_load {
    from {opacity: 0; margin-top: -0.3rem;}
    to {opacity: 1;}
}

@keyframes connection_card_load {
    from {opacity: 0; margin-bottom: 0rem; scale: 0.92;}
    to {opacity: 1;}
}

@keyframes connection_details_card_load {
    from {opacity: 0; margin-bottom: 5.5rem; scale: 0.98;}
    to {opacity: 1;}
}

#moreInfoButton {
    margin-top: 1.5rem;
    padding: 0.5rem;
    padding-left: 6.2rem;
    padding-right: 6.2rem;
    border: none;
    background-color: #e4eeff;
    border-radius: 0.6rem;
    color: #002664;
    cursor: pointer;
    transition: 0.2s all;
}

#moreInfoButton:hover {
    background-color: #adcbff;
}

#moreInfoButton:active {
    background-color: #0b57d0;
    color: white;
    scale: 0.97;
}

/* Toto ve veřejné verzi odebrat !! */
.leaflet-bottom {
    bottom: 0;
    visibility: hidden;
}

#database_line_relay_object {
    display: none;
}

#background-darken {
    background-color: black;
    opacity: 0;
    position: fixed;
    height: 100dvh;
    width: 100dvw;
    z-index: 12;
    transition: 0.5s opacity;
    visibility: hidden;
    bottom: 0;
    margin-left: -4rem;
}

#moreInfoPanel {
    position: absolute;
    height: 30rem;
    width: 50rem;
    border-radius: 0.6rem;
    background-color: #ffffff;
    z-index: 13;
    left: 50%;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    visibility: hidden;
    opacity: 0;
    padding: 1rem;
    padding-left: 2rem;
    padding-right: 2rem;
}

#moreInfoPanel_title {
    font-size: 1.5rem;
}

#moreInfoPanel_header {
    cursor: grab;
}

#moreInfoPanel_closebutton {
    float: right;
    margin-top: -3rem;
    cursor: pointer;
}

#razeni_button, #dopravce_button {
    padding: 0.5rem;
    padding-left: 2rem;
    padding-right: 2rem;
    border: none;
    background-color: #e4eeff;
    border-radius: 0.6rem;
    color: #002664;
    cursor: pointer;
    transition: 0.2s all;
}

#razeni_button:hover, #dopravce_button:hover {
    background-color: #adcbff;
}

#razeni_button:active, #dopravce_button:active {
    background-color: #0b57d0;
    color: white;
    scale: 0.97;
}

#about_icon_div {
    bottom: 0.5rem;
    position: fixed;
    margin-left: 0.8rem;
}

/* RAZENI SAMOSTATNA STRANKA */

#razeniBody, #odjezdBody {
    padding: 0;
    margin: 0;
    height: 208vh;
    background-image: url(../images/Blueprint_white.svg);
    background-size: 1rem;
    overflow-x: hidden;
    margin-left: 4rem;
}

#razeni_textbox, #razeni_textbox_stanice, #razeni_textbox_datum {
    padding: 1rem;
    padding-right: 10rem;
    margin-top: 1rem;
    margin-left: 2rem;
    background-color: white;
    border: 0;
    border-radius: 0.5rem;
    margin-bottom: 1rem;
    width: 13rem;
}

#razeni_textbox_stanice, #razeni_textbox_datum {
    margin-top: 0;
}

#razeni_textbox_datum {
    margin-left: 2rem;
    width: 13rem;
}

#razeni_searchbutton {
    padding: 1rem;
    padding-left: 2rem;
    padding-right: 2rem;
    margin-top: 0;
    margin-left: 2rem;
    height: 3rem;
    background-color: #00285b;
    width: 24rem;
    border: 0;
    border-radius: 0.5rem;
    color: white;
    cursor: pointer;
    transform: translateY(0.3rem);
    transition: 0.3s all;
}

#razeni_searchbutton:hover {
    background-color: #0247be;
    transition: 0.3s all;
}

#razeni_searchbutton:active {
    background-color: #0b57d0;
    color: white;
    scale: 0.97;
}

#razeni_header, #departureboard_header {
    display: grid;
    place-items: flex-start;
}

#czmhd_razeni_logo {
    display: grid;
    place-items: flex-start;
    height: 4rem;
    margin-top: 2rem;
}

#back_hyperlink {
    margin-left: 2rem;
}

#razeni_text_razenipage {
    margin-left: 2rem;
    margin-top: 2rem;
    margin-bottom: 2rem;
    color: black;
}

.svc-desc-image {
    margin-right: 1.5rem;
}

#razeni_title {
    margin-left: 2rem;
    color: black;
}

#razeni_subtitle {
    font-weight: 300;
    font-size: 1rem;
    margin-left: 2rem;
    margin-top: -1.5rem;
    margin-bottom: 1rem;
}

#moreinfotext {
    color: black;
}

#sestavovatel_link {
    color: blue;
    text-decoration: underline;
}

#icon_space {
    margin-left: 2rem;
    margin-top: 2rem;
    max-width: 50rem;
    padding: 1rem;
    display: flex;
    justify-content: space-evenly;
    border-radius: 10px;
    background-color: white;
}

#pictograms {
    margin-top: 1rem;
    margin-bottom: 1rem;
    visibility: hidden;
}

img.trainCar {
    margin-right: 0.3rem;
    cursor: pointer;
}

#razeni_searchButtonImg {
    margin-top: -0.4rem;
}

#side_panel {
    width: 4rem;
    height: 100%;
    position: fixed;
    background-color: #f7faff;
    margin-left: -4rem;
    z-index: 11;
}

#side_panel_iconDiv {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.side_panel_icon {
    height: 2.2rem;
    width: 2.2rem;
    margin-top: 1rem;
    cursor: pointer;
    display:inline;
}

.side_panel_icon:after {
    content:"\a";
    white-space: pre;
}

#subtitle {
    margin-left: 20.5rem;
    margin-top: -2.8rem;
    font-family: "DM Sans";
    font-size: 1.5rem;
    color: #00285b;
    font-weight: 500;
    animation: 0.5s loadRazeni forwards;
}

#razeniSubtitleContainer {
    display: flex;
    justify-content: left;
}

#trainRazeniDiv {
    margin-left: 2rem;
}

#bottom_panel_mobile,#bottom_panel_mobile_MAP {
    display: none;
}

#RAZENI_SECTIONS, #razeni_mobile_form_title {
    animation: 0.5s loadRazeni forwards;
}

#razeni_mobile_form_title {
    display: none;
}

@keyframes loadRazeni {
    from{opacity: 0; scale: 0.98;}
    to{}
}

@media screen and (max-width: 1000px) {
    #loading_screen {
        display: none;
    }

    body {
        margin-left: -2rem;
    }

    #about_header {
        border-bottom: 1px solid rgb(0 0 0 / 0%);
        margin-left: 0;
        display: flex;
        justify-content: center;
        transition: 1s all;
    }
    
    #side_panel {
        display: none;
    }

    #notice {
        display: none;
    }

    body.main_body {
        margin-left: 0;
        position: fixed;
        overflow-y: hidden;
    }

    html {
        width: auto!important; 
        overflow-x: hidden!important;
    }

    #razeniSubtitleContainer {
        display: none;
    }
    
    #main_container {
        position: static;
        height: 10.3rem;
        width: 95dvw;
        overflow-y: hidden;
        overflow-x: hidden;
        animation: emptyAnim 1s forwards;
    }

    @keyframes emptyAnim{
        from{}
        to{}
    }

    #divider {
        display: none;
    }

    #output {
        display: none;
    }

    #map {
        width: 100dvw;
        position: fixed;
        z-index: 0;
    }

    #loading_icon {
        margin-top: -1rem;
    }

    #connection_card {
        position: fixed;
        z-index: 1;
        bottom: 3rem;
        scale: 0.8;
        margin-right: -5dvw;
    }

    #connection_details_card {
        position: fixed;
        z-index: 1;
        bottom: 3rem;
        scale: 0.8;
        margin-right: -5dvw;
        margin-bottom: 6.5rem;
    }

    #background-darken {
        position: fixed;
        z-index: 3;
        scale: 60;
    }

    #moreInfoPanel {
        position: fixed;
        height: 30rem;
        width: 85dvw;
        border-radius: 0;
        z-index: 13;
        left: 50%;
        left: 50%;
        top: 0;
        padding: 1rem;
        padding-left: 2rem;
        padding-right: 2rem;
    }

    #map_buttons {
        position: fixed;
        z-index: 11;
        right: 0.2rem;
    }

    #gps_button {
        right: 4.2rem;
    }

    #title_img {
        height: 3.5rem;
    }

    .input_text {
        width: calc(69.5% - 1.7rem);
        margin-top: -1rem;
    }

    #search_button {
        margin-top: -2.3rem;
        height: 2.3rem;
        width: calc(100% - (69.5% - 1.7rem) - 2.2rem)
    }

    #trainline_checkbox_div {
        margin-top: 0.5rem;
    }

    #title_img_div {
        justify-content: center;
        display: flex;
    }

    /* ŘAZENÍ */
    #razeni_text_razenipage {
        margin-left: 0;
        margin-top: 0;
        margin-bottom: 2rem;
        color: black;
    }
    
    #razeni_header {
        display: flex;
        justify-content: center;
    }

    #razeni_textbox {
        margin-left: 0;
    }

    #razeni_textbox_stanice {
        margin-left: 0;
    }

    #razeni_maindiv, #razeni_maindiv2, #razeni_maindiv3, #razeni_maindiv4, #razeni_mobile_form_title {
        display: flex;
        justify-content: center;
        margin-left: 0;
    }

    #razeni_mobile_form_title {
        display: flex;
        color:#002664;
    }

    #razeni_maindiv3 {
        margin-left: -2rem;
    }

    #razeni_textbox_datum {
        display: flex;
    }

    #pictograms, #razeni_titleDiv {
        display: flex;
        justify-content: center;
        margin-top: 0;
    }

    #icon_space {
        flex-wrap: wrap;
        scale: 0.95;
        margin-left: 0;
        margin-right: -4dvw;
        transform: translateX(-0.3rem);
    }

    #trainImg_space {
        display: flex;
    }

    #razeni_searchbutton {
        margin-left: 0;
    }

    #textOutputDiv {
        display: flex;
    }

    #subtitle {
        display: none;
    }

    #trainRazeniDiv {
        max-width: 2000dvw;
        overflow: scroll;
        overflow-y: hidden;
        margin-left: 0;
    }

    #title_about_img {
        margin-left: -10dvw;
        margin-right: 0;
    }

    img.trainCar {
        margin-right: 0.2rem;
        height: 3rem;
        margin-bottom: 1rem;
    }

    #bottom_panel_mobile,#bottom_panel_mobile_MAP {
        visibility: visible;
        position: fixed;
        z-index: 2;
        bottom: 0;
        width: calc(100dvw + 1rem);
        height: 5rem;
        background-color: white;
        display: flex;
        justify-content: space-evenly;
    }

    #bottom_panel_mobile_MAP {
        width: calc(100dvw + 5rem);
        margin-left: -4rem;
    }

    #bottom_panel_mobile {
        margin-left: -2rem;
    }

    #chosenAppPillMobile {
        background-color: #e8f2ff;
        height: 2.5rem;
        width: 4.5rem;
        margin-top: 1rem;
        display: flex;
        justify-content: center;
        padding: 0.1rem;
        border-radius: 999px;
        animation: 0.5s bubbleShowUp forwards;
    }

    @keyframes bubbleShowUp {
        from{opacity: 0; width: 2rem;}
        to{opacity: 1; width: 4.5rem;}
    }

    #razeniBottomPanelIcon {
        margin-top: 0.3rem;
        height: 2rem;
    }

    #mapBottomPanelIcon {
        height: 2rem;
        margin-top: 1.3rem;
    }

    #razeni_subtitle {
        margin-top: 4rem;
    }
}

/* Odjezdová tabule BUS */
#db_tableDiv {
    padding: 3rem;
}

#db_table {
    width: calc(100% - 1rem);
    height: 46rem;
    border-collapse: collapse;
    border-spacing: 0;
    animation: 0.5s loadRazeni forwards;
}

tr:nth-child(even) {
    background-color: #022b56;
    border-color: transparent;
    height: 1rem;
}

tr {
    background-color: #2b4b70;
    color: white;
    border-color: transparent;
    height: 1rem;
}

td {
    padding-left: 2rem;
}

#table_header {
    height: 1rem;
    font-size: 1.7rem;
    background-color: #022b56;
}

#zastavka_input {
    padding: 1rem;
    background-color: transparent;
    color: white;
    border-style: solid;
    border-color: #2b4b70;
    border-radius: 0.8rem;
}

#legenda {
    font-weight: bold;
}

#digitalClock {
    float: right;
    margin-right: 3rem;
    font-size: 2rem;
    font-family: sans-serif;
    font-weight: bold;
    margin-top: 0.333rem;
}

#DBerrorMessageSpace {
    margin-left: 2rem;
    font-family: sans-serif;
    font-weight: bolder;
}

#legenda {
    background-color: #022b56;
}