@charset "UTF-8";
/* 追加CSS */
/* こやま歯科クリニック 診療カレンダー（簡素版）20260623更新 */

/* 既存の .p_calendar__wrapper に高さ固定のハックが
   かかっている場合に備えて、強制的に解除する */
.p_calendar__wrapper {
  height: auto !important;
  padding-bottom: 0 !important;
  overflow: visible !important;
}

/* main.cssの max-width: 800px を上書きして横幅を広げる（中央揃えはそのまま） */
@media (min-width: 767px) {
  .p_calendar__wrapper {
    max-width: 1100px; /* 元は800px。数値を変えれば横幅を調整できます */
  }
}

#koyama-calendar-root, #koyama-calendar-root * { box-sizing: border-box; }
.kc-row { display: flex; gap: 16px; flex-wrap: wrap; padding: 24px 0; }
.kc-card { flex: 1 1 280px; min-width: 260px; border: 1px solid #ddd; border-radius: 8px; overflow: hidden; }
.kc-card__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; background: #f7f3ec; border-bottom: 1px solid #ddd; }
.kc-today-btn, .kc-link-btn { font-size: 12px; padding: 4px 10px; border: 1px solid #ddd; border-radius: 999px; background: #fff; text-decoration: none; color: #333; cursor: pointer; }
.kc-nav { display: flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 600; flex: 1; justify-content: center; }
.kc-nav button { width: 22px; height: 22px; border: 1px solid #ddd; border-radius: 50%; background: #fff; font-size: 12px; cursor: pointer; }
.kc-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-size: 11px; color: #999; border-bottom: 1px solid #ddd; }
.kc-weekdays span { padding: 6px 0; }
.kc-weekdays .is-sun { color: #d2503f; }
.kc-weekdays .is-sat { color: #3c6fa8; }
.kc-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.kc-cell { min-height: 56px; border-right: 1px solid #eee; border-bottom: 1px solid #eee; padding: 4px; }
.kc-grid .kc-cell:nth-child(7n) { border-right: none; }
.kc-cell__num { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; font-size: 11px; border-radius: 50%; }
.kc-cell.is-other .kc-cell__num { opacity: 0.4; }
.kc-cell.is-sun .kc-cell__num { color: #d2503f; }
.kc-cell.is-sat .kc-cell__num { color: #3c6fa8; }
.kc-cell.is-today .kc-cell__num { background: #e2672c; color: #fff; }
.kc-events { margin-top: 3px; display: flex; flex-direction: column; gap: 2px; }
.kc-event-chip { font-size: 9px; background: #3e7c52; color: #fff; border-radius: 3px; padding: 1px 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kc-event-more { font-size: 9px; color: #999; }
.kc-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; font-size: 10px; color: #999; border-top: 1px solid #eee; flex-wrap: wrap; }
.kc-status { font-size: 10px; color: #999; padding: 4px 12px 0; }
.kc-status.is-error { color: #d2503f; }

/* 「詳細を見る」ボタンを削除（ヘッダー内のみ。フッターのGoogleカレンダーリンクは影響なし） */
.kc-card__head .kc-link-btn {
  display: none;
}

@media (max-width: 720px) {
  .kc-row { flex-direction: column; gap: 10px; padding: 12px 0; }
  .kc-card { width: 100%; }
  .kc-card__head { padding: 6px 8px; }
  .kc-today-btn, .kc-link-btn { font-size: 10px; padding: 3px 8px; }
  .kc-nav { font-size: 12px; }
  .kc-weekdays span { padding: 3px 0; font-size: 10px; }
  .kc-cell { min-height: 52px; padding: 2px; }
  .kc-cell__num { width: 16px; height: 16px; font-size: 10px; }
  .kc-events { margin-top: 2px; gap: 1px; }
  .kc-event-chip { font-size: 8px; padding: 1px 3px; }
  .kc-event-more { font-size: 8px; }
  .kc-card__foot { font-size: 9px; padding: 6px 8px; }
  .kc-status { font-size: 9px; padding: 2px 8px 0; }
}