*,
*:after,
*:before {
    box-sizing: border-box;
}

body {
    margin: 0;
    padding: 0;
    height: 100%;
    position: relative;
    background: #efefef;
  
    font-family: sans-serif;
}

.widewrapper {
    background: #fff;
}

.narrowwrapper {
    background: #fff;
}

@media (min-width: 768px) {
    .widewrapper {
        width: 80%;
        margin: 1em auto;
        border: 4px solid #e2e2e2;
        box-shadow: 0 10px 9px -6px #c5c5c5;
        border-top-width: 25px;
        border-bottom-width: 32px;
        border-radius: 8px;
    }

    .narrowwrapper {
        width: 50%;
        margin: 1em auto;
        border: 4px solid #e2e2e2;
        box-shadow: 0 10px 9px -6px #c5c5c5;
        border-top-width: 25px;
        border-bottom-width: 32px;
        border-radius: 8px;
    }
}

div#calendar {
    margin: 0;
    padding: 0;
    display: block;
    width: 100%;
    background: #f3f3f3;
}

table {
    width: 100%;
    font-family: sans-serif;
    border-collapse: separate;
    border-spacing: 0;
}

.head_cal {
    background: #fff;
    color: #85baff;
    font-size: 2rem;
    line-height: 3rem;
    text-transform: uppercase;
}

.goto_today {
    padding: 15px;
    font-size: 1.25rem;
    border-radius: 5px;
    /*border: solid 1px #eee;*/
}
.goto_today:hover {
    background-color: #eee;
}

.cycle_month {
    padding: 15px;
    padding-left: 20px;
    padding-right: 20px;
    font-size: 1.25rem;
    border-radius: 50%;
    /*border: solid 1px #eee;*/
}
.cycle_month:hover {
    background-color: #eee;
}


.head_cal a {
    text-decoration: none;
    color: #85baff;
}

.week_or_month {
    display: inline-block;
    text-decoration: none;
    color: #85baff;
    font-size: 15px;
    padding-left: 10px;
    padding-right: 10px;
    margin: 10px;
    height: 1.5rem;
    line-height: 1.5rem;
}

.enabled {
    background: #e0e0e0;
    border-radius: 5px;
}

.subhead_cal {
    background: #85baff;
    color: #fff;
    font-size: 1.2rem;
    line-height: 2rem;
}

.week_cal {
    background: #fff;
    color: #d7d7d7;
    font-size: 1rem;
    line-height: 2rem;
}

.white_cal {
    background: #ececec !important;
}

tbody.table {
    table-layout: fixed;
}

.days_cal .user_listing tr td {
    background: none;
    border: none;
    text-align: left;
}

tbody.days_cal tr td a span {
    padding: 0;
    text-decoration: none;
    background: #fff;
    color: #888;
    /*min-height: 5rem;*/
    width: 100%;
    line-height: 2.0rem;
    display: block;
}

div.calendar_day {
    position: relative;
    padding: 0;
    text-decoration: none;
    color: #888;
    min-height: 7rem;
    width: 100%;
    line-height: 2.0rem;
    display: block;
    font-size: 1.25rem;
}

.days_cal .past_day_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(245,245,245, 0.5); /* Semi-transparent color */
    z-index: 1; /* Higher z-index value to appear above the element */
    pointer-events: none;
}

tbody.days_cal tr td {
    padding: 0;
    margin: 0;
    border: 1px solid #ececec;
    text-align: center;
    width: 14.28571428571429%;
    height: auto;
    background: #fff;
    vertical-align: top;
}

.days_cal td {
    position: relative;
}

.event {
    color: #85baff !important;
    transition: all 0.1s ease;
}

tbody.days_cal .today {
    transition: all 0.1s ease;
    border: 3px solid #0069b6;
    color: #85baff !important;
}

.week_event {
    color: #85baff;
}

#calendar_data {
    margin: auto;
    padding: 0;
    top: 5%;
    left: 2%;
    width: 96%;
    min-height: 90%;
    position: fixed;

    background: #fff;
    color: #c5c5c5;
    opacity: 0;
    visibility: hidden;
    transform: scale(0, 0);
    transition: all 0.025s ease;
    border: 1px solid #dfdfdf;
    z-index: 2;
    padding-bottom: 3rem;
}

@media (min-width: 768px) {
    #calendar_data {
        position: absolute;
        top: 5%;
        left: 5%;
        width: 60%;
        max-width: 500px;
        height: 90%;
        box-shadow: 0 10px 9px -6px #c5c5c5;
    }
}

#calendar_data h4 {
    text-align: center;
    font-size: 20px;
    padding: 5px 10px;
    margin: 0;
    color: #666;
}

.data_line {
    text-align: center;
    margin: auto;
    margin-bottom: 10px;
    margin-top: 10px;
    width: 90%;
    color: #666; /* hehe */
}

.input_line {
    margin: auto;
    margin-bottom: 10px;
    margin-top: 10px;
    width: 90%;
    color: #666; /* hehe */
}

