
/* Calendar: native controls, small-screen agenda and atomic API rendering. */
.calendar-event-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:16px; margin-top:16px; }
.calendar-month-step { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; }
.calendar-month-step a { display:inline-flex; align-items:center; min-height:44px; padding:8px 16px; border:1px solid #426434; border-radius:8px; color:#244b40; font-weight:700; }
.calendar-month-step [aria-current="date"] { background:#e9efde; }
[data-calendar-board] #selected-day { scroll-margin-top:5rem; }
.calendar-month-nav { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.calendar-month-nav a { padding:8px 12px; border:1px solid var(--line, #d7dbd5); border-radius:8px; }
.calendar-month-nav [aria-current="page"] { background:#e9efde; font-weight:700; }
[data-calendar-board] h2 { margin-bottom:16px; }
[data-calendar-board] [data-category-filter] { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:16px; min-height:64px; border:1px solid #d7dbd5; border-radius:12px; background:#fffefa; color:#244b40; font:inherit; text-align:left; cursor:pointer; }
[data-calendar-board] [data-category-filter] strong { flex-shrink:0; font-size:0.8rem; }
[data-calendar-board] [data-category-filter]:hover { border-color:#426434; background:#f1f5eb; }
[data-calendar-board] .news-studio-calendar-month-cell { min-width:0; overflow-wrap:anywhere; }
[data-calendar-board] .news-studio-calendar-month-event { white-space:normal; overflow-wrap:anywhere; }
[data-calendar-board] button:focus-visible { outline:3px solid #426434; outline-offset:3px; }
[data-calendar-board] [data-category-filter][aria-pressed="true"] { background:#e9efde; border-color:#426434; }
[data-calendar-sync-status] { font-size:0.85rem; overflow-wrap:anywhere; }
[data-calendar-sync-status][data-state="saved"] { color:#765020; }
/* 旧デザインの「色の点」表示（760px 以下）に戻さない。予定は件名の文字で見せ、色だけに頼らない。 */
@media(max-width:760px) {
  .news-studio-calendar-page [data-calendar-board] .news-studio-calendar-month-events { display:grid; align-self:start; }
  .news-studio-calendar-page [data-calendar-board] .news-studio-calendar-month-event { width:auto; height:auto; padding:0; overflow:visible; color:#244b40; border:0; background:transparent; border-radius:0; font-size:0.6rem; line-height:1.4; }
}
@media(max-width:600px) {
  [data-calendar-board] .news-studio-calendar-month-cell { min-height:84px; padding:5px; font-size:0.75rem; }
  [data-calendar-board] .news-studio-calendar-month-events { font-size:0.65rem; }
  [data-calendar-board] .news-studio-calendar-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
/* これからの予定（YUZ-273）：今週・来週の2段。祝日・行事は日付の見出しに小さく添える。 */
.calendar-category-chips { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
[data-calendar-board] .calendar-category-chips [data-category-filter] { min-height:44px; padding:8px 14px; border-radius:999px; gap:10px; }
.calendar-agenda-week { margin-top:24px; }
.calendar-agenda-week > h3 { margin:0 0 8px; font-size:1.1rem; }
.calendar-agenda-day { padding:12px 0; border-top:1px solid var(--line, #d7dbd5); }
.calendar-agenda-day > h4 { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin:0; font-size:0.95rem; }
.calendar-agenda-day .calendar-event-list { margin-top:12px; }
.calendar-agenda-mark { color:#9a3b36; font-size:0.8rem; font-weight:700; }
.calendar-agenda-later { margin-top:24px; }
.calendar-agenda-later > h3 { margin:0; font-size:1.1rem; }
.calendar-agenda-quiet { display:flex; align-items:center; gap:12px; margin-top:24px; }
.calendar-agenda-quiet img { width:72px; height:auto; flex-shrink:0; }
/* 予定の固定リンク（#event-<id>）で開いたカード。 */
[data-calendar-board] .news-studio-calendar-event-card.is-target { scroll-margin-top:5rem; border:2px solid var(--news-green, #2f6b4f); }
[data-calendar-board] .news-studio-calendar-event-card.is-target:focus { outline:none; } /* 枠線で示すので、スクリプトで移したフォーカスの輪は重ねない */
/* 掲載理由（YUZ-309）。一覧では1行に収め、選択日の詳細などでは全文を出す。 */
[data-calendar-board] .news-studio-calendar-event-card .calendar-event-reason { color:var(--studio-news-ink, #244b40); font-weight:700; }
[data-calendar-board] .news-studio-calendar-event-card .calendar-event-reason.is-brief { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; overflow-wrap:normal; }
