/* =========================================================
   LOGIN
   ========================================================= */

.tm-login {
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    padding: 30px;
    box-sizing: border-box;
	
}

.tm-login h2 {
    margin: 0 0 30px 0;
    font-size: 28px;
    font-weight: 600;
}


/* ---------------------------------------------------------
   Formular
   --------------------------------------------------------- */

.tm-login-form {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 14px 12px;
    align-items: center;
}

.tm-login-form label {
    font-size: 15px;
    color: #333;
}

.tm-login-form input {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 15px;
    background: #fff;
}

.tm-login-form input:focus {
    outline: none;
    border-color: #1976d2;
    box-shadow: 0 0 0 2px rgba(25,118,210,0.12);
}


/* ---------------------------------------------------------
   Anmelden
   --------------------------------------------------------- */

.tm-login-button {
    grid-column: 2;
    justify-self: start;

    padding: 10px 22px;
    border: none;
    border-radius: 6px;

    background: #1976d2;
    color: white;

    font-size: 15px;
    cursor: pointer;
}

.tm-login-button:hover {
    background: #1565c0;
}


/* ---------------------------------------------------------
   Trennlinie "oder"
   --------------------------------------------------------- */

.tm-login-separator {
    display: flex;
    align-items: center;
    gap: 12px;

    margin: 25px 0 15px 0;

    color: #777;
    font-size: 14px;
}

.tm-login-separator::before,
.tm-login-separator::after {
    content: "";
    flex: 1;
    height: 1px;
    background: #ddd;
}


/* ---------------------------------------------------------
   Google
   --------------------------------------------------------- */

.tm-google-button {
    width: 100%;
    padding: 10px 15px;

    border: 1px solid #ccc;
    border-radius: 6px;

    background: #f5f5f5;
    color: #777;

    font-size: 15px;
}

.tm-google-button:not(:disabled) {
    cursor: pointer;
}

.tm-google-button:disabled {
    opacity: 0.7;
}


/* ---------------------------------------------------------
   Registrierung
   --------------------------------------------------------- */

.tm-register-link {
    margin-top: 22px;
    text-align: center;

    font-size: 14px;
    color: #555;
}

.tm-register-link a {
    color: #1976d2;
    text-decoration: none;
    font-weight: 500;
}

.tm-register-link a:hover {
    text-decoration: underline;
}


/* ---------------------------------------------------------
   Smartphone
   --------------------------------------------------------- */