.create_event_wrapper {
    margin:auto;
    max-width:600px;
}

.input_line label {
    font-size: 15px;
    color: #666; /* hehe */
    
    margin-right: 10px;
}

.input_line input {
    width: 60%;
    float: right;
}
input.create_event {
    float: left;
    height: 2rem;
    
    width: 40%;
}
input.delete_event {
    float: right;
    height: 2rem;
    background-color: #fcc;
    border: 1px solid #700;
    border-radius: 4px;
    width: 20%;
}
input.delete_event:hover {
    background-color: #ffdddd;
    border: 1px solid #800;
}

.input_line textarea {
    width: 100%;
    max-width: 100%;
    height: 8rem;
    display: flex;
    justify-content: flex-end;
}

#calendar_data a:not(.hideEvent) {
    color: #43aeef;
    border: 0.1rem solid #43aeef;
    padding: 0.2rem 1rem;
    text-decoration: none;
}
.show_data {
    opacity: 1 !important;
    visibility: visible !important;
    transform: scale(1, 1) !important;
    transition: all 0.05s ease;
}

#calendar_data .userlist {
    margin: auto;
    margin-top: 10px;
    width: 90%;
}
#calendar_data .userlist td {
    margin: auto;
    width: 50%;
    color: #666; /* hehe */
}
#calendar_data .userlist th {
    margin: auto;
    width: 50%;
    color: #666; /* hehe */
    text-align: center;
}

#calendar_data .headline-container {
    text-align: center;
    font-size: 1.5rem;
    padding: 5px 10px;
    margin: 0;
    background: #f2f2f2;
    color: #43aeef;
    border-bottom: 1px solid #dfdfdf;
    text-transform: capitalize;

    display: flex; /* or use display: inline */
    justify-content: flex-end;
    gap: 10px; /* Add some padding for a better look */
}

#calendar_data .headline-container a {
    color: #fff;
    text-decoration: none; /* Remove underline */
    border: none;
    padding: 0px;
}

#calendar_data .headline-container .close {
    color: #666;
    text-decoration: none; /* Remove underline */
    border: none;
    padding-left: 10px;
    font-size: 1.5rem;
}

#calendar_data .headline-container span {
    margin-right: auto; /* Remove right margin from the last link */
    margin-left: auto; /* Remove right margin from the last link */
    font-weight: bold;
}

#schedule_summary {
    padding: 20px;
}

#legend {
    padding: 20px;
}

.scheduled_event_user {
    display: inline-block;
    border-radius: 4px;
    margin-top: 2px;
    margin-bottom: 2px;
    margin-left: 5px; 
    margin-right: 5px;
    padding: 5px;

    text-decoration: none;
    font-family: sans-serif;
    
    background: #666;  /* hehe */
    font-size: 1.0rem;
    font-weight: bold;
    color: lightgreen;
    border: none;
}

.scheduled_event_user i {
    color: lightgreen;
}

.deliberate_event_user {
    display: inline-block;
    border-radius: 4px;
    margin-top: 2px;
    margin-bottom: 2px;
    margin-left: 5px;
    margin-right: 5px;
    padding: 5px;

    text-decoration: none;
    font-family: sans-serif;

    background: #666;  /* hehe */
    font-size: 1.0rem;
    color: white;
    border: none;
}

.deliberate_event_user i {
    color: white;
}

.event_user {
    display: inline-block;
    border-radius: 4px;
    margin-top: 2px;
    margin-bottom: 2px;
    margin-left: 5px; 
    margin-right: 5px;
    padding: 5px;

    text-decoration: none;
    font-family: sans-serif;
    
    background: #666; 
    font-size: 1.0rem;
    color: #bbb;
    border: none;
}

.hideEvent {
    position: absolute;
    right: 0;
    top: 0;
    font-size: 2rem;
    font-family: sans-serif;
    font-weight: 300;
    text-align: center;
    text-decoration: none;
    width: 2rem;
    height: 2rem;
    line-height: 2rem;
    background: #f2f2f2;
    border-left: 0.1rem solid #e5e5e5;
    color: #d3d3d3 !important;
}

.hideEvent:hover {
    text-decoration: none;
    color: #f55;
}
 
.calendar_event {
    line-height: 1rem;
}

tbody.days_cal .calendar_event .event_time {
    color: #eee; 
}

tbody.days_cal .calendar_event .warning {
    color: #ff5; 
}

tbody.days_cal .calendar_event .bad {
    color: #f66;
    font-weight: bold;
}

tbody.days_cal .calendar_event .good {
    color: #5f5; 
}

tbody.days_cal .calendar_event .info {
    color: lightblue;
}

tbody.days_cal .calendar_event span {
    background: none;
    color: white;
    line-height: 1.25rem;
}

.calendar_event .event_title {
    text-transform: uppercase;
    font-weight: bold; 
    background: none; 
    color: white; 
}

.calendar_event:hover a {
    background: #666; /* hehe */
}

.calendar_event table {
    padding-top: 10px;
}

