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

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

#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; }

@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: 32px; padding: 2px; }
  .kc-cell__num { width: 16px; height: 16px; font-size: 10px; }
  .kc-events { display: none; } /* SPでは予定チップを非表示にして高さを詰める */
  .kc-card__foot { font-size: 9px; padding: 6px 8px; }
  .kc-status { font-size: 9px; padding: 2px 8px 0; }
}
