/* -----------------------------------------------------
   #01 - TOGETHERS FLOW
   Datei: assets/css/flow.css
----------------------------------------------------- */

:root {

    --flow-bg: #f4f8fc;

    --flow-white: #ffffff;

    --flow-blue: #4d8fbd;

    --flow-blue-dark: #326d98;

    --flow-blue-light: #eaf5fc;

    --flow-blue-border: #cfe4f3;

    --flow-text: #243746;

    --flow-muted: #718394;

    --flow-border: #dce7ef;

    --flow-danger: #d9534f;

    --flow-danger-bg: #fff0f0;

    --flow-success: #2f8f62;

    --flow-success-bg: #edf9f3;

    --flow-shadow:
        0 10px 35px rgba(55, 91, 120, .10);
}


/* -----------------------------------------------------
   #02 - RESET
----------------------------------------------------- */

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    min-height: 100%;
}

body {

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    color: var(--flow-text);

    background: var(--flow-bg);

    font-size: 14px;
}


/* -----------------------------------------------------
   #03 - LOGIN
----------------------------------------------------- */

.flow-login-body {

    width: 100vw;

    min-height: 100vh;

    overflow-x: hidden;
}


.flow-login-layout {

    width: 100vw;

    min-height: 100vh;

    display: grid;

    grid-template-columns:
        minmax(380px, 44%)
        1fr;
}


/* -----------------------------------------------------
   #04 - LOGIN LINKE SEITE
----------------------------------------------------- */

.flow-login-brand {

    min-height: 100vh;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 50px;

    background:

        radial-gradient(
            circle at 10% 10%,
            rgba(255,255,255,.40),
            transparent 35%
        ),

        linear-gradient(
            145deg,
            #8ac1e6,
            #4f91bd
        );

    color: #fff;
}


.flow-brand-content {

    max-width: 450px;
}


.flow-logo {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    height: 52px;

    padding: 0 21px;

    background: rgba(255,255,255,.18);

    border: 1px solid rgba(255,255,255,.45);

    border-radius: 14px;

    font-size: 22px;

    font-weight: bold;

    letter-spacing: 4px;

    backdrop-filter: blur(7px);
}


.flow-brand-content h1 {

    margin:
        30px 0
        15px 0;

    font-size:
        clamp(36px, 4vw, 58px);

    line-height: 1.05;
}


.flow-brand-content p {

    margin: 0;

    font-size: 20px;

    line-height: 1.7;

    color: rgba(255,255,255,.92);
}


/* -----------------------------------------------------
   #05 - LOGIN RECHTE SEITE
----------------------------------------------------- */

.flow-login-area {

    min-height: 100vh;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 40px;
}


.flow-login-card {

    width: 100%;

    max-width: 440px;

    background: var(--flow-white);

    border: 1px solid var(--flow-border);

    border-radius: 20px;

    box-shadow: var(--flow-shadow);

    padding: 42px;
}


.flow-login-card h2 {

    margin:
        0 0
        8px 0;

    font-size: 29px;

    color: #2e536d;
}


.flow-subtitle {

    margin:
        0 0
        30px 0;

    color: var(--flow-muted);

    line-height: 1.6;
}


.flow-login-mobile-logo {

    display: none;

    width: fit-content;

    margin-bottom: 25px;

    padding: 10px 15px;

    background: var(--flow-blue-light);

    color: var(--flow-blue-dark);

    border-radius: 10px;

    font-weight: bold;

    letter-spacing: 3px;
}


/* -----------------------------------------------------
   #06 - FORMULARE
----------------------------------------------------- */

.flow-field {

    width: 100%;

    margin-bottom: 20px;
}


.flow-field label {

    display: block;

    margin-bottom: 7px;

    color: #405767;

    font-weight: bold;
}


