/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

.simple-calendar {
  border-collapse: collapse;
  width: 100%;
  table-layout: fixed;
}

.simple-calendar .day {
  height: 120px;
  vertical-align: top;
  border: 1px solid #ddd;
  padding: 5px;
  width: 14.28%; /* 100% / 7 days = equal width */
  word-wrap: break-word;
  overflow: hidden;
}

.simple-calendar th,
.simple-calendar td {
  width: 14.28%;
  min-width: 0;
}

.simple-calendar .calendar-heading {
  display: none; /* Hide default calendar header */
}

.calendar-day-header {
  background-color: #f8f9fa;
  border: 1px solid #ddd;
  padding: 10px 5px;
  text-align: center;
  font-weight: bold;
  width: 14.28%;
}

.simple-calendar .wday-0 { color: #ff0000; } /* Sunday */
.simple-calendar .wday-6 { color: #0000ff; } /* Saturday */

.simple-calendar .today { 
  background-color: #ffff99;
}

.simple-calendar .event {
  display: block;
  background-color: #007bff;
  color: white;
  padding: 2px 4px;
  margin: 1px 0;
  border-radius: 3px;
  font-size: 11px;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.simple-calendar .event:hover {
  background-color: #0056b3;
  color: white;
  text-decoration: none;
}

.simple-calendar .event-red { background-color: #dc3545; }
.simple-calendar .event-green { background-color: #28a745; }
.simple-calendar .event-blue { background-color: #007bff; }
.simple-calendar .event-yellow { background-color: #ffc107; color: #000; }
.simple-calendar .event-purple { background-color: #6f42c1; }
.simple-calendar .event-orange { background-color: #fd7e14; }

.event-container {
  display: flex;
  align-items: center;
  gap: 2px;
  margin: 1px 0;
}

.event-container .event {
  flex: 1;
  margin: 0;
}

.completion-btn {
  font-size: 10px;
  padding: 1px 3px;
  border-radius: 2px;
  text-decoration: none;
  font-weight: bold;
  min-width: 12px;
  text-align: center;
  line-height: 1;
}

.completion-btn.incomplete {
  background-color: #ffffff;
  color: #28a745;
  border: 1px solid #28a745;
}

.completion-btn.completed {
  background-color: #28a745;
  color: white;
  border: 1px solid #28a745;
}

.completion-btn:hover {
  opacity: 0.8;
  text-decoration: none;
}

.simple-calendar .event-completed {
  background-color: #6c757d !important;
  opacity: 0.7;
}

.calendar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.header-left {
  display: flex;
  align-items: center;
  gap: 20px;
}

.calendar-header h2 {
  margin: 0;
}

/* Digital Clock Styles */
.realtime-clock {
  background: #000;
  color: #00ff00;
  font-family: 'Courier New', monospace;
  padding: 8px 36px;
  border-radius: 5px;
  display: flex;
  align-items: baseline;
  gap: 5px;
  box-shadow: inset 0 0 10px rgba(0, 255, 0, 0.3);
  border: 1px solid #00ff00;
}

#time-display {
  font-size: 29px;
  font-weight: bold;
  letter-spacing: 2px;
}

#seconds-display {
  font-size: 19px;
  color: #00aa00;
  font-weight: normal;
}

/* Mobile and tablet responsive styles */
@media (max-width: 900px) {
  .realtime-clock {
    display: none;
  }
  
  /* Ensure equal column widths on mobile */
  .calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    width: 100%;
    overflow-x: auto;
  }
  
  .calendar-day {
    min-height: 80px;
    padding: 3px;
    font-size: 14px;
    min-width: 0;
    overflow: hidden;
  }
  
  .day-number {
    font-size: 12px;
  }
  
  .day-header-row {
    margin-bottom: 2px;
    min-height: 16px;
  }
  
  .holiday-name {
    font-size: 7px;
    line-height: 1;
  }
  
  .calendar-day .event {
    font-size: 10px;
    padding: 1px 2px;
    margin: 1px 0;
  }
  
  .completion-btn {
    font-size: 8px;
    padding: 1px 2px;
  }
  
  /* Mobile day headers */
  .calendar-headers {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  
  .day-header {
    padding: 5px 2px;
    font-size: 12px;
    min-width: 0;
  }
}

/* Tablet specific adjustments */
@media (min-width: 769px) and (max-width: 1024px) {
  .calendar-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  }
  
  .calendar-headers {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  }
  
  .calendar-day {
    min-width: 0 !important;
    padding: 4px;
  }
}

.form-row {
  display: flex;
  gap: 15px;
  margin-bottom: 20px;
}

.form-row .form-group {
  flex: 1;
}

/* Custom Calendar Styles */
.custom-calendar {
  width: 100%;
  border: 1px solid #ddd;
  overflow-x: auto;
  box-sizing: border-box;
}

.calendar-headers {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background-color: #f8f9fa;
  width: 100%;
}

.day-header {
  padding: 10px 5px;
  text-align: center;
  font-weight: bold;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  min-width: 0;
  box-sizing: border-box;
}

.day-header:last-child {
  border-right: none;
}

/* Saturday (土) - Blue */
.day-header.saturday {
  color: #0066ff;
  font-weight: bold;
}

/* Sunday (日) - Red */
.day-header.sunday {
  color: #ff0000;
  font-weight: bold;
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  width: 100%;
}

.calendar-day {
  min-height: 120px;
  padding: 5px;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  vertical-align: top;
  position: relative;
  background-color: white;
  min-width: 0;
  box-sizing: border-box;
}

.calendar-day:nth-child(7n) {
  border-right: none;
}

.calendar-day.other-month {
  background-color: #f8f9fa;
  color: #6c757d;
}

.calendar-day.today {
  background-color: #fff3cd;
  border: 2px solid #ffc107;
}

.day-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 3px;
  min-height: 20px;
}

.day-number {
  font-weight: bold;
  flex-shrink: 0;
}

.holiday-name {
  font-size: 9px;
  color: #ff69b4;
  font-weight: bold;
  text-align: right;
  line-height: 1.1;
  flex-shrink: 1;
  min-width: 0;
  word-break: break-all;
  margin-left: 2px;
}

/* Saturday date - Blue */
.calendar-day.saturday .day-number {
  color: #0066ff;
}

/* Sunday date - Red */
.calendar-day.sunday .day-number {
  color: #ff0000;
}

/* Holiday date - Pink */
.calendar-day.holiday .day-number {
  color: #ff69b4;
  font-weight: bold;
}

.calendar-day .event-container {
  display: flex;
  align-items: center;
  gap: 2px;
  margin: 1px 0;
}

.calendar-day .event {
  flex: 1;
  display: block;
  background-color: #007bff;
  color: white;
  padding: 2px 4px;
  margin: 0;
  border-radius: 3px;
  font-size: 11px;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-day .event:hover {
  background-color: #0056b3;
  color: white;
  text-decoration: none;
}

.calendar-day .event-red { background-color: #dc3545; }
.calendar-day .event-green { background-color: #28a745; }
.calendar-day .event-blue { background-color: #007bff; }
.calendar-day .event-yellow { background-color: #ffc107; color: #000; }
.calendar-day .event-purple { background-color: #6f42c1; }
.calendar-day .event-orange { background-color: #fd7e14; }

.calendar-day .event-completed {
  background-color: #6c757d !important;
  opacity: 0.7;
}

.add-event {
  margin-top: 5px;
}

/* Multi-day event styling */
.calendar-day .event.multi-day-start {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  position: relative;
}

.calendar-day .event.multi-day-start::after {
  content: '';
  position: absolute;
  right: -1px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: inherit;
}

.calendar-day .event.multi-day-middle {
  border-radius: 0;
  border-left: none;
  border-right: none;
  position: relative;
}

.calendar-day .event.multi-day-middle::before,
.calendar-day .event.multi-day-middle::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  background: inherit;
}

.calendar-day .event.multi-day-middle::before {
  left: -1px;
}

.calendar-day .event.multi-day-middle::after {
  right: -1px;
}

.calendar-day .event.multi-day-end {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  position: relative;
}

.calendar-day .event.multi-day-end::before {
  content: '';
  position: absolute;
  left: -1px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: inherit;
}