* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;

    width: 100%;
    height: 100%;

    overflow: hidden;

    font-family:
        Arial,
        Helvetica,
        sans-serif;
}


/* =====================================================
   KARTE
====================================================== */

#map {
    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;
}


/* =====================================================
   INFOBOX
====================================================== */

#info {
    position: fixed;

    top: 10px;
    left: 10px;

    z-index: 1000;

    width: 310px;

    padding: 15px;

    background: rgba(0, 0, 0, 0.90);

    color: white;

    border-radius: 14px;

    box-shadow:
        0 4px 20px
        rgba(0, 0, 0, 0.5);
}


/* =====================================================
   TITEL
====================================================== */

.title {
    font-size: 19px;
    font-weight: bold;

    margin-bottom: 14px;
}


/* =====================================================
   LABEL
====================================================== */

.label {
    color: #aaa;

    font-size: 12px;

    margin-top: 8px;
}


/* =====================================================
   GPS STATUS
====================================================== */

#gpsStatus {
    font-size: 18px;

    font-weight: bold;

    margin-top: 4px;
}


/* =====================================================
   KOORDINATEN
====================================================== */

.coordinates {
    font-size: 13px;

    color: #bbb;

    margin-top: 5px;
}


/* =====================================================
   GENAUIGKEIT
====================================================== */

.accuracy {
    font-size: 13px;

    color: #aaa;

    margin-top: 4px;
}


/* =====================================================
   TRENNLINIE
====================================================== */

.separator {
    height: 1px;

    background: #444;

    margin: 14px 0;
}


/* =====================================================
   KM ANZEIGE
====================================================== */

.big {
    font-size: 28px;

    font-weight: bold;

    margin-top: 3px;
}


/* =====================================================
   ENTFERNUNG
====================================================== */

.distance {
    font-size: 17px;

    color: #4cc9f0;

    margin-top: 4px;
}


/* =====================================================
   DATENSTATUS
====================================================== */

.data-status {
    color: #aaa;

    font-size: 12px;

    line-height: 1.4;
}


/* =====================================================
   KM MARKER
====================================================== */

/*
   Jeder KM-Punkt besteht aus:

   - Nadel
   - Kästchen

   Die Nadelspitze liegt exakt auf
   der GPS-Koordinate des KM-Punktes.
*/

.km-marker-container {

    position: relative;

    width: 230px;

    height: 70px;

    background: transparent;

    border: none;

    pointer-events: none;
}


/* =====================================================
   KM NADEL
====================================================== */

.km-pin {

    position: absolute;

    left: 0;

    top: 0;

    width: 24px;

    height: 36px;
}


/*
   Kreis
*/

.km-pin::before {

    content: "";

    position: absolute;

    left: 2px;

    top: 0;

    width: 18px;

    height: 18px;

    background: #e53935;

    border: 3px solid white;

    border-radius: 50%;

    box-shadow:
        0 2px 6px
        rgba(0, 0, 0, 0.55);
}


/*
   Spitze
*/

.km-pin::after {

    content: "";

    position: absolute;

    left: 6px;

    top: 14px;

    width: 0;

    height: 0;

    border-left:
        5px solid transparent;

    border-right:
        5px solid transparent;

    border-top:
        14px solid #e53935;

    filter:
        drop-shadow(
            0 2px 2px
            rgba(0, 0, 0, 0.4)
        );
}


/* =====================================================
   KM KÄSTCHEN
====================================================== */

.km-box {

    position: absolute;

    left: 34px;

    top: -8px;

    min-width: 85px;

    max-width: 180px;

    padding: 6px 9px;

    background: white;

    color: #111;

    border: 2px solid #333;

    border-radius: 6px;

    box-shadow:
        0 2px 7px
        rgba(0, 0, 0, 0.45);

    font-size: 13px;

    line-height: 1.25;

    white-space: normal;
}


/* =====================================================
   AUTOBAHN
====================================================== */

.km-road {

    display: block;

    font-size: 14px;

    font-weight: bold;
}


/* =====================================================
   KM NUMMER
====================================================== */

.km-number {

    display: block;

    margin-top: 2px;

    font-size: 13px;
}


/* =====================================================
   GPS POSITION
====================================================== */

/*
   Deine eigene GPS-Position bekommt
   einen blauen Punkt.
*/

.gps-position-marker {

    width: 22px;

    height: 22px;

    background: #007aff;

    border: 3px solid white;

    border-radius: 50%;

    box-shadow:

        0 0 0 6px
        rgba(0, 122, 255, 0.25),

        0 2px 8px
        rgba(0, 0, 0, 0.5);
}


/* =====================================================
   GPS BUTTON
====================================================== */

.gps-button {

    width: 48px;

    height: 48px;

    background: white;

    border:
        2px solid
        rgba(0, 0, 0, 0.25);

    border-radius: 7px;

    font-size: 22px;

    cursor: pointer;

    box-shadow:
        0 2px 6px
        rgba(0, 0, 0, 0.3);
}


/* =====================================================
   MOBILE
====================================================== */

@media (max-width: 600px) {

    #info {

        top: 7px;

        left: 7px;

        right: 7px;

        width: auto;

        padding: 13px;
    }


    .big {
        font-size: 26px;
    }


    #gpsStatus {
        font-size: 17px;
    }


    .km-box {

        left: 32px;

        max-width: 150px;

        font-size: 12px;
    }

}