@charset "UTF-8";

/* ===== スケジュール日付タイトル ===== */
#schedule_title {
  list-style: none;
  padding: 20px 16px 8px;
  margin: 0;
  text-align: center;
}
#schedule_title #day {
  font-size: 1.1rem;
  font-weight: bold;
  color: var(--pt-heading3-text);
  display: inline-block;
  border-bottom: 2px solid var(--pt-heading3-line);
  padding-bottom: 4px;
}

/* ===== 出勤なし ===== */
.no-staff {
  text-align: center;
  padding: 48px 20px;
  color: var(--pt-schedule-empty);
  font-size: 0.95rem;
}

/* ===== 週間スケジュール ===== */
.weeklysc_heading {
  display: block;
  width: 100%;
  font-size: 1.05rem;
  font-weight: bold;
  color: var(--pt-day-tag-text);
  background: var(--pt-day-tag-bg);
  border: 3px solid var(--pt-day-tag-text);
  border-radius: 999px;
  padding: 10px 24px;
  margin-bottom: 14px;
  text-align: center;
  box-sizing: border-box;
}
.weeklysc_heading--today {
  background: var(--pt-day-tag-today-bg);
  color: var(--pt-day-tag-today-text);
  border-color: var(--pt-day-tag-today-bg);
}
.weeklysc_day {
  margin-bottom: 32px;
}

