.staff-calendar { position: relative; min-width: 0; }
.staff-calendar__toolbar { display: flex; justify-content: center; align-items: center; gap: 16px; margin: 0 0 16px; min-height: 44px; }
.staff-calendar__date { display: flex; align-items: center; gap: 2px; }
.staff-calendar__date button { padding: 8px 4px; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 18px; font-weight: 600; cursor: pointer; min-height: 44px; }
.staff-calendar__date button:hover, .staff-calendar__date button[aria-expanded="true"] { color: var(--green); background: #eaf4ee; }
.staff-calendar__next svg { transform: rotate(180deg); }
.staff-calendar__week { display: grid; grid-template-columns: 96px repeat(7, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.staff-calendar__column { min-width: 0; }
.staff-calendar__column.is-selected { background: #eaf3ef; box-shadow: inset 0 2px var(--green); }
.staff-calendar__labels { display: grid; grid-template-rows: 58px 40px 40px; align-items: center; color: var(--muted); font-size: 12px; }
.staff-calendar__labels > span:not(:first-child) { display: flex; align-items: center; align-self: stretch; border-top: 1px solid var(--line); }
.staff-calendar__day { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 100%; height: 58px; padding: 4px 0 10px; border: 0; background: transparent; color: var(--text); font: inherit; cursor: pointer; }
.staff-calendar__day span { color: var(--muted); font-size: 12px; text-transform: capitalize; }
.staff-calendar__day strong { font-size: 16px; }
.staff-calendar__day[aria-current="date"]::after { content: ''; position: absolute; bottom: 5px; width: 4px; height: 4px; border-radius: 50%; background: var(--green); }
.staff-calendar__cell { display: flex; justify-content: center; align-items: center; width: calc(100% - 4px); height: 36px; margin: 2px; padding: 0; border: 1px solid #cbd7d1; border-radius: 4px; background: #f0f5f2; color: var(--text); font: inherit; cursor: pointer; }
.staff-calendar__cell--event { background: #eff4f8; border-color: #ccd7e0; }
.staff-calendar__cell strong { font-size: 14px; font-weight: 500; font-variant-numeric: tabular-nums; }
.staff-calendar__day:hover { background: #e5eeea; }
.staff-calendar__cell:hover { background: #e1ebe5; border-color: #7c9989; }
.staff-calendar__cell--event:hover { background: #e1ebf3; border-color: #849eb3; }
.staff-calendar__cell[aria-pressed="true"] { background: #dceee3; border-color: var(--green); box-shadow: inset 0 0 0 1px var(--green); }
.staff-calendar__cell[aria-pressed="true"] strong { color: var(--green-dark); font-weight: 700; }
.staff-calendar button:focus-visible, .staff-event-dialog button:focus-visible { outline: 2px solid #16785b; outline-offset: 2px; }
.staff-calendar__detail { padding: 16px 0 0; }
.staff-calendar__detail-heading, .staff-calendar__picker-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.staff-calendar__detail h3 { font-size: 16px; margin: 0; }
.staff-calendar__detail-controls { display: flex; align-items: center; gap: 4px; }
.staff-calendar__create { position: relative; }
.staff-calendar__create > summary { list-style: none; cursor: pointer; }
.staff-calendar__create > summary::-webkit-details-marker { display: none; }
.staff-calendar__create-choices { position: absolute; z-index: 10; right: 0; top: calc(100% + 4px); width: 176px; padding: 4px; border: 1px solid var(--line); border-radius: 6px; background: #fff; box-shadow: 0 6px 18px #152f241a; }
.staff-calendar__create-choices button { display: block; width: 100%; min-height: 44px; padding: 8px 12px; border: 0; border-radius: 4px; text-align: left; background: transparent; color: var(--text); font: inherit; font-size: 14px; cursor: pointer; }
.staff-calendar__create-choices button:hover { background: #edf3f0; }
.staff-calendar__create > summary:focus-visible { outline: 2px solid #16785b; outline-offset: 2px; }
.staff-calendar__agenda-row { display: grid; grid-template-columns: 80px minmax(0, 1fr) minmax(100px, 25%); align-items: center; gap: 16px; width: 100%; min-height: 64px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--text); text-align: left; font: inherit; font-size: 14px; overflow-wrap: anywhere; }
button.staff-calendar__agenda-row { cursor: pointer; }
button.staff-calendar__agenda-row:hover { background: #f0f4f2; }
.staff-calendar__agenda-copy { display: grid; gap: 4px; }
.staff-calendar__agenda-copy strong { font-weight: 500; }
.staff-calendar__agenda-type, .staff-calendar__agenda-people, .staff-calendar__empty { color: var(--muted); font-size: 12px; }
.staff-calendar__agenda-time { align-self: start; font-size: 13px; font-variant-numeric: tabular-nums; }
.staff-calendar__agenda-time small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.staff-calendar__agenda-row.is-completed .staff-calendar__agenda-copy strong { color: var(--muted); }
.staff-calendar__picker { position: absolute; z-index: 20; top: 50px; left: 50%; transform: translateX(-50%); width: min(360px, 100%); padding: 16px; border: 1px solid var(--line); border-radius: 6px; background: white; box-shadow: 0 8px 28px #152f2426; }
.staff-calendar__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.staff-calendar__days button, .staff-calendar__month .staff-calendar__pick-day { min-width: 32px; min-height: 36px; border: 0; border-radius: 4px; background: transparent; color: var(--text); font: inherit; cursor: pointer; }
.staff-calendar__days button[aria-pressed="true"], .staff-calendar__month button[aria-pressed="true"] { background: #e0f1e7; color: var(--green-dark); }
.staff-calendar__year-form { display: flex; gap: 8px; }
.staff-calendar__year-form input { width: 110px; min-height: 44px; border: 1px solid var(--line); border-radius: 4px; padding: 8px; font: inherit; }
.staff-calendar__month .fc-toolbar-title { font-size: 14px !important; }
.staff-calendar__month .fc-toolbar { gap: 8px; }
.staff-calendar__month .fc-daygrid-day-top { justify-content: center; }
.staff-calendar__month .fc-daygrid-day-events, .staff-calendar__month .fc-daygrid-day-bg { display: none; }
.staff-calendar__month .fc-daygrid-day-frame { min-height: 40px; }
.staff-event-dialog { width: min(620px, calc(100% - 24px)); max-height: calc(100dvh - 32px); overflow-y: auto; }
.staff-event-dialog .crm-dialog__body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.staff-event-participants { max-height: 240px; overflow-y: auto; border: 1px solid var(--line); padding: 12px; }
.staff-event-participants label { display: flex; align-items: center; gap: 8px; padding: 6px; }
.staff-event-error { color: #a92e2e; }
.crm-home-layout .crm-panel--calendar > .crm-panel__heading { display: none; }
.crm-home-layout .crm-panel--calendar { overflow: visible; }
.crm-home-layout #crmHomeTasks #crmDayCreateTaskButton { width: auto; padding: 8px 12px; margin: 12px 0; }
.crm-home-layout #crmHomeTasks #crmDayCreateTaskButton span { display: inline; }
@media (max-width: 600px) {
    .staff-calendar__toolbar { gap: 8px; }
    .staff-calendar__date button { font-size: 16px; }
    .staff-calendar__week { grid-template-columns: 64px repeat(7, minmax(0, 1fr)); }
    .staff-calendar__agenda-row { grid-template-columns: 58px minmax(0, 1fr); gap: 4px 12px; }
    .staff-calendar__agenda-time { grid-row: 1 / 3; }
    .staff-calendar__agenda-people { grid-column: 2; }
    .staff-event-dialog .crm-dialog__body { grid-template-columns: minmax(0, 1fr); }
    .staff-event-dialog .crm-dialog__footer > div { display: flex; flex-wrap: wrap; gap: 8px; }
}
.staff-calendar__overdue { color: #a13f38; font-size: 12px; }
.staff-calendar__agenda-row.is-overdue { border-left: 3px solid #a13f38; }
