diff --git a/docs/calendar_dark2.html b/docs/calendar_dark2.html
index fbc40d87a7a38340e32e2c74bfbc4af856ae0491..54d9240bef80797862de77255c197e970e31333e 100644
--- a/docs/calendar_dark2.html
+++ b/docs/calendar_dark2.html
@@ -2,148 +2,16 @@
 <html>
 <head>
   <title>Calendar</title>
-  <!-- <script src='https://cdn.jsdelivr.net/npm/fullcalendar/index.global.min.js'></script>
-  <script src='https://cdn.jsdelivr.net/npm/fullcalendar/locales-all.min.js'></script> -->
-  <script src="javascripts/ical.js"></script>
-  <script src="javascripts/index.global.min.js"></script>
-  <style>
-    html, body {
-      overflow: hidden;
-    }
-
-    body {
-    --md-primary-fg-color: #7d7d7d;
-    --md-accent-fg-color: #792443;
-    --md-footer-bg-color--dark: white;
-    --header-bg-color: rgba(108, 27, 64, 1);
-    --header-bg-color-for-alpha: 108, 27, 64;
-    --counter-grid-color: #444444;
-    --tabs-color: rgba(15, 54, 90, 1);
-    --tabs-font-color: rgb(205, 205, 205);
-    --tabs-nav-int: rgba(108, 27, 64, 1);
-    --high-contrast-bg: rgb(25, 25, 25);
-    --high-contrast-font: rgb(240, 240, 240);
-    --keywords-bg: rgba(108, 27, 64, 1);
-    --md-footer-bg-color: rgba(15, 54, 90, 1);
-    --contact-form: rgb(51, 51, 51);
-
-    --fc-small-font-size: .85em;
-    --fc-page-bg-color: var(--tabs-color);
-    --fc-neutral-bg-color: rgba(208, 208, 208, 0.3);
-    --fc-neutral-text-color: var(--high-contrast-font);
-    --fc-border-color: #ddd;
-
-    --fc-button-text-color: white;
-    --fc-button-bg-color: var(--tabs-color);
-    --fc-button-border-color: var(--high-contrast-font);
-    --fc-button-hover-bg-color: var(--header-bg-color);
-    --fc-button-hover-border-color: var(--high-contrast-bg);
-    --fc-button-active-bg-color: rgba(var(--header-bg-color-for-alpha), 0.8);
-    --fc-button-active-border-color: var(--high-contrast-font);
-
-    --fc-event-bg-color: var(--tabs-color);
-    --fc-event-border-color: var(--high-contrast-font);
-    --fc-event-text-color: var(--high-contrast-font);
-    --fc-event-selected-overlay-color: rgba(0, 0, 0, 0.25);
-
-    --fc-more-link-bg-color: #d0d0d0;
-    --fc-more-link-text-color: inherit;
-
-    --fc-event-resizer-thickness: 8px;
-    --fc-event-resizer-dot-total-width: 8px;
-    --fc-event-resizer-dot-border-width: 1px;
-
-    --fc-non-business-color: rgba(215, 215, 215, 0.3);
-    --fc-bg-event-color: rgb(143, 223, 130);
-    --fc-bg-event-opacity: 0.3;
-    --fc-highlight-color: rgba(188, 232, 241, 0.3);
-    --fc-today-bg-color: rgba(255, 220, 40, 0.15);
-    --fc-now-indicator-color: red;
-
-    --fc-list-event-dot-width: 10px;
-    --fc-list-event-hover-bg-color: var(--header-bg-color);
-    }
-    
-    .fc {
-      color: white;
-      padding: 1px;
-    }
-
-    .fc-event-main {
-    overflow-wrap: normal;
-    white-space: normal;
-    word-break: normal;
-    overflow: hidden; 
-    }
-
-    .fc-event {
-      border-style: none;
-      padding: 2px;
-      margin: 2px;      
-    }
-    
-    .form {
-    width: 100%;
-    max-width: 1200px;
-    min-width: 400px;
-    margin: 0 auto;
-    background-color: var(--md-default-bg-color);
-    padding: 20px;
-    border-radius: var(--border-radius);
-    border: var(--header-bg-color);
-  }
-
-  .form-field {
-    display: flex;
-    flex-direction: column;
-    align-items: flex-start;
-    margin-bottom: 10px;
-  }
-
-  .form-field input,
-  .form-field textarea {
-    width: 100%;
-    color:var(--high-contrast-font);
-    font-size: 1.3em;
-    background-color: var(--high-contrast-bg);
-    padding: 2px;
-    border-radius: var(--border-radius);
-  }
-
-  .form-field textarea {
-    resize: vertical;
-  }
-
-  .past-event {
-    display: none;
-  }
-
-  .fc-list-event.past-event {
-    border-color: transparent;
-  }
-
-  .fc-list-day.fc-day.fc-day-past {
-    display: none;
-  }
-</style>
+  <script src="javascripts/ical.js"></script> <!-- calls ical.js library to parse the ics-data from the calendar file into data the fullcalendar-library can work with -->
+  <script src="javascripts/index.global.min.js"></script> <!-- calls the fullcalendar.js library -->
+  <link rel="stylesheet" href="stylesheets/variables.css"> <!-- this calls the variables holding the "core"-Design for the entire Website like colors-codes etc. -->
+  <link rel="stylesheet" href="stylesheets/calendar.css"> <!-- this calls the specific Design for the calendar, and can use the variables of the file above -->
 </head>
 <body>