/* ===== シングルカレンダー ===== */
.single_calendar {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 12px 0 8px;
}
.single_calendar dl {
  flex: 1;
  min-width: 0;
  text-align: center;
  margin: 0;
}
.single_calendar dt {
  font-size: 11px;
  font-weight: bold;
  padding: 4px 2px;
  background: var(--pt-calendar-head-bg);
  border-radius: 4px 4px 0 0;
  color: var(--pt-calendar-text);
}
.single_calendar dt.target {
  background: linear-gradient(135deg, var(--pt-tab-active), var(--pt-tab-active-end));
  color: var(--pt-tab-active-text);
}
.single_calendar dd {
  font-size: 11px;
  padding: 4px 2px;
  color: var(--pt-calendar-text);
  border: 1px solid var(--pt-calendar-head-bg);
  border-top: none;
  border-radius: 0 0 4px 4px;
  background: var(--pt-calendar-bg);
  margin: 0;
}
.schon { color: var(--pt-calendar-on-text); font-weight: bold; }


  /* ===== SCHEDULE SECTION ===== */
  .sc-schedule {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 48px 20px 56px;
    background: linear-gradient(135deg, var(--pt-schedule-bg) 0%, var(--pt-schedule-bg-mid) 50%, var(--pt-schedule-bg-end) 100%);
    border-radius: 16px;
  }

  /* heading */
  .sc-schedule__heading {
    text-align: center;
    margin-bottom: 28px;
  }

  .sc-schedule__label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
    color: var(--pt-schedule-label);
    margin-bottom: 6px;
  }

  .sc-schedule__title {
    display: block;
    font-size: 28px;
    font-weight: 700;
    color: var(--pt-heading3-text);
    letter-spacing: 0.06em;
  }

  /* divider */
  .sc-schedule__divider {
    width: 100%;
    height: 1px;
    background: linear-gradient(to right, transparent, var(--pt-heading3-line) 20%, var(--pt-heading3-line) 80%, transparent);
    margin-bottom: 32px;
  }

  /* date tabs wrapper */
  .sc-schedule__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  /* single tab */
  .sc-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 24px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    white-space: nowrap;
    user-select: none;
    border: none;
    outline: none;
  }

  /* default (inactive) tab */
  .sc-tab--default {
    background: var(--pt-tab-bg);
    color: var(--pt-tab-text);
    box-shadow: 0 2px 8px color-mix(in srgb, var(--pt-tab-shadow) 15%, transparent);
  }

  .sc-tab--default:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px color-mix(in srgb, var(--pt-tab-shadow) 25%, transparent);
  }

  /* active / 本日 tab */
  .sc-tab--active {
    background: linear-gradient(135deg, var(--pt-tab-active) 0%, var(--pt-tab-active-end) 100%);
    color: var(--pt-tab-active-text);
    box-shadow: 0 4px 16px color-mix(in srgb, var(--pt-tab-active-end) 35%, transparent);
  }

  .sc-tab--active:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px color-mix(in srgb, var(--pt-tab-active-end) 45%, transparent);
  }

  /* ===== 週間スケジュールページ ===== */
  .weekly-schedule-wrap {
    max-width: 1030px;
    margin: 0 auto;
    padding: 0 12px 40px;
  }

  /* 日付ごとのブロック */
  .weekly-schedule-wrap .weeklysc_day {
    margin-bottom: 36px;
  }

  /* ---- 週間5カラム：アイコン縮小 ---- */
  .weekly-schedule-wrap .pickup img {
    width: 22px;
  }
  .weekly-schedule-wrap ._new img {
    width: 24px;
  }

  /* ---- カード共通 ---- */
  .weekly-schedule-wrap .weeklysc_day .cast_grid li {
    padding-bottom: 6px;
    border-radius: 8px;
  }

  /* 写真：縦長を抑えてコンパクトに */
  .weekly-schedule-wrap .cast-thumb-wrap {
    aspect-ratio: 3 / 4;
  }

  /* 出勤時間：バッジなしシンプルテキスト */
  .weekly-schedule-wrap .weeklysc_day .cast_grid li ._shift {
    all: unset;
    display: block;
    text-align: center;
    font-weight: bold;
    color: var(--pt-photo-text);
    padding: 4px 0 2px;
    width: 100%;
    box-sizing: border-box;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
    letter-spacing: -0.03em;
  }

  /* 名前 */
  .weekly-schedule-wrap .weeklysc_day .cast_grid li ._name {
    margin-top: 0;
    margin-bottom: 0;
  }
  .weekly-schedule-wrap .weeklysc_day .cast_grid li ._name_text {
    color: var(--pt-photo-text);
  }

  /* サイズ非表示 */
  .weekly-schedule-wrap .weeklysc_day .cast_grid li ._size {
    display: none;
  }

  /* ---- スマホ：5カラム ---- */
  .weekly-schedule-wrap .weeklysc_day .cast_grid {
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 4px !important;
  }
  .weekly-schedule-wrap .weeklysc_day .cast_grid li ._shift {
    font-size: 9px;
  }
  .weekly-schedule-wrap .weeklysc_day .cast_grid li ._name_text {
    font-size: 10px;
  }

  /* ---- タブレット・PC：7カラム ---- */
  @media screen and (min-width: 600px) {
    .weekly-schedule-wrap .weeklysc_day .cast_grid {
      grid-template-columns: repeat(7, 1fr) !important;
      gap: 8px !important;
    }
    .weekly-schedule-wrap .weeklysc_day .cast_grid li ._shift {
      font-size: 11px;
      letter-spacing: 0;
    }
    .weekly-schedule-wrap .weeklysc_day .cast_grid li ._name_text {
      font-size: 13px;
    }
  }

  /* ===== 1週間まとめてボタン ===== */
  .sc-schedule__weekly-btn-wrap {
    text-align: center;
    padding-top: 20px;
  }
  .sc-schedule__weekly-btn-wrap--back {
    padding-top: 0;
    padding-bottom: 8px;
  }
  .sc-weekly-btn {
    display: inline-block;
    background: linear-gradient(135deg, var(--pt-button3-bg) 0%, var(--pt-button3-bg-end) 100%);
    color: var(--pt-button3-text);
    font-size: 14px;
    font-weight: 700;
    padding: 12px 32px;
    border-radius: 30px;
    text-decoration: none;
    letter-spacing: 0.06em;
    box-shadow: 0 3px 12px color-mix(in srgb, var(--pt-button3-bg-end) 28%, transparent);
    transition: opacity 0.2s, transform 0.15s;
  }
  .sc-weekly-btn:hover {
    opacity: 0.85;
    color: var(--pt-button3-text);
    text-decoration: none;
    transform: translateY(-1px);
  }
  .sc-weekly-btn--back {
    background: linear-gradient(135deg, var(--pt-button3-back) 0%, var(--pt-button3-back-end) 100%);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.18);
  }

  /* ===== RESPONSIVE: SP ===== */
  @media (max-width: 767px) {
    .sc-schedule {
      padding: 36px 16px 44px;
      border-radius: 0;
    }

    .sc-schedule__title {
      font-size: 22px;
    }

    .sc-schedule__tabs {
      gap: 8px;
    }

    .sc-tab {
      height: 40px;
      padding: 0 20px;
      font-size: 13px;
    }
  }
