@charset "utf-8";

/* =========================
   FullCalendar（見た目）
========================= */
#calendar{
  width: 70%;
  background-color: #FFFEF5;
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 10px;
  box-sizing: border-box;
  margin: 0 auto;
  margin-top: 40px;
}

/* 内側も同じ色に統一（白く抜ける対策） */
#calendar .fc,
#calendar .fc-scrollgrid,
#calendar .fc-view-harness,
#calendar .fc-daygrid,
#calendar .fc-daygrid-body,
#calendar .fc-theme-standard td,
#calendar .fc-theme-standard th{
  background-color: #FFFEF5;
}

/* 罫線色 */
#calendar .fc-theme-standard td,
#calendar .fc-theme-standard th,
#calendar .fc-theme-standard .fc-scrollgrid{
  border-color: #ddd;
}

/* 上部ツールバー */
#calendar .fc-toolbar-title{
  font-size: 1.1rem;
  font-weight: 700;
}

.exText {
    margin-top: 50px;
    text-align: center;
}

/* 前後月ボタン */
#calendar .fc .fc-button{
  border: 1px solid rgba(0,0,0,.2);
  background: #fff;
  border-radius: 6px;
  padding: 6px 10px;
}
#calendar .fc .fc-button:hover{
  background:#f6f6f6;
}

/* 今日の日付（うっすら） */
#calendar .fc-day-today{
  background: rgba(0,183,181,.10) !important;
}

/* 平日の日付数字（ベース） */
#calendar .fc-daygrid-day-number{
  color: #333;
  font-weight: 500;
}

/* =========================
   無効日（クリック不可）
========================= */
.fc-disabled-day{
  opacity: .35;
  pointer-events: none;
}

/* 無効日の数字は薄く（可読性） */
.fc .fc-daygrid-day.fc-disabled-day .fc-daygrid-day-number{
  color:#999 !important;
  font-weight: 500 !important;
}

/* =========================
   選択日（JSで fc-selected-day を付けたとき）
========================= */
.fc-selected-day{
  outline: 2px solid #00B7B5;
  outline-offset: -2px;
  border-radius: 6px;
}

/* 選択中セル：フレームを塗る */
.fc-selected-day .fc-daygrid-day-frame{
  background: #ffcc80 !important;
}

/* 選択中の数字は黒太字 */
.fc .fc-daygrid-day.fc-selected-day .fc-daygrid-day-number{
  color:#000 !important;
  font-weight: 800 !important;
}

/* =========================
   曜日＆日付の色分け（確実版）
   土=青 / 日=赤
========================= */

/* 曜日見出し（上の行） */
.fc .fc-col-header-cell.fc-day-sun .fc-col-header-cell-cushion{
  color: #e53935;
  font-weight: 700;
}
.fc .fc-col-header-cell.fc-day-sat .fc-col-header-cell-cushion{
  color: #1e88e5;
  font-weight: 700;
}

/* 日付数字（セル本体に付くクラスで確実に当てる） */
.fc .fc-daygrid-day.fc-day-sun .fc-daygrid-day-number{
  color: #e53935 !important;
  font-weight: 700;
}
.fc .fc-daygrid-day.fc-day-sat .fc-daygrid-day-number{
  color: #1e88e5 !important;
  font-weight: 700;
}

/* “リンク扱い”になる環境の保険 */
.fc .fc-daygrid-day.fc-day-sun a.fc-daygrid-day-number{
  color: #e53935 !important;
}
.fc .fc-daygrid-day.fc-day-sat a.fc-daygrid-day-number{
  color: #1e88e5 !important;
}

/* =========================
   モーダル
   ※背景は白のまま（希望どおり）
========================= */
.modal-backdrop{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  z-index: 9999;
}
.modal-backdrop.is-open{
  display: flex;
}

.modal{
  width: min(520px, 92vw);
  background: #fff;              /* ←白固定 */
  color: #111;
  border: 1px solid #ddd;
  border-radius: 10px;
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
  padding: 14px 16px 14px;
}

/* ヘッダー */
.modal-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.modal-title{
  font-weight: 800;
  color: #DE1A58;
  letter-spacing: .02em;
}
.modal-close{
  border: none;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  color: #333;
  opacity: .8;
}
.modal-close:hover{ opacity: .6; }

/* フォーム塊を中央に */
.modal-body{
  display: flex;
  justify-content: center;
}
.modal-body form{
  width: 100%;
  max-width: 360px;
}

/* 入力 */
.field{ margin: 12px 0; }
.field label{
  display: block;
  font-size: 12px;
  margin-bottom: 6px;
  opacity: .8;
  text-align: left;
}

.field input,
.field select{
  width: 100%;
  padding: 10px;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: 10px;
  background: #fff;
  box-sizing: border-box;
  color: #111;
}
.field input:focus,
.field select:focus{
  outline: none;
  border-color: #00B7B5;
  box-shadow: 0 0 0 3px rgba(0,183,181,.18);
}