-  <style>
-      body {
-        width: 100%;
-        height: 100%;
-        margin: 0;
-        padding: 0;
-        font-family: "RUBFlama", sans-serif;
-        background-color: rgb(46, 48, 62);
-      }
-      
-      @font-face {
-      font-family: "RUBFlama";
-      src: url('../medien/flamapro-basic.woff') format('woff2');
-      }
-  </style>
-    <div id='calendar' style="border: none;"></div>
-  <script src="javascripts/ics_calendar2.js"></script>
+  <div class="calendar-wrapper">
+    <div id='form-container'></div> <!-- this div holds the contact form -->
+    <div id='calendar' style="border: none;"></div> <!-- this div holds the calendar -->
+  </div>
+  <script src="javascripts/ics_calendar2.js"></script> <!-- this calls the js that is responsible for everything around the calendar and contact form -->
 </body>
 </html>
diff --git a/docs/javascripts/colorswitchcalendar2.js b/docs/javascripts/colorswitchcalendar2.js
index 9b24ac92c335a0a27a989a2ecaea3fac23849484..7851cbd36fc77e158d75df03048f9a36347ecdf4 100644
--- a/docs/javascripts/colorswitchcalendar2.js
+++ b/docs/javascripts/colorswitchcalendar2.js
@@ -1,25 +1,31 @@
 window.addEventListener('load', function() {
-    var iframe = document.getElementById('calendar');
+    const iframe = document.getElementById('calendar');
 
-    var updateIframeSrc = function() {
+    var updateIframeColor = function() {
         setTimeout(function() {
             var palette = JSON.parse(localStorage.getItem('/homepage/.__palette'));
+            let colorSchemeValue;
             if (palette && palette.index === 1) {
-                iframe.src = "../calendar_dark2.html";
+                colorSchemeValue = 'slate';
             } else {
-                iframe.src = "../calendar2.html";
+                colorSchemeValue = 'default';
+            }
+            
+            // Directly update the iframe's attribute
+            if (iframe.contentDocument && iframe.contentDocument.body) {
+                iframe.contentDocument.body.setAttribute('data-md-color-scheme', colorSchemeValue);
             }
         }, 100); // delay of 100 milliseconds
     };
 
-    updateIframeSrc();
+    updateIframeColor();
 
     var lightModeInput = document.getElementById('__palette_1');
     var darkModeInput = document.getElementById('__palette_2');
 
     // Check if inputs are not null and update on change
     if(lightModeInput && darkModeInput) {
-        lightModeInput.addEventListener('input', updateIframeSrc);
-        darkModeInput.addEventListener('input', updateIframeSrc);
+        lightModeInput.addEventListener('input', updateIframeColor);
+        darkModeInput.addEventListener('input', updateIframeColor);
     }
 });
diff --git a/docs/javascripts/ics_calendar2.js b/docs/javascripts/ics_calendar2.js
index a1c49d40f7c83777a556f9bbff34b5c81cc2e239..1710f96b101ee4fa6f144f545d5121cc4dbef270 100644
--- a/docs/javascripts/ics_calendar2.js
+++ b/docs/javascripts/ics_calendar2.js
@@ -1,10 +1,25 @@
 var showPastEvents = false;
 
-// Load iCalendar data
+//closes contact form when close-button clicked
+document.addEventListener('DOMContentLoaded', function() { 
+  // Attach click event to the document or a closer parent that already exists
+  document.addEventListener('click', function(event) {
+      // Check if the clicked element or its parent has the ID 'close-button'
+      if (event.target.id === 'close-button' || event.target.closest('#close-button')) {
+          var eventContactForm = document.getElementById('event-form');
+          if (eventContactForm) {
+              eventContactForm.style.display = 'none';
+          }
+        }
+      });
+});
+
 window.addEventListener('message', function(event) {
   adjustHeight();
+  adjustWidth();
 }, false);
 
+// Load iCalendar data
 async function fetchAndParseICS() {
   const response = await fetch('./data/calendar.ics');
   const data = await response.text();
@@ -72,6 +87,7 @@ fetchAndParseICS()
     contentHeight: "auto",
     events: calendarEvents,
     eventDisplay: 'block',
+
     eventContent: function(arg) {
       var start = arg.event.start;
       var end = arg.event.end;
@@ -90,14 +106,103 @@ fetchAndParseICS()
     },
     
     eventDidMount: function(info) {
-      clearTimeout(debounceTimer);
-      debounceTimer = setTimeout(adjustHeight, 200);
       handlePastEventsVisibility(); 
     },   
     
-    eventWillUnmount: function() {
-        clearTimeout(debounceTimer);
-        debounceTimer = setTimeout(adjustHeight, 200);
+    //Opens the contact form with event specific informations after clicking an event
+    eventClick: function showContactForm(info) {
+      let currentDate = new Date();
+      let startDate = info.event.start;
+      let endDate = info.event.end;
+
+      // Check if the event's start date is in the past
+      if (startDate < currentDate) {
+          alert("Du kannst Dich nicht für ein Ereignis in der Vergangenheit anmelden.");
+          return; // Exit the function early
+      }
+
+      // Format the date using German locale
+      let formattedDate = new Intl.DateTimeFormat('de-DE', {
+          year: 'numeric',
+          month: 'long',
+          day: '2-digit'
+      }).format(startDate);
+
+      // Format the start time using German locale
+      let formattedStartTime = new Intl.DateTimeFormat('de-DE', {
+          hour: '2-digit',
+          minute: '2-digit',
+          second: '2-digit',
+          hour12: false  // Use 24-hour format
+      }).format(startDate);
+
+      // Format the end time using German locale
+      let formattedEndTime = new Intl.DateTimeFormat('de-DE', {
+          hour: '2-digit',
+          minute: '2-digit',
+          second: '2-digit',
+          hour12: false  // Use 24-hour format
+      }).format(endDate);
+      
+      function generateEventHTML (info, formattedDate, formattedStartTime, formattedEndTime) {
+      return `
+      <form id="event-form" class="form" style="display: none;" method="post" action="https://feedback.ruhr-uni-bochum.de/formmailer.php" ... >
+      <input type="hidden" name="subject"       value="Teilnahmeanfrage von der Makerspace-Homepage" /> 
+      <div class="form-field">
+        <input type="button" id="close-button" class="md-button" value="Teilnahmeanfrage abbrechen" name="abbrechen" />
+      </div>
+      <div class="event-subject">
+          <label for="event-info"><strong>Deine Teilnahmeanfrage für:</strong></label>
+          <textarea name="event-info" id="event-info" readonly>${info.event.title + '\nam ' + formattedDate + ' von ' + formattedStartTime + ' bis ' + formattedEndTime + ' Uhr'} Uhr</textarea>
+      </div>   
+      <input type="hidden" name="recipients"    value="Torben.Boehnke-makerspace@ruhr-uni-bochum.de"/>
+          <input type="hidden" name="mail_options" value="charset=UTF-8,Exclude=realname;honigtopf;schicken;FromAddr"/>
+          <input type="hidden" name="good_url"      value="https://makerspace.io.noc.ruhr-uni-bochum.de/homepage/danke/"  />       
+          <input type="hidden" name="good_template" value="https://makerspace.io.noc.ruhr-uni-bochum.de/homepage/danke/"  />
+
+          <div class="form-field">
+              <label for="nachname"><strong>Name:</strong></label>
+              <input name="nachname" id="nachname" type="text" maxlength="30" required/>
+          </div>							
+
+          <div class="form-field">
+              <label for="vorname"><strong>Vorname:</strong></label>
+              <input name="vorname" id="vorname" type="text" maxlength="30" required/>
+          </div>							
+
+          <div class="form-field">
+              <label for="email"><strong>E-Mail:</strong></label>
+              <input name="email" id="email" type="email" maxlength="60" required/>
+          </div>			
+
+          <div class="form-field">
+              <label for="tel"><strong>Telefonnummer:</strong></label>
+              <input name="tel" id="tel" type="tel" maxlength="40" placeholder="Optional" />
+          </div>						
+
+          <div class="form-field">
+              <label for="nachricht" id="nachricht-text"><strong>Deine Nachricht:</strong><span class='large'></span></label>
+              <textarea name="nachricht" id="nachricht" placeholder="Hier kannst Du Deine Nachricht schreiben (Limit: 2000 Zeichen)" rows="10"></textarea>
+          </div> 
+
+          <div class="honey" style="display: none;">
+              <label for="honigtopf"><strong>Please do not fill this field:</strong></label>
+              <input name="honigtopf" id="honigtopf" type="text" maxlength="50" value="" />
+          </div>	
+
+          <p>Bitte beachte: Diese Anfrage allein berechtigt Dich noch nicht zur Teilnahme. Die Teilnahme ist erst nach Erhalt einer Bestätigungsmail von uns gültig!</p>
+     
+          <div class="form-field">
+              <input type="submit" class="md-button" value="Teilnahmeanfrage abschicken" name="schicken" />  
+          </div>				
+      </form>
+    </div>
+  `};
+  
+
+  document.getElementById('form-container').innerHTML = generateEventHTML(info, formattedDate, formattedStartTime, formattedEndTime);
+    let form = document.getElementById(`event-form`);
+    form.style.display = 'block';
     },
 
     eventClassNames: function(arg) {
@@ -114,79 +219,37 @@ fetchAndParseICS()
   });
 
   calendar.render();
-
  
-  function getWeekNumber(d) {
-    // Copy date so we don't modify the original
-    d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
-    // Set to nearest Thursday: current date + 4 - current day number
-    d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
-    // Get first day of the year
-    var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
-    // Calculate full weeks to nearest Thursday
-    var weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
-    return weekNo;
-  }
+  //adjusts the height of the iframe to the height of the calendar or contact form (whatever is higher)
+  function adjustHeight() {
+      
+    var wrapper = document.querySelector('.calendar-wrapper');
 
-  function weeks(startDate, endDate) {
-    var startWeek = getWeekNumber(startDate);
-    var endWeek = getWeekNumber(endDate);
-    return (endWeek - startWeek) + 1;
-  }
+    // Initialize default height to 400
+    var newHeight = 400;
+    var wrapperHeight = 400;
 
-  function getVisibleMultiDayEvents(calendarInstance, showPastEvents) {
-    var view = calendarInstance.view;
-    var visibleRangeStart = view.activeStart;
-    var visibleRangeEnd = view.activeEnd;
-    var currentDate = new Date();  // Current date
-
-    var allEvents = calendarInstance.getEvents();
-    var trulyVisibleEvents = allEvents.filter(function(event) {
-        // If showing past events, or the event end date is in the future
-        var isEventRelevant = showPastEvents || (event.end || event.start) >= currentDate;
-        
-        // Check if the event is within the visible range and is relevant
-        return event.start < visibleRangeEnd && (event.end || event.start) > visibleRangeStart && isEventRelevant;
-    });
+    if (wrapper) {
+      wrapperHeight = wrapper.offsetHeight;
+    }
 
-    var multiDayEvents = trulyVisibleEvents.filter(function(event) {
-        var start = event.start;
-        var end = event.end || start;
-        return (end.getTime() - start.getTime()) > 86400000;
-    });
-    
-    return multiDayEvents;
-  }
+    newHeight = wrapperHeight + 10;
 
-  function getMultiDayEventsAdditionalHeight(calendarInstance) {
-    var additionalHeight = 0;
-    var multiDayEventHeight = 24.6;  // As given by you
-    
-    var multiDayEvents = getVisibleMultiDayEvents(calendar, showPastEvents);  // You'll need to implement this function
-  
-    for (var event of multiDayEvents) {
-        var startDate = event.start;
-        var endDate = event.end;
-        
-        // Calculate the number of weeks this event spans
-        var weeksSpanned = weeks(startDate, endDate);  // Convert difference to weeks
-        
-        additionalHeight += weeksSpanned * multiDayEventHeight;
+    console.log("newHeight:", newHeight)
+
+    // Directly set the height of the iframe in the parent
+    var iframeInParent = window.parent.document.getElementById('calendar');
+    if (iframeInParent) {
+        iframeInParent.style.height = newHeight + 'px';
     }
-    console.log("additionalHeight: ", additionalHeight);
-    return additionalHeight;
   }
 
-  function adjustHeight() {
-    setTimeout(function() {
-      var calendarHeight = document.getElementById('calendar').offsetHeight;
-      var additionalHeight = getMultiDayEventsAdditionalHeight(calendar);
-      
-      calendarHeight += additionalHeight;
-      
-      window.parent.postMessage({ height: calendarHeight }, '*');
-    }, 200); // wait for x milliseconds before measuring
-  }
+  // triggers adjustHeight whenever calendar-wrapper changes height
+  var wrapper = document.querySelector('.calendar-wrapper');
+    if (wrapper) {
+      var resizeObserver = new ResizeObserver(adjustHeight);
+      resizeObserver.observe(wrapper);
+    }
   
   // Show/Hide past events
   function handlePastEventsVisibility() {
@@ -202,7 +265,6 @@ fetchAndParseICS()
             dayEl.style.display = showPastEvents ? 'table-row' : 'none';
         });
     }
-    adjustHeight();
     var visibleEvents = calendar.getEvents();
     console.log("All visible events:", visibleEvents);
     var multiDayEvents = visibleEvents.filter(function(event) {
@@ -213,8 +275,5 @@ fetchAndParseICS()
   console.log("Filtered multi-day events:", multiDayEvents);
   
   }
-
-  adjustHeight();
 });
 
-
diff --git a/docs/kalender2.md b/docs/kalender2.md
index c3c37ab2d907e8bfa2ec762e2cc2fc10350fedce..b839bc6d661d00e01be387915121698cd67c1887 100644
--- a/docs/kalender2.md
+++ b/docs/kalender2.md
@@ -12,7 +12,7 @@ Hier findest Du öffentliche Termine im Makerspace. Anmeldemöglichkeiten und we
     - Wenn Du ein Event bei uns ausrichtest, das Du gern im Kalender hättest, [sag uns gern Bescheid](kontakt.md).
     - Du kannst unseren Kalender [über diesen Link](data/calendar.ics) auch direkt in der App Deiner Wahl abonnieren.
 
-<iframe id="calendar" style="display: block; width: 100%; height: 100%; border: none;"></iframe>
+<iframe src="../calendar_dark2.html" id="calendar" style="display: block; width: 100%; height: 100%; border: none;"></iframe>
 
 <script src="../javascripts/colorswitchcalendar2.js" defer></script>
 <script>
diff --git a/docs/stylesheets/calendar.css b/docs/stylesheets/calendar.css
new file mode 100644
index 0000000000000000000000000000000000000000..07e346c2b010107b9813b6a038027d540effa029
--- /dev/null
+++ b/docs/stylesheets/calendar.css
@@ -0,0 +1,167 @@
+html, body {
+    overflow: hidden;
+}
+
+/* defines the general appearance of the iframe and contains fullcalendar specific variables */
+body {
+    width: 100%;
+    height: 100%;
+    margin: 0;
+    padding: 0;
+    font-family: "RUBFlama", sans-serif;
+    color: var(--high-contrast-font) ;
+    background-color: var(--md-default-bg-color);
+
+    --fc-small-font-size: .85em;
+    --fc-page-bg-color: var(--tabs-color);
+    --fc-neutral-bg-color: rgba(208, 208, 208, 0.3);
+    --fc-neutral-text-color: var(--high-contrast-font);
+    --fc-border-color: #ddd;
+
+    --fc-button-text-color: white;
+    --fc-button-bg-color: var(--tabs-color);
+    --fc-button-border-color: var(--high-contrast-font);
+    --fc-button-hover-bg-color: var(--header-bg-color);
+    --fc-button-hover-border-color: var(--high-contrast-bg);
+    --fc-button-active-bg-color: rgba(var(--header-bg-color-for-alpha), 0.8);
+    --fc-button-active-border-color: var(--high-contrast-font);
+
+    --fc-event-bg-color: var(--tabs-color);
+    --fc-event-border-color: var(--high-contrast-font);
+    --fc-event-text-color: var(--high-contrast-font);
+    --fc-event-selected-overlay-color: rgba(0, 0, 0, 0.25);
+
+    --fc-more-link-bg-color: #d0d0d0;
+    --fc-more-link-text-color: inherit;
+
+    --fc-event-resizer-thickness: 8px;
+    --fc-event-resizer-dot-total-width: 8px;
+    --fc-event-resizer-dot-border-width: 1px;
+
+    --fc-non-business-color: rgba(215, 215, 215, 0.3);
+    --fc-bg-event-color: rgb(143, 223, 130);
+    --fc-bg-event-opacity: 0.3;
+    --fc-highlight-color: rgba(188, 232, 241, 0.3);
+    --fc-today-bg-color: rgba(255, 220, 40, 0.15);
+    --fc-now-indicator-color: red;
+
+    --fc-list-event-dot-width: 10px;
+    --fc-list-event-hover-bg-color: var(--header-bg-color);
+}
+
+/* Here are a few changes to the standard fullcalendar classes (starting with .fc) */
+.fc {
+    color: var(--high-contrast-font);
+    padding: 1px;
+}
+
+.fc-event-main {
+    overflow-wrap: normal;
+    white-space: normal;
+    word-break: normal;
+    overflow: hidden; 
+}
+
+.fc-event {
+    border-style: none;
+    padding: 2px;
+    margin: 2px;      
+}
+
+/* The classes defining the design of the contact form */
+#form-container {
+    display: block;
+}
+
+.form {
+    position: relative;
+    max-width: 1200px;
+    min-width: 400px;
+    margin: auto;
+    z-index: 5;
+    padding: 20px;
+    background-color: var(--md-default-bg-color);
+    border-radius: var(--border-radius);
+    border: var(--header-bg-color);
+}
+
+.form-field {
+    display: flex;
+    flex-direction: column;
+    align-items: flex-start;
+    margin-bottom: 10px;
+}
+
+.form-field label {
+    font-size: 18px;
+}
+
+.form-field input,
+.form-field textarea {
+    width: 100%;
+    color:var(--high-contrast-font);
+    font-size: 1.3em;
+    background-color: var(--high-contrast-bg);
+    padding: 2px;
+    border-radius: var(--border-radius);
+    border-style: none;
+}
+
+.form-field textarea {
+    resize: vertical;
+}
+
+td.fc-list-event-title:hover a {
+    color: white;
+}
+
+/* Design of the text-field of the contact form that holds the selected event informations. */
+.event-subject textarea {
+    width: 100%;
+    height: auto; 
+    resize: none;  /* Prevent resizing of the textarea */
+    color:var(--high-contrast-font);
+    font-size: 1.3em;
+    padding: 2px;
+    background-color: var(--contact-form);
+    border-color: var(--contact-form);
+}
+
+/* Class-changes needed for the "show/hide past events-function" */
+.past-event {
+    display: none;
+}
+
+.fc-list-event.past-event {
+    border-color: transparent;
+}
+
+.fc-list-day.fc-day.fc-day-past {
+    display: none;
+}
+
+/* .md-button Änderungen --> */
+.md-button {
+  border-radius: var(--border-radius);
+  background-color: rgba(15, 54, 90, 1);
+  color: white;
+  border: 0.1rem solid;
+  cursor: pointer;
+  display: inline-block;
+  font-weight: 700;
+  padding: 0.625em 2em;
+  transition: color 125ms,background-color 125ms,border-color 125ms;
+}
+
+.md-button:is(:focus) {
+  border-radius: var(--border-radius);
+  background-color: rgba(15, 54, 90, 1);
+  color: white;
+  border-color: white;
+}
+
+.md-button:is(:hover) {
+  background-color: var(--hover-color);
+  border-color: var(--header-bg-color);
+  color: var(--high-contrast-font);
+}
\ No newline at end of file
diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css
index 92c151793585d235bd6ff65cbf9c3f5d2eef749f..b968ef9f6c344bd19a9e914e18d12a1489da4826 100644
--- a/docs/stylesheets/extra.css
+++ b/docs/stylesheets/extra.css
@@ -1,71 +1,3 @@
-:root {
-    --md-primary-fg-color: #003561;
-    --md-accent-fg-color: #651e38;
-    --md-default-bg-color: #FDFFE0;
-    --md-text-font: "RUBFlama"; 
-    --md-footer-bg-color--dark: white;
-    --border-radius: 4px;
-    --rub-blau: 15, 54, 90;
-}
-
-[data-md-color-scheme="slate"] {
-    --md-primary-fg-color: #7d7d7d;
-    --md-accent-fg-color: #792443;
-    --md-footer-bg-color--dark: white;
-    --header-bg-color: rgba(108, 27, 64, 1);
-    --header-bg-color-for-alpha: 108, 27, 64;
-    --counter-grid-color: #444444;
-    /* --tabs-color: rgba(0, 99, 53, 1); */
-    --tabs-color: rgba(15, 54, 90, 1);
-    --tabs-font-color: rgb(205, 205, 205);
-    --tabs-nav-int: rgba(108, 27, 64, 1);
-    --high-contrast-bg: rgb(25, 25, 25);
-    --high-contrast-font: rgb(240, 240, 240);
-    --keywords-bg: rgba(108, 27, 64, 1);
-    --md-footer-bg-color: rgba(15, 54, 90, 1);
-    --contact-form: rgb(51, 51, 51);
-    --hover-color:rgba(108, 27, 64, 1);
-    --link-color: rgba(141, 174, 16, 1);
-}
-
-[data-md-color-scheme="default"] {
-    --md-primary-fg-color: #003561;
-    --md-accent-fg-color: #651e38;
-    --md-default-bg-color: #FFF5FA;
-    --md-text-font: "RUBFlama"; 
-    --md-footer-bg-color--dark: white;
-    --md-default-fg-color--light: rgb(47, 47, 47);
-    --header-bg-color: rgba(15, 54, 90, 1);
-    --header-bg-color-for-alpha: 15, 54, 90;
-    --counter-grid-color: #fff5fb;
-    --tabs-color: rgba(247, 164, 168, 1);
-    --tabs-font-color: rgb(58, 58, 58);
-    --tabs-nav-int: rgb(170, 210, 119);
-    --high-contrast-bg: rgb(228, 228, 228);
-    --high-contrast-font: rgb(21, 21, 21);
-    --keywords-bg: rgba(247, 164, 168, 1);
-    --md-footer-bg-color: rgba(15, 54, 90, 1);
-    --contact-form: rgb(199, 199, 199);
-    --hover-color: rgba(247, 164, 168, 1);
-    --link-color: rgba(15, 54, 90, 1);
-}
-
-[data-md-color-scheme="old_default"] {
-  --md-primary-fg-color: #003561;
-  --md-accent-fg-color: #651e38;
-  --md-default-bg-color: #FFF5FA;
-  --md-text-font: "RUBFlama"; 
-  --md-footer-bg-color--dark: white;
-  --md-default-fg-color--light: rgb(47, 47, 47);
-  --header-bg-color: #f6a4a8;
-  --counter-grid-color: #fff5fb;
-  --tabs-color: #A8F6A4;
-  --tabs-font-color: rgb(58, 58, 58);
-  --high-contrast-bg: rgb(228, 228, 228);
-  --high-contrast-font: rgb(21, 21, 21);
-  --keywords-bg: #f6a4a83a;
-}
-
 @font-face {
     font-family: "RUBFlama";
     src: url('../medien/flamapro-basic.woff') format('woff2');
diff --git a/docs/stylesheets/variables.css b/docs/stylesheets/variables.css
new file mode 100644
index 0000000000000000000000000000000000000000..66d7cff3721a07edea5fce9c164cdae5cd27578e
--- /dev/null
+++ b/docs/stylesheets/variables.css
@@ -0,0 +1,57 @@
+:root {
+    --md-primary-fg-color: #003561;
+    --md-accent-fg-color: #651e38;
+    --md-default-bg-color: #FDFFE0;
+    --md-text-font: "RUBFlama"; 
+    --md-footer-bg-color--dark: white;
+    --border-radius: 4px;
+    --rub-blau: 15, 54, 90;
+}
+
+[data-md-color-scheme="slate"] {
+    --md-hue: 208;
+    --md-default-bg-color: hsla(var(--md-hue), 15%, 21%, 1);
+    --md-primary-fg-color: #7d7d7d;
+    --md-accent-fg-color: #792443;
+    --md-footer-bg-color--dark: white;
+    --header-bg-color: rgba(108, 27, 64, 1);
+    --header-bg-color-for-alpha: 108, 27, 64;
+    --counter-grid-color: #444444;
+    --tabs-color: rgba(15, 54, 90, 1);
+    --tabs-font-color: rgb(205, 205, 205);
+    --tabs-nav-int: rgba(108, 27, 64, 1);
+    --high-contrast-bg: rgb(25, 25, 25);
+    --high-contrast-font: rgb(240, 240, 240);
+    --keywords-bg: rgba(108, 27, 64, 1);
+    --md-footer-bg-color: rgba(15, 54, 90, 1);
+    --contact-form: rgb(51, 51, 51);
+    --hover-color:rgba(108, 27, 64, 1);
+    --link-color: rgba(141, 174, 16, 1);
+}
+
+[data-md-color-scheme="default"] {
+    --md-primary-fg-color: #003561;
+    --md-accent-fg-color: #651e38;
+    --md-default-bg-color: #FFF5FA;
+    --md-text-font: "RUBFlama"; 
+    --md-footer-bg-color--dark: white;
+    --md-default-fg-color--light: rgb(47, 47, 47);
+    --header-bg-color: rgba(15, 54, 90, 1);
+    --header-bg-color-for-alpha: 15, 54, 90;
+    --counter-grid-color: #fff5fb;
+    --tabs-color: rgba(247, 164, 168, 1);
+    --tabs-font-color: rgb(58, 58, 58);
+    --tabs-nav-int: rgb(170, 210, 119);
+    --high-contrast-bg: rgb(228, 228, 228);
+    --high-contrast-font: rgb(21, 21, 21);
+    --keywords-bg: rgba(247, 164, 168, 1);
+    --md-footer-bg-color: rgba(15, 54, 90, 1);
+    --contact-form: rgb(199, 199, 199);
+    --hover-color: rgba(247, 164, 168, 1);
+    --link-color: rgba(15, 54, 90, 1);
+}
+
+@font-face {
+    font-family: "RUBFlama";
+    src: url('../medien/flamapro-basic.woff') format('woff2');
+}
diff --git a/mkdocs.yml b/mkdocs.yml
index 5380315ce3b08322f0cd5f8657c13cbea3b8c3dd..2711b22834059f0d0507110b48c24f7b30efd4ce 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -348,6 +348,7 @@ extra:
       lang: de
 
 extra_css:
+  - 'stylesheets/variables.css'
   - 'stylesheets/extra.css'
 
 extra_javascript: