/* 入力画面（index.html）専用のスタイル */

/* 入力期限の通知 */
.deadline-notice {
  background-color: #fff3cd;
  border: 2px solid #ffc107;
  border-radius: 8px;
  padding: 12px 16px;
  margin: 16px 0;
  font-size: 0.9rem;
  line-height: 1.6;
  color: #856404;
}

.deadline-notice strong {
  color: #d97706;
  font-size: 1rem;
}
/* テーブルコンテナ */
.table-container {
  margin-top: 24px;
  border: 1px solid #e0e6eb;
  border-radius: 12px;
  overflow-x: auto;
  background-color: #fff;
  -webkit-overflow-scrolling: touch;
}

.scroll-hint {
  text-align: center;
  font-size: 0.9rem;
  color: #546e7a;
  font-weight: 500;
}

/* テーブル */
table {
  width: 100%;
  min-width: 405px;
  /* 列幅の合計: 70+50+75+75+85+50=405px */
  border-collapse: collapse;
  table-layout: fixed;
  position: relative;
}

/* 各列の幅を固定 */
/* 日付 */
thead th:nth-child(1) {
  width: 75px;
}

/* 休み */
thead th:nth-child(2) {
  width: 50px;
}

/* 登園時間 */
thead th:nth-child(3) {
  width: 75px;
}

/* 降園時間 */
thead th:nth-child(4) {
  width: 75px;
}

/* お迎え */
thead th:nth-child(5) {
  width: 85px;
}

/* おやつ（午前） */
thead th:nth-child(6) {
  width: 60px;
  }
  
  /* 昼食 */
  thead th:nth-child(7) {
    width: 50px;
  }
  
  /* おやつ（午後） */
  thead th:nth-child(8) {
    width: 60px;
  }
  
  /* 軽食 */
  thead th:nth-child(9) {
    width: 50px;
  }
  
  /* 夕食 */
  thead th:nth-child(10) {
    width: 50px;
  }
  
  /* 持ち帰り弁当 */
  thead th:nth-child(11) {
  width: 80px;
}

/* tbody */
tbody td:nth-child(1) {
  width: 70px;
}

tbody td:nth-child(2) {
  width: 50px;
}

tbody td:nth-child(3) {
  width: 75px;
}

tbody td:nth-child(4) {
  width: 75px;
}

tbody td:nth-child(5) {
  width: 85px;
}

tbody td:nth-child(6) {
  width: 60px;
  }
  
  tbody td:nth-child(7) {
    width: 50px;
  }
  
  tbody td:nth-child(8) {
    width: 60px;
  }
  
  tbody td:nth-child(9) {
    width: 50px;
  }
  
  tbody td:nth-child(10) {
    width: 50px;
  }
  
  tbody td:nth-child(11) {
  width: 80px;
}

/* tfoot */
tfoot td:nth-child(1) {
  width: 70px;
}

tfoot td:nth-child(2) {
  width: 50px;
}

tfoot td:nth-child(3) {
  width: 150px;
}

tfoot td:nth-child(4) {
  width: 85px;
}

tfoot td:nth-child(5) {
  width: 85px;
  }
  
  tfoot td:nth-child(6) {
    width: 60px;
  }
  
  tfoot td:nth-child(7) {
    width: 50px;
  }
  
  tfoot td:nth-child(8) {
    width: 60px;
  }
  
  tfoot td:nth-child(9) {
    width: 50px;
  }
  
  tfoot td:nth-child(10) {
  width: 50px;
}

tfoot td:nth-child(11) {
  width: 80px;
}
/* 日付列を固定 */
.sticky-col {
  position: sticky;
  left: 0;
  z-index: 10;
  background-color: #f0f4f8;
  box-shadow: 2px 0 4px rgba(0, 0, 0, 0.1);
}

tbody td.sticky-col {
  background-color: #fff;
  font-weight: 500;
}

tbody tr:nth-child(even) td.sticky-col {
  background-color: #fafcff;
}

tfoot td.sticky-col {
  background-color: #e8f0f8;
  font-weight: 600;
}

