/**
 * @AppName      ECOSYSTEM Integration App
 * @Version      2.1.2
 * @LastModified 2025-08-04
 * @Copyright    (c) 2025 NavVis GmbH
 *
 * @Description
 * This is the primary stylesheet for the application's configuration workflow
 * pages (e.g., config-*, e-sync-*, etc.).
 */

/* === GENERAL BODY & FONT === */
body {
    font-family: "Poppins", sans-serif;
    font-weight: 400;
}

/* === LAYOUT CONTAINERS === */
.container { max-width: 1000px; margin: 0 auto; padding-top: 95px; }
.container1 { max-width: 1000px; margin: 0 auto; }
.container2 { max-width: 1000px; margin: 0 auto; padding-top: 70px; }
.container3 { max-width: 1000px; margin: 0 auto; padding-top: 55px; }
.container4 { max-width: 800px; margin: 0 auto; padding-top: 95px; }

/* === HEADER & FOOTER BARS === */
.top-bar {
    background-color: #000;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    color: #fff;
    height: 85px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 1rem;
    z-index: 999;
}

.statusbar {
    height: 30px;
    width: 100%;
    background-color: #000;
    z-index: 998;
    position: fixed;
    bottom: 0px;
    color: #fff;
    font-size: 0.7rem;
    padding-right: 2.5rem;
    padding-top: 0.5rem;
    text-align: center;
}

/* === JUMBOTRON & CONTENT === */
.jumbotron {
    background-color: #fff;
    padding: 2rem;
    box-shadow: none;
}

.display-3 { font-size: 1rem; padding: 2rem; margin-top: 1.5rem; font-weight: 400; }
.display-4 { font-size: 1.2rem; padding: 2rem; margin-top: 1.5rem; font-weight: 400; }
.display-5 { font-size: 1.8rem; padding: 2rem; margin-top: 1.5rem; font-weight: 400; }
.display-6 { font-size: 1.2rem; margin-top: 1.5rem; font-weight: 400; }

.p { font-weight: 400; }
.p-fat { font-weight: 700; }

ul {
    text-align: left;
    list-style-position: inside;
}

/* === LOGOS & IMAGES === */
.logo { width: 100%; max-width: 100px; margin: 0; margin-left: 30px; display: block; }
.logo-main { width: 100%; max-width: 400px; margin: 0 auto; display: block; }
.logo-medium { width: 100%; max-width: 300px; margin: 0 auto; display: block; }
.nice-picture { width: 100%; max-width: 128px; margin: 0 auto; display: block; }
.nice-bigger-picture { width: 100%; max-width: 256px; margin: 0 auto; display: block; }

/* === BUTTONS === */
.login-btn {
    background-color: transparent;
    color: #fff;
    border: none;
    font-size: 1.2rem;
    text-transform: uppercase;
    margin: 0;
    margin-right: 30px;
    padding: 0;
    cursor: pointer;
}

.btn {
    display: block;
    margin: 2rem auto;
    font-size: 1.2rem;
    text-transform: uppercase;
    padding: 1rem 2rem;
    background-color: #1979E4;
    color: #fff;
    border-radius: 2px;
    transition: background-color 0.3s ease;
    max-width: 50%;
}

.btn:hover {
    background-color: #1FE179;
    color: #fff;
    text-decoration: none;
}

.btn-secondary-custom {
    background-color: #353436;
    color: white;
    border-color: #353436;
}

.back-button {
    position: fixed;
    top: 100px;
    right: 20px;
    z-index: 1000;
    background-color: #1979E4;
    border: none;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
    display: flex;
    justify-content: center;
    align-items: center;
}

.back-button img {
    width: 20px;
    height: 20px;
}

/* === FORMS (INPUT & SELECT) === */
input[type=text] {
    border: 1.5px solid #000;
    padding: 10px;
    background-color: #000;
    font-size: 1.2rem;
    color: #fff;
    width: 50%;
    border-radius: 5px;
}

input:valid { border: 3px solid #1FE179; }
input:invalid { border: 3px solid #F80945; }
input:focus { outline: none; box-shadow: none; }

select {
    min-width: 50%;
    padding: 10px;
    border: none;
    border-radius: 5px;
    background-color: #000;
    font-size: 1.2rem;
    color: #fff;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M6%208L10%2012L14%208%22%20stroke%3D%22%23fff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 10px center;
    cursor: pointer;
    margin-top: 30px;
    margin-bottom: 20px;
}

select:focus {
    outline: none;
    box-shadow: 0 0 5px #ddd;
}

/* === SPINNERS & LOADERS === */
.spinner {
    margin: 100px auto;
    width: 50px;
    height: 50px;
    position: relative;
}

.spinner:before {
    content: "";
    box-sizing: border-box;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 3px solid #1979E4;
    border-top-color: transparent;
    animation: spinner 0.6s linear infinite;
}

@keyframes spinner {
    to { transform: rotate(360deg); }
}

.sk-cube-grid {
    width: 70px;
    height: 70px;
    margin: 100px auto;
}

.sk-cube-grid .sk-cube {
    width: 33%;
    height: 33%;
    background-color: #1979E4;
    float: left;
    animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
}

.sk-cube-grid .sk-cube1 { animation-delay: 0.2s; }
.sk-cube-grid .sk-cube2 { animation-delay: 0.3s; }
.sk-cube-grid .sk-cube3 { animation-delay: 0.4s; }
.sk-cube-grid .sk-cube4 { animation-delay: 0.1s; }
.sk-cube-grid .sk-cube5 { animation-delay: 0.2s; }
.sk-cube-grid .sk-cube6 { animation-delay: 0.3s; }
.sk-cube-grid .sk-cube7 { animation-delay: 0s; }
.sk-cube-grid .sk-cube8 { animation-delay: 0.1s; }
.sk-cube-grid .sk-cube9 { animation-delay: 0.2s; }

@keyframes sk-cubeGridScaleDelay {
    0%, 70%, 100% { transform: scale3D(1, 1, 1); }
    35% { transform: scale3D(0, 0, 1); }
}

/* === RESPONSIVE DESIGN === */
@media (max-width: 768px) {
    .jumbotron {
        padding: 1rem;
        box-shadow: none;
    }
    .logo-main {
        max-width: 200px;
    }
}

/* === Additional styles for loading page === */
.loading-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

.loading-jumbotron {
  background-color: #fff;
  padding: 2rem;
  box-shadow: none;
  text-align: center;
}
