/* Calendar scale controls share the compact toolbar. Lists scroll independently. */
.calendar-toolbar { margin:0 0 9px;min-height:36px;flex-wrap:wrap;gap:8px; }
.calendar-toolbar-main { display:flex;align-items:center;gap:14px;min-width:0;flex-wrap:wrap; }
.calendar-view-switch { display:flex;align-items:center;padding:3px;background:#fff;border-radius:22px;gap:2px; }
.calendar-view-switch button { font-size:11px;min-height:29px;padding:6px 12px;border-radius:18px;color:#7b9182; }
.calendar-view-switch button[aria-pressed="true"] { color:#fff;background:var(--green); }
.calendar-toolbar .calendar-summary { margin-left:auto; }
.calendar-create { display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap; }
.calendar-create svg { width:14px;height:14px; }
.calendar-period-bar { display:flex;align-items:center;gap:6px;min-height:32px;margin:0 0 6px; }
.calendar-period-bar .icon-button { height:28px;width:28px;background:white; }
.calendar-period-bar svg { width:14px;height:14px; }
.calendar-period-bar select { border:0;background:#fff;border-radius:14px;font-size:13px;color:#355a43;padding:7px 12px;max-width:calc(100% - 110px); }
#calendar-window-caption { font-size:12px;color:#8c9e91;margin-left:4px; }
.main-calendar-selection { display:flex;align-items:center;gap:9px;font-size:11px;color:#71907e;min-height:31px;margin-bottom:7px; }
#main-selection-status { min-width:0;flex:1;line-height:1.5; }
#clear-main-selection { font-size:10px;color:#71907e;text-decoration:underline;flex-shrink:0; }
#add-selected-event { padding:6px 10px;font-size:10px;min-height:28px;background:white;flex-shrink:0; }
.calendar-page[data-calendar-scale="quarter"] .year-grid { grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr); }
.calendar-page[data-calendar-scale="month"] .year-grid { grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr); }
.detail-calendar-month { display:flex;flex-direction:column;min-height:0;min-width:0;background:white;border-radius:17px;padding:12px 10px;gap:8px; }
.detail-month-name { font-size:14px;font-weight:600;text-align:left;padding:2px 4px;align-self:flex-start; }
.detail-weekdays { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));font-size:10px;color:#91a397;text-align:center;gap:4px; }
.detail-days { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));flex:1;min-height:0;gap:4px; }
.detail-day { min-width:0;min-height:0;overflow:hidden;border-radius:8px;padding:5px 3px;background:#f7f9f7;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;font-size:12px;color:#4d6c59; }
.detail-day.weekend { color:#8b9f92; }
.detail-day.is-today { outline:1px solid #75b793;outline-offset:-1px;font-weight:700; }
.detail-day.range-selected { box-shadow:inset 0 0 0 1px #9acbb0;background-image:linear-gradient(#daf1e5a0,#daf1e5a0)!important;color:#274e37; }
.detail-day.range-start,.detail-day.range-end { box-shadow:inset 0 0 0 2px var(--green);font-weight:700; }
.detail-day-number { flex-shrink:0;line-height:1.2; }
.detail-day .birthday-markers { flex-shrink:0;gap:1px; }
.detail-day-events { width:100%;display:flex;flex-direction:column;gap:2px;min-height:0;overflow:hidden; }
.detail-event-title { font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;line-height:1.5;font-weight:500; }
.detail-event-more { font-size:9px;color:#8a9e91; }
.detail-has-events { display:none;width:3px;height:3px;background:#7aa98b;border-radius:50%;flex-shrink:0; }
.calendar-page[data-calendar-scale="month"] .detail-month-name { display:none; }
.calendar-page[data-calendar-scale="month"] .detail-day { align-items:flex-start;padding:8px; }
.calendar-page[data-calendar-scale="month"] .detail-event-title { font-size:11px; }
@media(max-width:1100px) { .calendar-toolbar-main { gap:6px; } .calendar-view-switch button { padding-inline:9px; } .calendar-toolbar .calendar-summary { display:none; } .calendar-toolbar .calendar-create { margin-left:auto; } }
@media(max-width:820px) {
  .calendar-toolbar { gap:5px;align-items:flex-start; }
  .calendar-toolbar-main { flex:1;min-width:0;gap:5px; }
  .calendar-view-switch { padding:2px; }
  .calendar-view-switch button { font-size:10px;min-height:27px;padding:5px 11px; }
  .calendar-toolbar .calendar-create { min-height:29px;padding:6px 9px; }
  .calendar-toolbar .calendar-create span { display:none; }
  .calendar-toolbar .calendar-create svg { width:17px;height:17px; }
  .calendar-list-toggle { font-size:9px;padding:7px 8px; }
  .calendar-period-bar { min-height:29px;margin-bottom:4px; }
  .calendar-period-bar select { font-size:11px;padding:6px 8px; }
  .calendar-period-bar .icon-button { width:25px;height:25px; }
  .main-calendar-selection { gap:5px;font-size:9px;min-height:28px;margin-bottom:5px; }
  #clear-main-selection { font-size:9px; }
  #add-selected-event { font-size:9px;padding:5px 7px;min-height:27px; }
  .calendar-page[data-calendar-scale="quarter"] .year-grid { grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr); }
  .calendar-page[data-calendar-scale="year"] .calendar-month { padding:4px 3px;gap:1px; }
  .calendar-page[data-calendar-scale="year"] .mini-days { font-size:7px; }
  .calendar-page[data-calendar-scale="quarter"] .detail-calendar-month { padding:6px 3px; }
  .calendar-page[data-calendar-scale="quarter"] .detail-days { gap:2px 1px; }
  .calendar-page[data-calendar-scale="quarter"] .detail-weekdays { font-size:7px;gap:1px; }
  .detail-calendar-month { padding:5px 7px;gap:3px;border-radius:12px; }
  .detail-month-name { font-size:10px;padding:0 2px; }
  .detail-weekdays { font-size:8px;gap:2px; }
  .detail-days { gap:2px; }
  .detail-day { padding:1px;gap:1px;font-size:9px;border-radius:4px;justify-content:center; }
  .detail-day-events { display:none; }
  .detail-day .birthday-markers { position:absolute;right:1px;bottom:0;gap:0; }
  .detail-day { position:relative; }
  .detail-day .birthday-marker svg { width:7px;height:8px; }
  .detail-day .birthday-marker:not(:first-child),.detail-day .birthday-more { display:none; }
  .detail-has-events { display:block; }
  .calendar-page[data-calendar-scale="quarter"] .detail-has-events { position:absolute;bottom:1px;left:2px;width:2px;height:2px; }
  .calendar-page[data-calendar-scale="month"] .detail-calendar-month { padding:8px;gap:7px; }
  .calendar-page[data-calendar-scale="month"] .detail-day { padding:5px;justify-content:flex-start;align-items:flex-start;font-size:12px;gap:3px; }
  .calendar-page[data-calendar-scale="month"] .detail-day-events { display:flex; }
  .calendar-page[data-calendar-scale="month"] .detail-event-title { font-size:8px; }
  .calendar-page[data-calendar-scale="month"] .detail-day .birthday-markers { position:static; }
  .calendar-page[data-calendar-scale="month"] .detail-day .birthday-marker svg { width:9px;height:10px; }
  .calendar-page[data-calendar-scale="month"] .detail-has-events { display:none; }
}
@media(max-height:650px) and (min-width:821px) { .detail-day { padding-block:2px;gap:2px; } .detail-event-title { font-size:9px; } }
@media(max-width:820px) {
  .calendar-page[data-calendar-scale="month"] .detail-day .birthday-markers { position:absolute;top:4px;right:2px;bottom:auto; }
  .calendar-page[data-calendar-scale="month"] .detail-day .birthday-marker svg { width:8px;height:9px; }
  .calendar-page[data-calendar-scale="month"] .detail-day .birthday-marker:nth-child(2) { display:inline-flex; }
  .calendar-page[data-calendar-scale="month"] .detail-event-title:nth-child(n+2),.calendar-page[data-calendar-scale="month"] .detail-event-more { display:none; }
}
@media(max-width:820px) and (max-height:650px) {
  .calendar-page[data-calendar-scale="month"] [data-rows="6"] .detail-day-events { display:none; }
  .calendar-page[data-calendar-scale="month"] [data-rows="6"] .detail-has-events { display:block; }
}