/* ボタン */
.actions{
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 14px;
}

/* 共通 */
.actions button{
  padding: 8px 12px;
  border-radius: 6px;
  border: 1px solid rgba(0,0,0,.2);
  background: #fff;
  cursor: pointer;
}
.actions button:hover{
  background:#f6f6f6;
}
.actions button:disabled{
  opacity: .6;
  cursor: not-allowed;
}

/* 送信ボタン（class付けなくても効く版） */
.actions button[type="submit"]{
  border-color: #00B7B5;
  background: #00B7B5;
  color: #fff;
  font-weight: 800;
}
.actions button[type="submit"]:hover{
  background: #15A19F;
}

/* もし将来 class="btn-primary" を使うなら（保険） */
.actions .btn-primary{
  border-color: #00B7B5;
  background: #00B7B5;
  color: #fff;
  font-weight: 800;
}
.actions .btn-primary:hover{
  background: #15A19F;
}



/* =========================
   SP（スマホ）用：max-width 768px
   追記用（PC版はそのまま）
========================= */
@media screen and (max-width: 768px){

  /* 余白をスマホ向けに */
  body{
    margin: 0;
    padding: 12px;
    -webkit-text-size-adjust: 100%;
  }

  /* 説明文 */
  .exText{
    margin-top: 16px;
    padding: 0 4px;
    text-align: center;
    font-size: 13px;
    line-height: 1.7;
  }

  /* カレンダー：全幅＆縦長でスクロール減らす */
  #calendar{
    width: 100%;
    max-width: 520px;
    margin: 14px auto 0;
    padding: 10px;
    border-radius: 12px;
    height: calc(100vh - 120px); /* 画面高さ基準 */    
  }

  /* 月タイトル：小さめ＆折り返し回避 */
  #calendar .fc-toolbar-title{
    font-size: 1.0rem;
    line-height: 1.2;
    white-space: nowrap;
  }

  /* ツールバー：詰めて押しやすく */
  #calendar .fc-header-toolbar{
    margin-bottom: 8px;
  }

  #calendar .fc .fc-button{
    padding: 7px 10px;
    border-radius: 10px;
    font-size: 13px;
  }

  /* 曜日ヘッダー */
  .fc .fc-col-header-cell .fc-col-header-cell-cushion{
    font-size: 12px;
    padding: 6px 0;
  }

  /* 日付セル：タップ領域を確保（縦長寄り） */
  .fc .fc-daygrid-day-frame{
    min-height: 64px;     /* ←縦を稼ぐ */
    padding: 2px 4px;
  }

  /* 日付数字 */
  .fc .fc-daygrid-day-number{
    font-size: 13px;
    padding: 4px 6px;
  }

  /* 土日色（PCの指定を踏襲しつつ、スマホでも確実に） */
  .fc .fc-col-header-cell.fc-day-sun .fc-col-header-cell-cushion{
    color: #e53935;
    font-weight: 700;
  }
  .fc .fc-col-header-cell.fc-day-sat .fc-col-header-cell-cushion{
    color: #1e88e5;
    font-weight: 700;
  }
  .fc .fc-daygrid-day.fc-day-sun .fc-daygrid-day-number{
    color: #e53935 !important;
    font-weight: 700;
  }
  .fc .fc-daygrid-day.fc-day-sat .fc-daygrid-day-number{
    color: #1e88e5 !important;
    font-weight: 700;
  }

  /* 選択日：スマホは少し強調 */
  .fc-selected-day{
    outline-width: 3px;
    border-radius: 10px;
  }
  .fc-selected-day .fc-daygrid-day-frame{
    background: #ffcc80 !important;
  }

  /* 無効日（タップ不可）はさらに分かりやすく */
  .fc-disabled-day{
    opacity: .30;
  }

  /* =========================
     モーダル：スマホで見やすく
  ========================= */
  .modal{
    width: min(560px, 96vw);
    padding: 14px 14px 12px;
    border-radius: 14px;
  }

  .modal-title{
    font-size: 16px;
  }

  .modal-close{
    font-size: 24px;
  }

  .modal-body form{
    max-width: 100%;
  }

  .field{
    margin: 12px 0;
  }

  .field label{
    font-size: 12px;
  }

  .field input,
  .field select{
    padding: 12px 12px;
    border-radius: 12px;
    font-size: 14px;
  }

  /* ボタン：スマホは押しやすく、幅も確保 */
  .actions{
    justify-content: space-between;
    gap: 10px;
  }

  .actions button{
    flex: 1;
    padding: 12px 10px;
    border-radius: 12px;
    font-size: 14px;
  }

  .actions button[type="submit"]{
    font-weight: 900;
  }
}