/* =====================================================================
   出勤予定ページの並べ方（デザイン設定＞スケジュール表）
   scx- で始まるクラスはこの機能だけで使う
   ===================================================================== */

/* PCとスマホで並べ方が違うときの出し分け（768pxで切り替え） */
@media (max-width: 767px) { .scx-only-pc { display: none !important; } }
@media (min-width: 768px) { .scx-only-sp { display: none !important; } }

.scx-block [hidden] { display: none !important; }

/* 日付ボタン：本日・明日の下に小さく日付 */
.sc-tab .scx-tab-date { margin-left: 6px; font-size: 0.8em; opacity: 0.8; }

/* 切り替え式：ボタンが多いので1行で横にスクロール */
.scx-tabs-scroll {
  flex-wrap: nowrap !important;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
  scrollbar-width: thin;
}
.scx-tabs-scroll .sc-tab { flex: 0 0 auto; }

/* 日付の見出し（切り替え式） */
.scx-day-title { text-align: center; padding: 20px 16px 12px; margin: 0; }
.scx-day-title span {
  display: inline-block;
  font-size: 1.1rem;
  font-weight: bold;
  color: var(--pt-heading3-text);
  border-bottom: 2px solid var(--pt-heading3-line);
  padding-bottom: 4px;
}
.scx-tabs { max-width: 1030px; margin: 0 auto; padding: 0 8px 24px; }

/* 縦積み */
.scx-stack { padding-top: 24px; }
.scx-stack .scx-rel { font-size: 0.75em; margin-left: 6px; }
.scx-no-staff--small { padding: 16px 0; font-size: 0.85rem; }
.scx-more-btn-wrap { padding: 4px 0 28px; }
.scx-more-btn { border: none; cursor: pointer; font-family: inherit; }

/* 曜日の色（土＝青・日＝赤） */
.scx-wday-6 { color: var(--pt-roster-sat-text); }
.scx-wday-0 { color: var(--pt-roster-sun-text); }