.flow-field input,
.flow-field select,
.flow-field textarea {

    width: 100%;

    min-height: 45px;

    padding: 11px 13px;

    border:
        1px solid
        var(--flow-border);

    border-radius: 9px;

    outline: none;

    background: #fff;

    color: var(--flow-text);

    font-size: 14px;

    transition:
        border-color .15s,
        box-shadow .15s;
}


.flow-field input:focus,
.flow-field select:focus,
.flow-field textarea:focus {

    border-color: #80b7dc;

    box-shadow:
        0 0 0 3px
        rgba(94, 157, 201, .12);
}


/* -----------------------------------------------------
   #07 - BUTTON
----------------------------------------------------- */

.flow-primary-btn {

    border: 0;

    border-radius: 9px;

    background: var(--flow-blue);

    color: #fff;

    font-weight: bold;

    cursor: pointer;

    transition:
        background .15s,
        transform .15s;
}


.flow-primary-btn:hover {

    background: var(--flow-blue-dark);
}


.flow-primary-btn:active {

    transform: translateY(1px);
}


.flow-login-btn {

    width: 100%;

    height: 48px;

    margin-top: 4px;

    font-size: 15px;
}


.flow-link-btn {

    border: 0;

    background: transparent;

    color: var(--flow-blue-dark);

    cursor: pointer;

    font-weight: bold;
}


/* -----------------------------------------------------
   #08 - MELDUNGEN
----------------------------------------------------- */

.flow-error {

    margin-bottom: 20px;

    padding: 13px 15px;

    border:
        1px solid
        #f0c3c1;

    border-radius: 8px;

    background:
        var(--flow-danger-bg);

    color:
        #a93e39;
}


.flow-success {

    margin-bottom: 20px;

    padding: 13px 15px;

    border:
        1px solid
        #b9e4cf;

    border-radius: 8px;

    background:
        var(--flow-success-bg);

    color:
        var(--flow-success);
}


/* -----------------------------------------------------
   #09 - LOGIN FOOTER
----------------------------------------------------- */

.flow-login-footer {

    margin-top: 35px;

    padding-top: 22px;

    border-top:
        1px solid
        var(--flow-border);

    color:
        var(--flow-muted);

    text-align: center;

    font-size: 12px;
}


/* -----------------------------------------------------
   #10 - 2FA
----------------------------------------------------- */

.flow-center-page {

    min-height: 100vh;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 25px;
}


.flow-2fa-card {

    max-width: 490px;
}


.flow-2fa-input {

    height: 62px !important;

    text-align: center;

    font-size: 28px !important;

    font-weight: bold;

    letter-spacing: 9px;
}


.flow-resend-form {

    margin-top: 17px;

    text-align: center;
}


.flow-back-link {

    display: block;

    margin-top: 24px;

    text-align: center;

    color: var(--flow-muted);

    text-decoration: none;
}


/* -----------------------------------------------------
   #11 - TOAST
----------------------------------------------------- */

#flowToastContainer {

    position: fixed;

    top: 20px;

    right: 20px;

    z-index: 999999;

    display: flex;

    flex-direction: column;

    gap: 10px;

    pointer-events: none;
}


.flow-toast {

    min-width: 260px;

    max-width: 380px;

    padding: 14px 17px;

    background: #fff;

    color: var(--flow-text);

    border: 1px solid var(--flow-border);

    border-left: 4px solid var(--flow-blue);

    border-radius: 8px;

    box-shadow:
        0 8px 25px rgba(0,0,0,.13);

    opacity: 0;

    transform:
        translateX(25px);

    transition:
        opacity .25s,
        transform .25s;

    pointer-events: auto;
}


.flow-toast.show {

    opacity: 1;

    transform:
        translateX(0);
}


.flow-toast.success {

    border-left-color:
        #31a36b;
}


.flow-toast.error {

    border-left-color:
        #d9534f;
}


.flow-toast.warning {

    border-left-color:
        #e4a529;
}


