/* AIM Meeting Form — additional styles complementing inline CSS in page-reservation.php.
 * Existing page-reservation styling targets .regist_form classes (.event_calendar/.event_day/.custom-input/etc).
 * This file adds: hover/selected states, time grid, notice, responsive tweaks.
 */

.regist_form.sync-loading { opacity: .6; pointer-events: none; position: relative; }
.regist_form.sync-loading::after {
  content: '読み込み中...';
  display: block;
  text-align: center;
  padding: 40px 0;
  font-size: 14px;
  color: #666;
}

.regist_form .event_calendar_header > div { user-select: none; }
.regist_form .event_calendar_header .event_prev_month,
.regist_form .event_calendar_header .event_next_month {
  width: 28px; height: 28px;
  cursor: pointer;
  border-radius: 50%;
  position: relative;
  transition: background .15s;
}
.regist_form .event_calendar_header .event_prev_month:hover:not(.disabled),
.regist_form .event_calendar_header .event_next_month:hover:not(.disabled) {
  background: rgba(122, 102, 205, .12);
}
.regist_form .event_calendar_header .event_prev_month::after {
  content: ''; position: absolute; inset: 0;
  background: no-repeat center/12px 12px url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M10 2L4 8l6 6' stroke='%237a66cd' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.regist_form .event_calendar_header .event_next_month::after {
  content: ''; position: absolute; inset: 0;
  background: no-repeat center/12px 12px url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M6 2l6 6-6 6' stroke='%237a66cd' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}
.regist_form .event_calendar_header .disabled { cursor: not-allowed; opacity: .3; }

.regist_form .event_days .event_week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; margin-bottom: 7px; }
.regist_form .event_days .event_week[data-date="w"] .event_day { font-weight: 700; color: #888; }
.regist_form .event_days .event_week[data-date="w"] .event_day:nth-child(1) { color: #d23a3a; }
.regist_form .event_days .event_week[data-date="w"] .event_day:nth-child(7) { color: #3a8ad2; }

.regist_form .event_day {
  min-height: 56px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 9px;
  background: #f3f5f9;
  color: #26313f;
  cursor: pointer;
  transition: background .15s, color .15s, transform .1s;
  font-size: 16px;
}
.regist_form .event_days .event_week:first-child .event_day.disabled { background: transparent; color: #fff; }
.regist_form .event_day.disabled { cursor: not-allowed; }
.regist_form .event_day.is-unavailable { background: #f3f5f9; color: #c0c8d2; }
.regist_form .event_day.is-empty { background: transparent; color: transparent; cursor: default; pointer-events: none; }
.regist_form .event_day:not(.disabled):hover {
  background: linear-gradient(80deg, rgba(122,102,205,.18) 0%, rgba(17,199,219,.18) 100%);
}
.regist_form .event_day.selected {
  background: linear-gradient(80deg, #7A66CD 0%, #11C7DB 100%);
  color: #fff;
  font-weight: 700;
}

.regist_form .event_times { margin-top: 24px; }
.regist_form .event_times_header { font-size: 14px; font-weight: 700; color: #444; margin-bottom: 8px; }
.regist_form .event_times_grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.regist_form .event_time {
  padding: 10px 12px;
  border: 1px solid rgba(122, 102, 205, .4);
  border-radius: 8px;
  background: #fff;
  color: #7A66CD;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
}
.regist_form .event_time:hover { background: rgba(122, 102, 205, .08); }
.regist_form .event_time.selected {
  background: linear-gradient(80deg, #7A66CD 0%, #11C7DB 100%);
  color: #fff;
  border-color: transparent;
}

.regist_form .aim-meeting-notice {
  margin-top: 16px;
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 14px;
}
.regist_form .aim-meeting-notice:empty { display: none; }
.regist_form .aim-meeting-notice.is-success { background: #e6f7e9; color: #1a7a2c; border: 1px solid #b6e6c0; }
.regist_form .aim-meeting-notice.is-error   { background: #fdecec; color: #b32a2a; border: 1px solid #f3bdbd; }

/* Responsive: stack calendar over fields below 768 */
@media (max-width: 768px) {
  .regist_form .event_days .event_week { gap: 5px; margin-bottom: 5px; }
  .regist_form .event_day { min-height: 44px; font-size: 14px; border-radius: 6px; }
  .regist_form .event_times_grid { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
}
@media (max-width: 480px) {
  .regist_form .event_day { min-height: 38px; font-size: 13px; }
  .regist_form .event_times_grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .regist_form .event_time { padding: 8px 6px; font-size: 13px; }
}
