/* Shared, compact controls for the four calendar presentations. */
.calendar-heading-date { color: var(--color-muted); font-size: .62em; letter-spacing: normal; white-space: nowrap; }
.calendar-expanded-heading { margin: 0 0 12px; font-size: 24px; letter-spacing: -.5px; }
#calendar-pending-generation .button { gap: 8px; text-align: center; }
#calendar-pending-generation .icon { flex: none; }
.calendar-expanded > #calendar-pending-generation:not([hidden]) { display: flex; justify-content: flex-end; margin-bottom: 8px; }
.calendar-form { min-width: 0; }
.calendar-expanded [data-calendar-mode-position] > .section-tabs { margin-bottom: 8px; }
.calendar-resize { flex: none; }
.calendar-resize-control.button { box-sizing: border-box; min-width: 38px; min-height: 38px; gap: 6px; padding: 8px; white-space: nowrap; }
.calendar-resize-control .icon { flex: none; width: 18px; height: 18px; }
.calendar-resize--restore .icon { color: var(--color-primary); stroke-width: 2.2; }
.calendar-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 340px); align-items: center; gap: 8px 16px; }
.calendar-date-toolbar { justify-content: flex-end; min-width: 0; padding: 0; border: 0; background: transparent; }
@media (min-width: 1024px) {
  .calendar-controls:has(.calendar-zoom-slot:not(:empty)) {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 560px);
  }
}
.calendar-date-toolbar .calendar-day-picker { flex: 1; margin: 0; min-width: 0; }
.calendar-date-toolbar .calendar-day-options { gap: 4px; padding: 3px; }
.calendar-date-toolbar .calendar-day { min-width: 0; }
.calendar-date-toolbar .calendar-day-tile { box-sizing: border-box; min-height: 36px; padding: 6px 10px; }
.calendar-date-toolbar .calendar-day-date { font-size: 12px; }
.calendar-form .calendar-filterbar { flex-wrap: nowrap; gap: 8px; margin: 0; }
.calendar-zoom-slot { flex: none; }
.calendar-zoom-slot:empty { display: none; }
.calendar-filterbar .calendar-search-field { flex: 1; min-width: 0; max-width: none; }
.calendar-filterbar .list-search input { min-height: var(--search-min-height, 38px); padding-block: var(--search-padding-block, 7px); }
.calendar-form .filter-menu > summary { min-height: 38px; }
.calendar-toolbar-actions { flex: none; }
.calendar-options-menu > summary > .icon { width: 18px; height: 18px; }
.calendar-form [hidden] { display: none !important; }
.filter-active-indicator { width: 6px; height: 6px; border-radius: 50%; background: var(--color-primary); }
.calendar-filters-popover .calendar-clear-filters { display: flex; align-items: center; gap: 7px; box-sizing: border-box; min-height: 40px; padding: 10px 0 0; border-top: 1px solid var(--color-border); color: var(--color-primary); font-weight: 600; text-decoration: none; }
.calendar-filters-popover .calendar-clear-filters .icon { width: 15px; height: 15px; }
.calendar-filters-popover .calendar-clear-filters:hover { text-decoration: underline; }
.calendar-options-popover.filter-popover { width: 288px; padding: 6px; border-radius: 10px; box-shadow: 0 8px 28px #19362a1c; }
.calendar-options-group { padding: 2px 0; }
.calendar-options-group:not(:has(> a:not([hidden]))) { display: none; }
.calendar-options-group + .calendar-options-group { margin-top: 4px; padding-top: 6px; border-top: 1px solid var(--color-border); }
.calendar-options-popover .calendar-options-item { display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 44px; padding: 9px 10px; border-radius: 6px; font-size: 13px; line-height: 1.4; }
.calendar-options-popover .calendar-options-item .icon { width: 18px; height: 18px; color: var(--color-primary); }
.calendar-options-popover .calendar-options-item:is(:hover, :focus-visible) { background: var(--color-soft); color: var(--color-primary); }
.calendar-options-popover .calendar-options-item:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; }
.calendar-form .calendar-results { margin-top: 12px; }
.calendar-dragging .calendar-controls { position: sticky; top: 0; z-index: 7; background: var(--color-surface); }
.calendar-dragging .calendar-date-toolbar { position: static; background: transparent; }
@media (max-width: 1023px) {
  .calendar-controls { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}
@media (max-width: 768px), (pointer: coarse) {
  .calendar-date-toolbar { gap: 5px; }
  .calendar-resize--expand { display: none; }
  .calendar-date-toolbar:has(> #calendar-days[hidden] + .calendar-resize--expand + [hidden]) { display: none; }
  .calendar-resize-control.button { min-width: 44px; min-height: 44px; }
  .calendar-form .filter-menu > summary, .calendar-date-toolbar .calendar-day-tile { min-height: 44px; }
  .calendar-filterbar .list-search input { min-height: var(--search-min-height, 44px); }
}
@media (max-width: 768px) {
  .dashboard-heading:has(> #calendar-pending-generation:not([hidden])) { flex-direction: row; align-items: center; }
  .dashboard-heading > #calendar-pending-generation { flex: 0 1 auto; }
  #calendar-pending-generation .button { min-height: 44px; padding-inline: 10px; }
  .calendar-options-popover.filter-popover { padding: 8px; }
  .calendar-options-menu > summary { position: relative; width: 44px; padding: 8px; }
  .calendar-options-label { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