/* テーブルヘッダー */
thead th {
  padding: 10px 4px;
  background-color: #f0f4f8;
  text-align: center;
  font-size: 0.8rem;
  border-bottom: 1px solid #d0d7de;
  white-space: nowrap;
  line-height: 1.3;
}

/* テーブルボディ */
tbody td {
  padding: 8px 4px;
  border-top: 1px solid #eef2f7;
  vertical-align: middle;
  text-align: center;
}

tbody tr:nth-child(even) {
  background-color: #fafcff;
}

tbody tr.row-error {
  outline: 2px solid #c62828;
  outline-offset: -2px;
}

/* 日付セル */
.date-cell {
  font-weight: 500;
  white-space: nowrap;
  font-size: 0.85rem;
  padding: 8px 2px !important;
}

/* 合計行 */
.summary-row {
  background-color: #e8f0f8 !important;
  font-weight: 600;
  border-top: 2px solid #1976d2 !important;
}

.summary-row td {
  padding: 12px 4px !important;
}

.summary-label {
  text-align: center;
  font-size: 0.9rem;
  color: #1565c0;
}

.summary-count {
  text-align: center;
  font-size: 1rem;
  color: #0d47a1;
  font-weight: 700;
}

.summary-empty {
  text-align: center;
  color: #90a4ae;
}

/* 時間選択 */
.time-select {
  width: 100%;
  font-size: 14px;
  padding: 6px 8px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  text-align: center;
  background-color: #fff;
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23546e7a' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 12px;
  padding-right: 28px;
}

.time-select:focus {
  outline: none;
  border-color: #1976d2;
  background-color: #f0f7ff;
}

.time-select.time-error {
  border: 2px solid #d32f2f;
  background-color: #ffebee;
}

.time-select.time-error:focus {
  border-color: #c62828;
  background-color: #ffcdd2;
}

/* 食事チェックボックス */
.meal-checkbox {
  width: 24px;
  height: 24px;
  cursor: pointer;
  accent-color: #1976d2;
  margin: 0;
  position: relative;
  z-index: 1;
}

.meal-checkbox:disabled {
  cursor: not-allowed;
}

.meal-checkbox::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  z-index: -1;
}

/* 休みチェックボックス */
.holiday-checkbox {
  width: 24px;
  height: 24px;
  cursor: pointer;
  accent-color: #f44336;
  margin: 0;
  position: relative;
  z-index: 1;
}

.holiday-checkbox:disabled {
  cursor: not-allowed;
}

/* お迎え選択 */
.pickup-wrapper {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  padding: 0 2px;
}

.pickup-select {
  width: 100%;
  font-size: 13px;
  padding: 6px 4px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
}

/* お弁当選択 */
.bento-select {
  width: 100%;
  font-size: 13px;
    padding: 6px;
  border: 1px solid #cfd8dc;
  border-radius: 6px;
  text-align: center;
  background-color: #fff;
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23546e7a' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 12px;
  padding-right: 28px;
}

.bento-select:focus {
  outline: none;
  border-color: #1976d2;
  background-color: #f0f7ff;
}
/* 食事表示セル */
.meal-display-cell {
  text-align: center;
  font-size: 1.2rem;
  color: #546e7a;
  font-weight: 500;
}

.meal-display-cell.meal-available {
  color: #1976d2;
  font-weight: 600;
}
.pickup-other-input {
  width: 100%;
  font-size: 13px;
  padding: 5px 4px;
  border: 1px solid #b0bec5;
  border-radius: 6px;
  background-color: #fff8e1;
}

/* ヘルプテキスト */
.help-text {
  margin: 12px 16px 16px;
  font-size: 0.8rem;
  color: #607d8b;
  line-height: 1.5;
}

/* 確認ボタン（入力画面） */
#submitButton {
  width: 100%;
  background-color: #1976d2;
  color: #fff;
  border: none;
  padding: 14px 28px;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  min-height: 48px;
  transition: background-color 0.2s ease;
}

#submitButton:hover,
#submitButton:focus-visible {
  background-color: #1565c0;
}

#submitButton:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
