/* Global styles */
* { 
  margin: 0; 
  padding: 0; 
  box-sizing: border-box; 
}

/* Shared font size for time, header, lesson-title, and FREI */
.main-text {
  font-size: 20px;
}

body { 
  font-family: Arial, Helvetica, sans-serif; 
  background: #000000; 
  color: #ffffff; 
  padding: 0;
  margin: 0;
  line-height: 1.2;
  font-size: 12px;
  max-width: 900px;
  height: 567px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

h1 { 
  text-align: center; 
  margin-bottom: 10px; 
  font-size: 18px; 
  border-bottom: 2px solid #a0a0a0;
  padding-bottom: 5px;
  display: none;
}

/* Table container - pseudo-viewport positioned absolutely, establishes context for absolute-positioned children */
#table-container {
  position: absolute;
  left: 0;
  top: 0;
}

.day-header {
  position: absolute;
  height: 35px;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  font-weight: bold;
  font-size: 20px;
  padding: 1px 0px 0px 1px;
  border: 1px solid #a0a0a0;
  background: #000000;
  z-index: 50;
}

.time-marker {
  position: absolute;
  text-align: left;
  font-size: 20px;
  font-weight: bold;
  border: 1px solid #a0a0a0;
  background: #000000;
  padding: 1px 0px 0px 1px;
  line-height: 1.1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  z-index: 40;
}



/* Lesson display */
.lesson {
  position: absolute;
  border: 1px solid #a0a0a0;
  padding: 3px;
  background: #000000;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.lesson-subject { 
  font-weight: bold;
  font-size: 20px;
  padding: 1px 0px 0px 1px;
  margin-bottom: 2px;
}

.lesson-time { 
  font-size: 20px;
  padding: 1px 0px 0px 1px;
  display: none;
}

.lesson-teacher {
  font-size: 20px;
  padding: 1px 0px 0px 1px;
  margin-bottom: 1px;
}

.lesson-annotation {
  font-size: 20px;
  padding: 1px 0px 0px 1px;
  margin-bottom: 1px;
}

.lesson-room {
  font-size: 20px;
  padding: 1px 0px 0px 1px;
}

.lesson-label {
  font-weight: bold;
  text-decoration: underline;
  font-size: 20px;
  padding: 1px 0px 0px 1px;
}

.cancelled-lesson {
  background: #808080;
}

.cancelled-lesson .lesson-subject {
  text-decoration: line-through;
}

.holiday-lesson {
  background: #808080 !important;
  border: 2px solid #a0a0a0;
  align-items: center;
  justify-content: center;
  font-weight: bold;
}

/* Old table styles (kept for backwards compatibility if needed) */
.calendar-grid { 
  display: none;
}

.calendar-grid th, .calendar-grid td { 
  display: none;
}

.time-col { 
  display: none;
}

.date-header { 
  display: none;
}

.lesson-cell {
  display: none;
}

.frei-lesson {
  display: none;
}

.holiday-row {
  display: none;
}

.holiday-cell {
  display: none;
}

/* Footer and messages */
.footer {
  margin-top: 10px; 
  text-align: center;
  font-size: 8px;
  border-top: 1px solid #a0a0a0;
  padding-top: 5px;
  display: none;
}

#content {
  position: relative;
}

.error {
  color: #ffffff;
  font-weight: bold;
  padding: 5px;
  background: #000000;
  border: 1px solid #ffffff;
  margin: 5px 0;
  font-size: 12px;
}

.hint {
  text-align: center;
  font-size: 16px;
  color: #ffffff;
  background: #000000;
  border: 2px solid #ffffff;
  margin-top: 10px;
  padding: 10px;
  font-weight: bold;
  display: none;
}
