.dcal-wrap { max-width: 1100px; margin: 0 auto; }
.dcal-admin-bar { display:flex; justify-content:flex-end; margin: 8px 0; gap: 8px; }

.dcal-btn{
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid #ddd; background:#fff; padding:8px 12px; border-radius:10px;
  text-decoration:none; cursor:pointer;
}
.dcal-btn.primary{ border-color:#111; background:#111; color:#fff; }
.dcal-btn.danger{ border-color:#dc2626; background:#dc2626; color:#fff; }

.dcal-login{ max-width:420px; margin:24px auto; padding:16px; border:1px solid #eee; border-radius:14px; }
.dcal-alert{ background:#fee2e2; padding:10px; border-radius:10px; margin-bottom:10px; }
.dcal-note{ color:#666; font-size:12px; margin-top:10px; }

.dcal-field{ display:flex; flex-direction:column; gap:6px; margin:10px 0; }
.dcal-field input, .dcal-field textarea, .dcal-field select{
  border:1px solid #ddd; border-radius:10px; padding:10px;
}

.dcal-modal{ position:fixed; inset:0; display:none; z-index:9999; }
.dcal-modal.is-open{ display:block; }
.dcal-modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); }
.dcal-modal-card{
  position:relative; max-width:520px; margin:10vh auto; background:#fff;
  border-radius:16px; padding:14px; box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.dcal-modal-head{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.dcal-modal-title{ font-weight:700; font-size:18px; }
.dcal-x{ border:none; background:none; font-size:22px; cursor:pointer; }

.dcal-row{ display:grid; grid-template-columns:64px 1fr; gap:12px; padding:8px 0; border-bottom:1px dashed #eee; }
.dcal-label{ color:#666; font-size:13px; }

.dcal-actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:12px; }


/* --- FullCalendar 見た目調整 --- */

/* 日付の数字（1,2,3...）を小さく */
.fc .fc-daygrid-day-number {
  font-size: 12px;
  padding: 2px 4px;
}

/* 曜日ヘッダも少し小さく */
.fc .fc-col-header-cell-cushion {
  font-size: 12px;
  padding: 4px 0;
}

/* 予定の文字（タイトル）を小さく */
.fc .fc-daygrid-event .fc-event-title {
  font-size: 11px;
  line-height: 1.2;
}

/* 予定の行の高さも詰める */
.fc .fc-daygrid-event {
  margin-top: 1px;
}

/* タイトル行の左右余白を少し減らす（詰める） */
.fc .fc-daygrid-event .fc-event-main {
  padding: 1px 3px;
}

/* 「…」で省略する（長文対策） */
.fc .fc-daygrid-event .fc-event-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* カレンダー上のイベント表示に出る時刻を強制的に非表示 */
.fc .fc-event-time {
  display: none !important;
}


.fc .fc-daygrid-event {
  border-radius: 8px;
  padding: 2px 6px;
  border: none !important;
}

.fc .fc-daygrid-event .fc-event-title {
  font-size: 11px;
  line-height: 1.2;
}


.dcal-topbar{
  display:flex;
  justify-content:flex-end;
  margin: 6px 0 10px;
}

.dcal-view-select{
  font-size:14px;
  padding: 6px 10px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #fff;
}

/* ① 背景色をセル幅いっぱいに使う */
.fc .fc-daygrid-event {
  border: none !important;
  border-radius: 6px;
  margin: 1px 0;              /* 横マージンをなくす */
  padding: 1px 3px;           /* 左右を最小限に */
  box-sizing: border-box;
}

/* ② タイトルを小さく＆横いっぱい使う */
.fc .fc-daygrid-event .fc-event-main {
  padding: 0 !important;      /* 内側余白を削る */
}

.fc .fc-daygrid-event .fc-event-title {
  font-size: 10px;            /* ← ここで小さく */
  line-height: 1.1;
  white-space: nowrap;        /* 1行で表示 */
  overflow: hidden;
  text-overflow: ellipsis;    /* はみ出しは… */
}

/* ③ 日付数字を小さくしてスペース確保 */
.fc .fc-daygrid-day-number {
  font-size: 11px;
  padding: 2px 4px;
}


/* ログアウトは右上 */
.dcal-topbar{
  display:flex;
  justify-content:flex-end;
  margin-bottom: 10px;
}

/* ナビ・タイトル・プルダウン を 3カラムで並べる */
.dcal-controls{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap: 12px;
  margin-bottom: 10px;
}

/* 左：ナビ */
.dcal-controls-left{
  justify-self:start;
}

/* 中央：今月タイトル（常に真ん中固定） */
.dcal-controls-center{
  justify-self:center;
  text-align:center;
}
.dcal-title{
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

/* 右：プルダウン */
.dcal-controls-right{
  justify-self:end;
}

/* ✅ FullCalendarのボタンは残す */
.fc-header-toolbar{ display:flex !important; }

/* ✅ 中央のタイトルだけ消す（h2） */
.fc-toolbar-title{ display:none !important; }

/* ✅ 右側のmonth/week/day（もし残ってたら）消す */
.fc-toolbar-chunk:last-child{ display:none !important; }


.dcal-controls-left .dcal-nav{
  display:flex;
  gap:8px;
  flex-wrap:nowrap;
  white-space:nowrap;
}


/* =========================
   Public header（ナビ/タイトル/プルダウン）
   ========================= */
.dcal-header{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap: 12px;
  margin: 6px 0 10px;
}

/* 左：先月/来月/今日 */
#dcal-nav{
  justify-self:start;
}
#dcal-nav .dcal-nav{
  display:flex;
  gap:8px;
  flex-wrap:nowrap;      /* 折り返し禁止 */
  white-space:nowrap;
}

/* 中央：表示月 */
#my-title{
  justify-self:center;
  text-align:center;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

/* 右：プルダウン */
#dcal-view{
  justify-self:end;
  font-size:14px;
  padding: 6px 10px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #fff;
}

/* --- link toolbar --- */
.dcal-linkbar{
  display:flex;
  gap:8px;
  align-items:center;
  margin: 6px 0 10px;
  flex-wrap:wrap;
}

.dcal-fav-select{
  min-width: 220px;
  border:1px solid #ddd;
  border-radius:10px;
  padding:8px 10px;
  background:#fff;
}

#dcal-modal-body a{
  color:#2563eb;
  text-decoration:underline;
  font-weight:500;
}

#dcal-modal-body a:hover{
  color:#1d4ed8;
}

/* モーダル全体 */
.dcal-modal-card{
  max-height:90vh;
  display:flex;
  flex-direction:column;
}

/* ヘッダー固定 */
.dcal-modal-head{
  flex-shrink:0;
}

/* 本体だけスクロール */
.dcal-modal-body{
  overflow-y:auto;
  max-height:calc(90vh - 80px);
}

/* 下のボタン見やすく */
.dcal-actions{
  position:sticky;
  bottom:0;
  background:white;
  padding-top:10px;
}

/* 背景スクロール止め */
.dcal-modal-open{
  overflow: hidden;
}