/** GENERAL STYLE START SECTION **/

body {
  font-family: "Open Sans", sans-serif;
  margin: 0;
  padding: 0;
  justify-content: space-between; /* Equal spacing between elements */
}

/* Style page content - use this if you want to push the page content to the right when you open the side navigation */ 
#main {
  transition: margin-left 0.5s;
  padding: 20px;
}

.inhalt {
  position: absolute;
  color: white;
  top: 80px;
  left: 100px;
  right: 100px;
}
.content{
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 10px;
}

/** GENERAL STYLE END SECTION **/

/**************************************/
/**************************************/

/** TEXT STYLE START SECTION **/

h1 {
  color: rgb(40, 135, 50);
}

h3 {
  font-size: 20px;
  color: rgb(40, 135, 50);
}

.headline {
  text-align: center;
  top: 10%;
  left: 50px;
  right: 50px;
  color: rgb(0, 0, 0);
  font-size: 60px;
  text-shadow: 
    -1px -1px 0 #ffffff,  /* Top left shadow */
    1px -1px 0 #ffffff,   /* Top right shadow */
    -1px 1px 0 #ffffff,   /* Bottom left shadow */
    1px 1px 0 #ffffff;    /* Bottom right shadow */
}

.spaced-paragraph {
  margin-left: 20%;
  margin-right: 20%;
  color: white;
  font-size: 20px;
  text-align: justify;  
}

.subHeadline {
  /* Ensures all text within this container is left-aligned */
  text-align: left; 
  margin-left: 5%;
  font-size: 50px;
}

.leftAlignedText {
  margin: 0; /* Resets default margin for <p> elements */
  color: white;
  font-family: Arial, sans-serif;
}

/** TEXT STYLE END SECTION **/

/**************************************/