@media (max-width: 600px) {

    .tm-login {
        max-width: none;
        padding: 20px;
    }

    .tm-login-form {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .tm-login-button {
        grid-column: 1;
        width: 100%;
        margin-top: 8px;
    }

}

/* ---------------------------------------------------------
   User-Button
   --------------------------------------------------------- */

.tm-user-button {
    color: #808080;
    background: transparent;
    border: 2px solid transparent;
    border-radius: 50%;
    cursor: pointer;
}


/* Angemeldet */

.tm-user-button.logged-in {
    color: #2e9d50;
    border-color: #2e9d50;
}


/* Hover */

.tm-user-button:hover {
    opacity: 0.8;
}

/* ---------------------------------------------------------
   Registrierung Meldung
   --------------------------------------------------------- */


.tm-registration-success {
    text-align: center;
    padding: 30px 10px;
}

.tm-registration-success-title {
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 20px;
}

.tm-registration-success-text {
    font-size: 16px;
    line-height: 1.6;
}

/* =================================================
   PROFIL
   ================================================= */

.tm-profile {

    width: 700px;
    max-width: calc(100vw - 40px);

    box-sizing: border-box;

    padding: 28px 32px 30px;

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 20px 12px;

}


/* -------------------------------------------------
   Überschrift
   ------------------------------------------------- */

.tm-profile h2 {

    grid-column: 1 / -1;

    margin: 0;

    font-size: 26px;
    font-weight: 600;

}


/* -------------------------------------------------
   Profilbereiche
   ------------------------------------------------- */

.tm-profile-section {

    box-sizing: border-box;

    margin: 0;

    padding: 18px 20px 16px;

    border: 1px solid #dddddd;
    border-radius: 8px;

    background: #fafafa;

}


/* Geschwindigkeit + Verbrauch
   liegen automatisch nebeneinander */


/* Karten-Layer über beide Spalten */

.tm-profile-section:nth-of-type(3) {

    grid-column: 1 / -1;

}


/* -------------------------------------------------
   Überschriften der Bereiche
   ------------------------------------------------- */

.tm-profile-section h3 {

    margin: 0 0 14px 0;

    padding-bottom: 10px;

    font-size: 18px;
    font-weight: 600;

    border-bottom: 1px solid #dddddd;

}


/* -------------------------------------------------
   Zeilen
   ------------------------------------------------- */

.tm-profile-row {

    display: flex;

    align-items: center;

    min-height: 42px;

}


.tm-profile-row + .tm-profile-row {

    border-top: 1px solid #eeeeee;

}


.tm-profile-row label {

    flex: 1;

    min-width: 0;

    padding-right: 10px;

    font-size: 15px;

}


/* -------------------------------------------------
   Zahlenfelder
   ------------------------------------------------- */

.tm-profile-value {

    display: flex;

    align-items: center;

    gap: 6px;

    flex-shrink: 0;

}


.tm-profile-value span {

    width: 60px;

    font-size: 13px;

    color: #666666;

}


.tm-profile-input {

    width: 75px;

    box-sizing: border-box;

    padding: 7px 7px;

    border: 1px solid #cccccc;
    border-radius: 5px;

    background: white;

    text-align: right;

    font-size: 15px;

}


/* -------------------------------------------------
   Layer-Auswahl
   ------------------------------------------------- */

.tm-profile-select {

    width: 300px;

    max-width: 55%;

    box-sizing: border-box;

    padding: 7px 9px;

    border: 1px solid #cccccc;
    border-radius: 5px;

    background: white;

    font-size: 15px;

}


/* -------------------------------------------------
   Speichern
   ------------------------------------------------- */

.tm-profile-actions {

    grid-column: 1 / -1;

    display: flex;

    justify-content: flex-end;

    margin: 0;

}


/* -------------------------------------------------
   Kleine Bildschirme
   ------------------------------------------------- */

@media (max-width: 700px) {

    .tm-profile {

        width: 100%;

        padding: 20px;

        grid-template-columns: 1fr;

    }


    .tm-profile h2 {

        grid-column: 1;

    }


    .tm-profile-section {

        grid-column: 1 !important;

    }


    .tm-profile-actions {

        grid-column: 1;

    }


    .tm-profile-select {

        max-width: 60%;

    }

}

/* -------------------------------------------------
   Zwei obere Bereiche nebeneinander
   ------------------------------------------------- */

.tm-profile-section {

    box-sizing: border-box;

    margin-bottom: 20px;

    padding: 18px 20px 16px;

    border: 1px solid #dddddd;
    border-radius: 8px;

    background: #fafafa;

}

/* -------------------------------------------------
   Überschriften
   ------------------------------------------------- */

.tm-profile h2 {

    margin: 0 0 24px 0;

    font-size: 26px;
    font-weight: 600;

}


.tm-profile-section h3 {

    margin: 0 0 14px 0;

    padding-bottom: 10px;

    font-size: 18px;
    font-weight: 600;

    border-bottom: 1px solid #dddddd;

}


/* -------------------------------------------------
   Zeilen
   ------------------------------------------------- */

.tm-profile-row {

    display: flex;

    align-items: center;

    min-height: 42px;

}


.tm-profile-row + .tm-profile-row {

    border-top: 1px solid #eeeeee;

}


.tm-profile-row label {

    flex: 1;

    padding-right: 10px;

    font-size: 15px;

}


/* -------------------------------------------------
   Zahlenfelder
   ------------------------------------------------- */

.tm-profile-value {

    display: flex;

    align-items: center;

    gap: 6px;

}


.tm-profile-value span {

    width: 60px;

    font-size: 13px;

    color: #666666;

}


.tm-profile-input {

    width: 75px;

    box-sizing: border-box;

    padding: 7px 7px;

    border: 1px solid #cccccc;
    border-radius: 5px;

    background: white;

    text-align: right;

    font-size: 15px;

}


/* -------------------------------------------------
   Profil-Container
   ------------------------------------------------- */

.tm-profile {

    width: 700px;
    max-width: calc(100vw - 40px);

    box-sizing: border-box;

    padding: 28px 32px 30px;

    display: grid;

    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);

    gap: 20px 12px;

}


/* -------------------------------------------------
   Profil-Cards
   ------------------------------------------------- */

.tm-profile-section {

    width: 100%;
    min-width: 0;

    box-sizing: border-box;

    margin: 0;

    padding: 18px 20px 16px;

    border: 1px solid #dddddd;
    border-radius: 8px;

    background: #fafafa;

}


/* -------------------------------------------------
   Karten-Layer über die komplette Breite
   ------------------------------------------------- */

.tm-profile-section:nth-of-type(3) {

    grid-column: 1 / -1;

}


/* -------------------------------------------------
   Überschrift
   ------------------------------------------------- */

.tm-profile h2 {

    grid-column: 1 / -1;

    margin: 0;

    font-size: 26px;
    font-weight: 600;

}