.calendar_event a {
    display: inline-block;
    border-radius: 4px;
    margin-top: 2px;
    margin-bottom: 10px;
    margin-left: 5px; 
    margin-right: 5px;
    padding: 5px;

    width: 90%;
    
    text-decoration: none;
    font-family: sans-serif;
    
    background: #444; 
    font-size: 1.0rem;
    color: white;
}

.calendar_event_adder {
/*    background: #fff; */
    line-height: 1rem;
}

.calendar_event_adder a {
    display: inline-block;
    border-radius: 4px;
    margin-top: 2px;
    margin-bottom: 10px;
    margin-left: 5px; 
    margin-right: 5px;
    padding: 0.5rem;

    text-decoration: none;
    font-family: sans-serif;
    
    background: #444; 
    font-size: 1.5rem;
    line-height: 1.5rem;
    color: white;

    height: 2.5rem;
    width: 2.5rem;
}

@media (max-width: 767px) {

    .calendar_event_adder a::before {
        content: "+";
    }

}

@media (min-width: 768px) {
    .calendar_event_adder a {
        visibility: hidden;
        width: 90%;
        font-size: 1.0rem;
    }

    .calendar_event_adder a::before {
        content: "+ Neue Veranstaltung";
    }

    .days_cal td:hover .calendar_event_adder a {
        visibility: visible;
    }

    .calendar_event_adder:hover a {
        text-decoration: underline;
        background: #666 !important; /* hehe */
    }

}

.info_page {
    padding: 1rem;
}

.outline_schedule {
    border: 1px solid #d0d0d0;
}

.scrollable {
    overflow-x: auto;
}

.outline_schedule td {
    width:12.5%;
    text-align: center;
    border: 1px solid #d0d0d0;
}

.outline_schedule th {
    text-align: center;
    border: 1px solid #d0d0d0;
    background: #f0f0f0;
}

.outline_schedule tr:hover {
    background: #f8f8f8;
}

.permissions {
    border: 1px solid #d0d0d0;
}

.permissions td {
    text-align: center;
    border: 1px solid #d0d0d0;
}

.permissions th {
    text-align: center;
    border: 1px solid #d0d0d0;
    background: #f0f0f0;
    font-size: 0.85rem;
    padding-left: 5px;
    padding-right: 5px;
    padding-top: 2px;
    padding-bottom: 2px;
}

.permissions tr:hover {
    background: #f8f8f8;
}

.statistics {
    border: 1px solid #d0d0d0;
}

.statistics td {
    width:10%;
    text-align: center;
    border: 1px solid #d0d0d0;
}

.statistics th {
    text-align: center;
    border: 1px solid #d0d0d0;
    background: #f0f0f0;
}

.statistics tr:hover {
    background: #f8f8f8;
}

.user_overview td {
    text-align: center;
}

.schedule_insert {
    height: 2rem;
    width: 100%;
    font-size: 1rem;
}
.schedule_remove {
    height: 2rem;
    width: 100%;
}

tr.spacer-row {
    height: 1rem; /* Set the desired height */
}

.link-container {
    text-decoration: none; /* Remove underline */
    padding: 10px; /* Add some padding for a better look */
    font-size: 1.25rem;
}

.link-container a {
    display: inline-block;
    white-space: nowrap;
    margin-right: 20px; /* Add spacing between the links */
    margin-bottom: 10px; /* Add spacing between the links */
    text-decoration: none; /* Remove underline */
}

@media (min-width: 768px) {
    .link-container {
      display: flex; /* or use display: inline */
      text-decoration: none; /* Remove underline */
      padding: 10px; /* Add some padding for a better look */
    }

    .link-container a {
      display: inline-block; /* or use display: inline */
      margin-right: 10px; /* Add spacing between the links */
      text-decoration: none; /* Remove underline */
    }

    .link-container a:last-child {
      margin-left: auto; /* Remove right margin from the last link */
    }
}

.error-box {
  color: #d71008;
  background-color: #f0d0c8; /* Red background color */
  border: 2px solid #e74c3c; /* Darker red border */
  border-radius: 5px; /* Rounded corners */
  font-size: 15px; /* Font size */
  margin: 10px 0; /* Add some margin for spacing */
  padding-left: 15px;
  padding-right: 15px;
}

.info-box {
  color: #0870c7;
  background-color: #e0e8f0; /* Red background color */
  border: 2px solid #4c8ce7; /* Darker red border */
  border-radius: 5px; /* Rounded corners */
  font-size: 15px; /* Font size */
  margin: 10px 0; /* Add some margin for spacing */
  padding-left: 15px;
  padding-right: 15px;
}

.assigned-highlight {
    border: 2px solid #fff; /* White border */
}

.calendar_event a.assigned-highlight {
    border: none;
    background-color: #225465
}

.calendar_event a.scheduled-highlight {
    border: none;
    background-color: #0069b6
}

.hint {
    color: grey;
    font-size: 14px;
    font-style: italic;
}

select {
    height: 30px;
    width: 100%;
}