.logic-table {
  width: 100%;
  border-collapse: collapse;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 14px;
}
.logic-table th, .logic-table td {
  border: 1px solid #e2e8f0;
  padding: 10px 12px;
  vertical-align: top;
}
.logic-table th {
  background: #f8fafc;
  text-align: left;
  font-weight: 600;
}
.logic-table tr:nth-child(even) td { background: #fcfdff; }
.logic-table code {
  background: #f1f5f9;
  padding: 2px 6px;
  border-radius: 4px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
}
.muted { color: #64748b; font-size: 12px; }
.ok    { color: #16a34a; font-weight: 600; }
.warn  { color: #ea580c; font-weight: 600; }
.bad   { color: #dc2626; font-weight: 600; }

/* ---- Gelber System-Hinweis (Debug-Banner) ------------------ */
.sys-banner {
  width: 100%;
  padding: 8px 16px;
  background: #fff3cd;           /* gelb */
  border-bottom: 1px solid #f2d27d;
  color: #6b5600;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
  font-size: 15px;
  font-weight: 600;
}

.sys-banner__icon { font-size: 18px; }
.sys-banner__text { line-height: 1.3; }



/**************************************/

/** TOP MENUE NAVIGATION STYLE START SECTION **/

.topnav {
  z-index: 1;
  position: relative;
  background-color: white;
  opacity: 0.7;
  overflow: hidden;
  width: 100%;
  height: 80px; /* Set a fixed width */
  margin: 0 auto; /* Center the navigation bar horizontally */
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.links {
  display: flex;
  justify-content: center; /* Centers the links horizontally */
  color: white;
  font-size: 20px;
  text-decoration: none;
  padding-left: 3%;
}

/* Style link hover content */
.links:hover {
  cursor: pointer;
}

/* Style the links inside the navigation bar */
.links a {
  color: black;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 20px;
  display: inline-block;
}

/* Change the color of links on hover */
.links a:hover {
  background-color: #ddd;
  border-radius: 10px;
  color: black;
}

/* Media query for screens smaller than 768px */
@media screen and (max-width: 768px) {
  .links {
    display: none;
    clear: both;
    width: 100%;
  }
  .links.show {
    display: block;
    position: absolute;
    top: 50px;
    right: 0;
    background-color: #333;
    width: 100%;
  }

  .links a {
    float: none;
    display: block;
    text-align: left;
  }
}

.logo {
  width: 220px; /* HKA width: 110px */
  border-radius: 5px;
  margin-top: 20px;
  margin-right: 30px;
}

/** TOP MENUE NAVIGATION END SECTION **/

/**************************************/
/**************************************/

/** HAMBURGER STYLE START SECTION**/

/* Container for the hamburger icon */
.hamburger-container {
  cursor: pointer;
  padding-left: 20px;
  z-index: 1000;
  /* High z-index to stay on top */
}

/* Hamburger icon styles */
.hamburger {
  width: 30px;
  height: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Each bar of the hamburger icon */
.hamburger .bar {
  width: 100%;
  height: 4px;
  background-color: green;
  transition: all 0.3s ease;
}

/* Animation when menu is open */
.hamburger.open .bar:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.hamburger.open .bar:nth-child(2) {
  opacity: 0;
}

.hamburger.open .bar:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/** HAMBURGER STYLE END SECTION **/

/**************************************/
/**************************************/

/** SIDE NAVIGATION MENU STYLE START SECTION **/

/* The side navigation menu */
.sidenav {
  height: 100%;
  /* 100% Full-height */
  width: 0;
  /* 0 width - change this with JavaScript */
  position: fixed;
  /* Stay in place */
  z-index: 2;
  /* Stay on top */
  top: 0;
  /* Stay at the top */
  left: 0;
  background-color: #111;
  /* Black*/
  overflow-x: hidden;
  /* Disable horizontal scroll */
  padding-top: 100px;
  /* Place content 60px from the top */
  transition: 0.5s;
  /* 0.5 second transition effect to slide in the sidenav */
}

/* The navigation menu links */
.sidenav a {
  padding: 8px 8px 8px 32px;
  padding-left: 16%;
  text-decoration: none;
  font-size: 25px;
  color: #818181;
  display: block;
  transition: 0.3s;
}

/* When you mouse over the navigation links, change their color */
.sidenav a:hover {
  color: #f1f1f1;
}

/* On smaller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */
@media screen and (max-height: 450px) {
  .sidenav {
    padding-top: 15px;
  }

  .sidenav a {
    font-size: 18px;
  }
}

/** SIDE NAVIGATION STYLE END SECTION**/

/**************************************/
/* hebt geänderte Felder gelb hervor */
input.changed,
select.changed {
  border: 2px solid #f39c12;
  background: #fffbee;
}

/**************************************/

/** BACKGROUND STYLE START SECTION **/

.background {
  z-index: -1;
  height: 100vh;
  width: 100%;
  object-fit: cover;
  filter: brightness(70%);
  position: fixed;
}

/** BACKGROUND STYLE END SECTION **/

/** BUTTON STYLE START SECTION **/
.action-cell .btn-open,
.action-cell .btn-delete {
  display: inline-block;      /* <a> braucht das, <button> hat’s schon */
  padding: 4px 8px;
  border: none;
  border-radius: 4px;         /* ⇒ beide leicht rund (oder 0 für eckig) */
  color: #fff;
  font: inherit;              /* gleiche Schrift wie Umgebung */
  text-decoration: none;      /* Unterstreichung bei <a> entfernen */
  -webkit-appearance: none;   /* Browser-Defaults neutralisieren   */
  appearance: none;
  cursor: pointer;
}

/* 2) Farbvarianten */
.btn-open   { background: green; }
.btn-open:hover   { background: #55AA55; }

.btn-delete { background: red; }
.btn-delete:hover { background: #aa5555; }

/* 3) Container wie gehabt */
.action-cell { display: flex; gap: 6px; justify-content: center; }
.modal             { position:fixed; inset:0; background:rgba(0,0,0,.4);
                     display:flex; align-items:center; justify-content:center; }
.modal.hidden      { display:none; }
.modal-content     { background:#fff; padding:20px 30px; border-radius:4px;
                     text-align:center; min-width:250px; }
.btn_red           { background:red; color:#fff; margin-right:10px; }
.btn_green         { background:green; color:#fff; }

td[data-column-id="Aktion"] { padding: 0 }
.action-btn { display:block;width:100%;height:120%;background:green;
              color:#fff;text-align:center;text-decoration:none }
.action-btn:hover { background:#55AA55 }

.btn {
  z-index: 500;
  background-color: green;
  transition: background-color 0.3s ease; /* Smooth transition for hover effect */
  border: none;
  color: white;
  width: 80px;
  height: 80px;
  text-decoration: none;
  display: flex;
  font-size: 24px;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  align-self: flex-end;
  margin-right: 5%;
  margin-bottom: 2%;
}

/* Hover effect for the button */
.btn:hover {
  background-color: #55AA55;
  /* Light green color on hover */
}


/** BUTTON STYLE END SECTION **/

/** TABLE STYLE START SECTION **/

#table{
  margin-left: 5%;
  margin-right: 5%;
}

/** TABLE STYLE STOP SECTION **/

/** ALLG. INFO START STYLE SECTION **/

.sideBySideContainer {
  margin-top: 150px;
  margin-left: 10%;
  margin-right: 10%;
  display: flex;
  justify-content: space-between;
  gap: 50px; /* Adjust this value to set the space between the items */
}

.sideBySideContainer_result {
  margin-top: 150px;
  margin-left: 10%;
  margin-right: 10%;
  display: flex;
  flex-direction: column;
  gap: 50px; /* Adjust this value to set the space between the items */
}

.centerContainer {
  margin-top: 120px;
  display: flex;
  justify-content: center; /* Centers items horizontally */
  align-items: center; /* Centers items vertically within the container */
}

.upperCenterContainer {
  display: flex;
  justify-content: center; /* Centers items horizontally */
  align-items: center; /* Centers items vertically within the container */
  padding-right: 15%;
}

.upperCenterContainer_result {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center; /* Centers items vertically within the container */
}

/** ALLG. INFO STYLE STOP SECTION **/

/** MULTISTEP STYLE START SECTION **/

.multiFormContainer {
  background:#fff;
  padding:20px;
  width:50%;
  /* Höhe flexibel, aber Mindesthöhe lassen: */
  min-height:500px;        /*  falls nötig  */
  height:auto;             /*  Wichtig  */
  border-radius:8px;
  box-shadow:0 0 10px rgba(0,0,0,.1);
  overflow:auto;           /*  bei sehr vielen Feldern Scrollbar  */
}

.multiFormResultContainer {
  background: white;
  padding: 20px;
  margin-left: 15%;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  width: 100%; 
  height: auto; /* Ensures it adjusts to content height */
  display: block; /* Default value, ensures proper block behavior */
  box-sizing: border-box; /* Includes padding in height/width calculations */
}

.multiFormResultContainer_result {
  background: white;
  padding: 20px;
  /* margin: 0 10%; */
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  /* width: 80%;  */
  height: auto; /* Ensures it adjusts to content height */
  display: block; /* Default value, ensures proper block behavior */
  box-sizing: border-box; /* Includes padding in height/width calculations */
}

.bokeh-container{
  /* margin: 0 10%; */
  /* width: 80%; */
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  box-sizing: border-box;
  gap: 40px;
}

.result-container {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 4px;
  background-color: #f9f9f9;
}

form {
  display: flex;
  flex-direction: column;
}

input[type="text"], input[type="email"], input[type="tel"], input[type="date"], input[type="number"] {
  width: 96%;
  padding: 10px; /* Increased padding */
  margin: 10px 0;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1.1em; /* Increased font size */
}

select{
  font-family: "Open Sans", sans-serif;
  width: 99%;
  padding: 10px; /* Increased padding */
  margin: 10px 0;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1.1em; /* Increased font size */
}

.form_btn_container {
  display: flex;
  gap: 10px; /* Adds 10px space between buttons */
}

.form_btn {
  background-color: green;
  color: white;
  padding: 15px; /* Increased padding */
  border: none;
  border-radius: 4px;
  cursor: pointer;
  margin-top: 10px;
  font-size: 1.1em; /* Increased font size */
}

.form_btn:hover {
  background-color: rgb(82, 165, 82);
}

/* Hide steps by default */
.form-step {
  display: none;
}

button {
  color: black;
  padding: 15px; /* Increased padding */
  border: none;
  border-radius: 4px;
  cursor: pointer;
  margin-top: 10px;
  font-size: 1.1em; /* Increased font size */
}

/* Show only the active step */
.form-step.active {
  display: block;
}

input.invalid {
  border-color: red;
  background-color: #ffcccc;
}

.error-message {
  color: red;
  font-size: 1em; /* Increased font size */
  margin-top: 10px;
}

.upload-container {
  border: 2px dashed #ccc;
  padding-bottom: 20px;
  width: 90%;
  text-align: center;
  color: #888;
  cursor: pointer;
  transition: background-color 0.3s, border-color 0.3s, color 0.3s;
  margin: 20px auto; /* Centers the element within its container */
}

.upload-container.dragging {
  background-color: #f0f8ff;
  border-color: green;
  color: green;
}

/** MULTISTEP STYLE STOP SECTION **/

/** LOGIN STYLE START SECTION **/

.login-container {
  max-width: 400px;
  margin: 100px auto;
  padding: 20px;
  background-color: rgba(0, 128, 0, 0.9);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.login-container h2 {
  text-align: center;
  margin-bottom: 20px;
}

.login-container label {
  display: block;
  margin: 5px 0;
  font-weight: bold;
}

.login-container input {
  width: 93%;
  padding: 10px;
  margin-bottom: 15px;
  border: 1px solid #ccc;
  border-radius: 5px;
}

.login-container button {
  width: 100%;
  padding: 10px;
  background-color: rgba(0, 66, 0, 0.9);
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

.login-container button:hover {
  background-color: rgba(0, 26, 0, 0.9);
}

/** LOGIN STYLE STOP SECTION **/

/** MAP STYLE START SECTION **/

.map{
  width: 50%; /* Set the same width for both elements */
  padding: 20px;
  /* height: 460px; Set the same height for both elements */
  border-radius: 8px;
}

.error-message{
  font-style: italic;
}

/** MAP STYLE STOP SECTION **/

/** LOADING CIRCLE START SECTION **/

#loading-circle-container {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}

#loading-circle {
  border: 8px solid #f3f3f3; /* Light gray background */
  border-top: 8px solid #4CAF50; /* Green spinner */
  border-radius: 50%;
  width: 50px;
  height: 50px;
  animation: spin 1.5s linear infinite; /* Spinner animation */
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/** LOADING CIRCLE STOP SECTION **/

/** RESPONSIVE STYLE START SECTION **/

@media (max-width: 768px) {
  .sideBySideContainer {
    flex-direction: column;
    align-items: center;
    /* margin-right: 150px; */
    gap: 40px; /* Adjust this value to set the space between the items when stacked */
  }

  .multiFormContainer, .map {
    width: 450px;
  }

  .map {
    height: 300px; /* Adjust height if needed for smaller screens */
 
  }

  input[type="text"], input[type="email"], input[type="tel"] {
    width: 93%; /* Ensure input fields take up full width */
    padding: 12px; /* Adjust padding for mobile */
    font-size: 1em; /* Slightly reduce font size for better fit */
    
  }

}

/** RESPONSIVE STYLE STOP SECTION **/

/** DISPLAY RESULT TABLE START SECTION **/

table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 10px;
}

th, td {
  padding: 8px;
  border: 1px solid #ddd;
  text-align: left;
}

th {
  background-color: #f4f4f4;
}

ul {
  padding-left: 20px;
}

li {
  list-style-type: disc;
  margin-bottom: 4px;
}

/** DISPLAY RESULT TABLE STOP SECTION **/

.diagram{
  width: 750px;
  height: 800px;
  max-height: 500px;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

/** START SECTION OVERWRITE GRID.JS LOADING BLURR **/

.gridjs-loading {
  opacity: 1; /* No dimming */
  filter: none; /* No blur */
  pointer-events: none; /* Optional: prevent interaction during loading */
}

/** STOP SECTION OVERWRITE GRID.JS LOADING BLURR **/

/** LOGOUT BUTTON STYLE START SECTION **/
.logout-container {
  margin-right: 20px;
  display: flex;
  align-items: center;
}

.logout-button {
  background-color: #00751d;
  color: white;
  padding: 10px 15px;
  border: none;
  border-radius: 5px;
  text-decoration: none;
  font-size: 16px;
  cursor: pointer;
}

.logout-button:hover {
  background-color: #005a05;
}
/** LOGOUT BUTTON STYLE END SECTION **/