/* -----------------------------------------------------
   #12 - 17" / DESKTOP
----------------------------------------------------- */

@media (min-width: 1600px) {

    body {
        font-size: 15px;
    }

    .flow-login-card {

        max-width: 470px;

        padding: 48px;
    }

}


/* -----------------------------------------------------
   #13 - 15" NOTEBOOK
----------------------------------------------------- */

@media (
    min-width: 900px
)
and (
    max-width: 1400px
) {

    .flow-login-layout {

        grid-template-columns:
            minmax(330px, 40%)
            1fr;
    }

    .flow-login-brand {

        padding: 35px;
    }

    .flow-login-card {

        max-width: 410px;

        padding: 35px;
    }

}


/* -----------------------------------------------------
   #14 - TABLET / MOBILE
----------------------------------------------------- */

@media (max-width: 850px) {

    .flow-login-layout {

        display: block;
    }

    .flow-login-brand {

        display: none;
    }

    .flow-login-area {

        min-height: 100vh;

        padding: 20px;
    }

    .flow-login-card {

        max-width: 500px;

        padding: 30px 23px;

        border-radius: 15px;
    }

    .flow-login-mobile-logo {

        display: inline-flex;
    }

}


/* -----------------------------------------------------
   #15 - KLEINES MOBILE
----------------------------------------------------- */

@media (max-width: 480px) {

    .flow-login-area,
    .flow-center-page {

        padding: 12px;
    }

    .flow-login-card {

        padding: 25px 18px;
    }

    .flow-login-card h2 {

        font-size: 24px;
    }

    .flow-2fa-input {

        font-size: 24px !important;

        letter-spacing: 6px;
    }

    #flowToastContainer {

        left: 12px;

        right: 12px;

        top: 12px;
    }

    .flow-toast {

        min-width: 0;

        width: 100%;
    }

}

/* -----------------------------------------------------
   LOGIN LOGO
----------------------------------------------------- */

.flow-login-logo {

    display:flex;

    align-items:center;

    justify-content:flex-start;

    margin-bottom:20px;
}


.flow-login-logo img {

    display:block;

    width:auto;

      height:200px;

    max-width:400px;

    object-fit:contain;
}


/* -----------------------------------------------------
   LOGIN MOBILE LOGO
----------------------------------------------------- */

.flow-login-mobile-logo {

    display:none;

    align-items:center;

    justify-content:center;

    margin-bottom:22px;
}


.flow-login-mobile-logo img {

    display:block;

    width:auto;

    height:150px;

    max-width:400px;

    object-fit:contain;
}


@media(max-width:750px) {

    .flow-login-mobile-logo {

        display:flex;
    }

}
/* -----------------------------------------------------
   #11 - HEADER
----------------------------------------------------- */

.flow-header {

    height: 64px;

    background: #ffffff;

    border-bottom: 1px solid #dce7ef;

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 0 24px;

    position: sticky;

    top: 0;

    z-index: 500;

    box-shadow:
        0 2px 10px
        rgba(50, 85, 110, .05);
}


.flow-header-left {

    display: flex;

    align-items: center;

    gap: 28px;
}


.flow-header-logo {

    font-size: 21px;

    font-weight: 800;

    letter-spacing: 4px;

    color: #3978a6;
}


.flow-nav {

    display: flex;

    align-items: center;

    gap: 6px;
}


.flow-nav a {

    display: flex;

    height: 38px;

    align-items: center;

    padding: 0 13px;

    color: #496273;

    text-decoration: none;

    border-radius: 8px;

    font-weight: 600;
}


.flow-nav a:hover,
.flow-nav a.active {

    background: #eaf5fc;

    color: #326d98;
}


.flow-user {

    display: flex;

    align-items: center;

    gap: 15px;
}


.flow-user-name {

    font-weight: bold;
}


.flow-logout {

    color: #718394;

    text-decoration: none;
}
.flow-header-logo {

    display:flex;

    align-items:center;
}