/* 横向きの表 */
.scx-table { max-width: 1100px; margin: 0 auto; padding: 24px 8px 40px; }
.scx-week-switch { display: flex; justify-content: center; gap: 8px; margin-bottom: 16px; }
.scx-week-switch__btn {
  border: 2px solid var(--pt-tab-active-end);
  background: var(--pt-tab-bg);
  color: var(--pt-tab-text-strong);
  border-radius: 999px;
  padding: 8px 22px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  line-height: 1.3;
}
.scx-week-switch__btn small { display: block; font-size: 11px; font-weight: 500; }
.scx-week-switch__btn.is-active { background: linear-gradient(135deg, var(--pt-tab-active) 0%, var(--pt-tab-active-end) 100%); color: var(--pt-tab-active-text); border-color: transparent; }
.scx-table__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.scx-table__col { display: flex; flex-direction: column; gap: 8px; min-width: 0; border-radius: 6px; transition: box-shadow 0.2s; }
.scx-table__col.is-focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--pt-roster-today) 60%, transparent); }
.scx-table__head {
  background: var(--pt-roster-bg);
  text-align: center;
  font-weight: 700;
  font-size: 14px;
  padding: 8px 2px;
  border-radius: 6px 6px 0 0;
  box-shadow: 0 2px 6px color-mix(in srgb, var(--pt-tab-shadow) 15%, transparent);
}
.scx-table__head:not(.scx-wday-0):not(.scx-wday-6) { color: var(--pt-roster-head-text); }
.scx-table__head.is-today { background: linear-gradient(135deg, var(--pt-tab-active) 0%, var(--pt-tab-active-end) 100%); color: var(--pt-tab-active-text) !important; }
.scx-table__empty { text-align: center; color: var(--pt-schedule-empty); margin: 8px 0; }
.scx-mini { display: block; background: var(--pt-roster-bg); border-radius: 6px; overflow: hidden; text-decoration: none; color: var(--pt-roster-on-text); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08); }
.scx-mini__photo { display: block; aspect-ratio: 3 / 4; overflow: hidden; background: var(--pt-roster-photo-bg); }
.scx-mini__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.scx-mini__name { display: block; text-align: center; font-size: 13px; padding: 4px 2px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.scx-mini__time {
  display: block;
  margin: 4px 4px 6px;
  text-align: center;
  font-size: 12px;
  background: var(--pt-roster-on-bg);
  border: 1px solid var(--pt-roster-on-border);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* スマホで1週間表示（横向きの表）を選んだ場合：設定した列数を保ったまま横にスクロール */
@media (max-width: 767px) {
  .scx-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .scx-table__grid { min-width: calc(var(--sc-table-columns, 7) * 100px); gap: 4px; }
  .scx-week-switch { position: sticky; left: 0; }
  .scx-mini__name { font-size: 11px; }
  .scx-mini__time { font-size: 10px; }
}

/* 女の子ごとの一覧 */
.scx-roster { max-width: 1100px; margin: 0 auto; padding: 24px 8px 40px; }
.scx-roster__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; background: var(--pt-roster-bg); border-radius: 8px; box-shadow: 0 2px 8px color-mix(in srgb, var(--pt-tab-shadow) 15%, transparent); }
.scx-roster__table { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 13px; }
.scx-roster__table th,
.scx-roster__table td { border-bottom: 1px solid var(--pt-roster-rule); padding: 8px 6px; text-align: center; white-space: nowrap; }
.scx-roster__table thead th { background: var(--pt-roster-head-bg); font-weight: 700; color: var(--pt-roster-head-text); }
.scx-roster__table thead th.scx-wday-6 { color: var(--pt-roster-sat-text); }
.scx-roster__table thead th.scx-wday-0 { color: var(--pt-roster-sun-text); }
.scx-roster__table thead th.is-today { background: var(--pt-roster-today); color: var(--pt-roster-today-text); }
.scx-roster__table td { color: var(--pt-roster-off-text); min-width: 84px; }
.scx-roster__table td.is-on { color: var(--pt-roster-on-text); font-weight: 600; background: var(--pt-roster-on-bg); }
.scx-roster__table td.is-today { box-shadow: inset 2px 0 0 var(--pt-roster-today), inset -2px 0 0 var(--pt-roster-today); }
.scx-roster__table .is-focus { outline: 2px solid var(--pt-roster-today); outline-offset: -2px; }
.scx-roster__name {
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--pt-roster-bg) !important;
  text-align: left !important;
  box-shadow: 2px 0 4px rgba(0, 0, 0, 0.06);
}
thead .scx-roster__name { background: var(--pt-roster-head-bg) !important; }
.scx-roster__name a { display: flex; align-items: center; gap: 8px; text-decoration: none; color: var(--pt-roster-on-text); }
.scx-roster__name img { width: 36px; height: 48px; object-fit: cover; border-radius: 4px; flex-shrink: 0; }
.scx-roster__name span { max-width: 7em; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 767px) {
  .scx-roster { padding: 16px 0 32px; }
  .scx-roster__scroll { border-radius: 0; }
  .scx-roster__table { font-size: 12px; }
  .scx-roster__table td { min-width: 72px; }
  .scx-roster__name img { width: 28px; height: 38px; }
}
