/* Vegalta Calendar Unified - styles (kept identical to original) */
html { font-size: 62.5%; }
body {
  background: #fff;
  color: #000;
  font-family: 'Noto Sans JP', 'メイリオ', Meiryo, sans-serif;
  font-size: 1.4em;
  margin: 0; padding: 0; font-weight: 400; line-height: 1.5;
}
.nav-buttons { margin-bottom: 20px; text-align: center; }
button { background-color: #a0a0a0; color: #fff; border: none; padding: 5px 17px; margin: 0 3px; cursor: pointer; font-size: 1.6rem; font-weight: bold; }
button#prevMonthBtn { border-radius: 5px 0 0 5px; }
button#nextMonthBtn { border-radius: 0 5px 5px 0; }
button:hover { background-color: #193076; }
h1#monthTitle { margin: 0 0 20px 0; text-align: center; font-weight: bold; font-size: 1.8rem; }
.month-label { position: relative; display: inline-block; padding: 0 18px 0 0; color: #193076; font-size: 2.4rem; letter-spacing: -.03em; }
.month-label::before { content: "／"; display: block; position: absolute; bottom: 0; right: -2px; font-size: 1.8rem; color: #000; }
@media print, (min-width: 768px) {
  h1#monthTitle { font-size: 2.4rem; }
  .month-label { font-size: 3.6rem; }
  .month-label::before { bottom: 2px; right: -4px; font-size: 2.4rem; }
}
.table-container { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; table-layout: fixed; }
th, td { border: 1px solid #a0a0a0; vertical-align: top; padding: 10px 5px; word-wrap: break-word; line-height: 1.4; }
th { background-color: #efefef; text-align: center; }
#calendarHeader th:first-child, td.date-cell { width: 80px; }
td.date-cell { text-align: center; }
tr.today { border: 4px solid #d7000f; }
td.date-cell.sunday, td.date-cell.holiday { background: #fce5e7; }
td.date-cell.saturday { background: #e4fbff; }
td.event-cell { cursor: default; min-height: calc(1em + 10px); }
.event { margin-bottom: 0.3rem; cursor: pointer; transition: all .2s ease; }
.event:not(.no-modal) { color: #193076; }
.event:hover { text-decoration: underline; }
.event.no-modal { cursor: default; }
.event.no-modal:hover { text-decoration: none; }
.event-suffix { color: #555; }
@media (min-width:767px) { .event-suffix { display: none; } }
.modal { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); justify-content: center; align-items: center; z-index: 9999; }
.modal-content { background: white; padding: 1rem; border-radius: 6px; width: 90%; max-width: 640px; max-height: 80%; overflow-y: auto; position: relative; }
.modal-close { position: absolute; top: 0.2rem; right: 0.5rem; cursor: pointer; color: #888; font-size: 1.5rem; font-weight: bold; }
.modal-content h3#modalTitle { margin-bottom: 30px; padding-left: 10px; border-left: 4px solid #ccc; }
.modal-content p#modalTime, .modal-content p#modalDescription, .modal-content p#modalLocation { position: relative; padding: 2.5em 0 .5em 0; }
.modal-content p#modalTime { border-bottom: 1px solid #cccc; }
.modal-content p#modalDescription { margin-top: .5em; padding-top: 1.5em; }
.modal-content p#modalLocation { border-top: 1px solid #ccc; }
.modal-content p#modalTime::before, .modal-content p#modalDescription::before, .modal-content p#modalLocation::before { display: block; position: absolute; left: 0; }
.modal-content p#modalTime::before { content: "時間"; top: 1em; }
.modal-content p#modalDescription::before { content: "内容"; top: 0; }
.modal-content p#modalLocation::before { content: "場所"; top: 1em; }
@media print, (min-width: 768px) {
  .modal-content { padding: 15px 20px; }
  .modal-close { top: 5px; right: 15px; }
}
@media(max-width:767px){
  table, thead, tbody, th, td, tr { display: block; }
  thead tr { display: none; }
  tr { margin-bottom: 25px; border-top: 4px solid #a0a0a0; border-bottom: 1px solid #a0a0a0; }
  td.date-cell { background: #efefef; font-weight: bold; font-size: 1.2em; width: auto; padding: 0.5rem; border: none; }
  td.event-cell { border: none; border-top: 1px solid #a0a0a0; padding: 0.5rem; }
  td.event-cell .event { font-size: 1em; }
  td.event-cell:empty { display: none; }
}
@media print, (min-width:768px){
  td.date-cell.sunday~td, td.date-cell.holiday~td { background: #fce5e7; }
  td.date-cell.saturday~td { background: #e4fbff; }
  tr.today { display: table-row; }
}

.event-cell.no-events {
	text-align: left;          /* 左寄せ */
	padding-left: 8px;         /* イベント文字と揃えるための余白 */
	color: #777;               /* 灰色で控えめに */
	font-size: 12px;
	line-height: 1.4;
}