.flow-header-logo a {

    display:flex;

    align-items:center;

    text-decoration:none;
}


.flow-header-logo img {

    display:block;

    height:38px;

    width:auto;

    max-width:180px;

    object-fit:contain;
}

.flow-header-logo img {
    border-radius: 5px;
    background: #000000;
}
.flow-orders-table tbody tr {
    cursor: pointer;
}

.flow-orders-table tbody tr:hover {
    background: #f2f9fd;
}


/* =====================================================
   FLOW HEADER - RESPONSIVE
===================================================== */

.flow-header {
    width: 100%;
    min-height: 64px;

    background: #fff;

    border-bottom: 1px solid #dce7ef;

    display: grid;

    grid-template-columns:
        auto
        minmax(0, 1fr)
        auto;

    align-items: center;

    gap: 22px;

    padding: 0 20px;

    position: sticky;

    top: 0;

    z-index: 1000;

    box-shadow:
        0 2px 10px
        rgba(50, 85, 110, .05);

    overflow: hidden;
}


/* -----------------------------------------------------
   LEFT WRAPPER
----------------------------------------------------- */

.flow-header-left {
    display: contents;
}


/* -----------------------------------------------------
   LOGO
----------------------------------------------------- */

.flow-header-logo {
    min-width: 0;
}


.flow-header-logo a {
    display: flex;
    align-items: center;

    text-decoration: none;
}


.flow-header-logo img {
    display: block;

    width: auto;
    height: 38px;

    max-width: 165px;

    object-fit: contain;

    border-radius: 5px;
}


/* -----------------------------------------------------
   NAVIGATION
----------------------------------------------------- */

.flow-nav {
    min-width: 0;

    display: flex;

    align-items: center;

    gap: 3px;

    overflow: hidden;
}


.flow-nav a {
    flex: 0 0 auto;

    height: 38px;

    display: flex;

    align-items: center;

    padding: 0 10px;

    border-radius: 8px;

    color: #496273;

    text-decoration: none;

    font-size: 13px;
    font-weight: 600;

    white-space: nowrap;
}


.flow-nav a:hover,
.flow-nav a.active {
    background: #eaf5fc;
    color: #326d98;
}


/* -----------------------------------------------------
   USER
----------------------------------------------------- */

.flow-user {
    min-width: max-content;

    display: flex;

    align-items: center;

    justify-content: flex-end;

    gap: 12px;
}


.flow-user-name {
    color: #314a5c;

    font-size: 13px;

    font-weight: 700;

    white-space: nowrap;
}


.flow-logout {
    color: #718394;

    text-decoration: none;

    font-size: 13px;

    white-space: nowrap;
}


.flow-logout:hover {
    color: #326d98;
}
/* =====================================================
   LAPTOP
===================================================== */

@media (max-width: 1450px) {

    .flow-header {
        gap: 12px;
        padding: 0 14px;
    }


    .flow-header-logo img {
        height: 34px;
        max-width: 135px;
    }


    .flow-nav {
        gap: 1px;
    }


    .flow-nav a {
        padding: 0 7px;

        font-size: 11px;
    }


    .flow-user {
        gap: 8px;
    }


    .flow-user-name,
    .flow-logout {
        font-size: 11px;
    }
}

.flow-user form {
    margin: 0;
}

.flow-logout {
    appearance: none;
    -webkit-appearance: none;
    height: 38px;
    padding: 0 14px;
    border: 1px solid #cfe0eb;
    border-radius: 8px;
    background: #ffffff;
    color: #557589;
    font-size: 13px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: 0.18s ease;
}

.flow-logout:hover {
    background: #edf7fd;
    border-color: #9fc6df;
    color: #3978a6;
}

.flow-logout:focus {
    outline: none;
    border-color: #7fb4d7;
    box-shadow: 0 0 0 3px rgba(77, 143, 189, 0.16);
}