/* ERadius — календар відсутностей (задача C, [КАЛЕНДАР]).
   FullCalendar вставляє власний CSS через CSSOM раніше за всі наші <link>,
   тож тут — лише перевизначення: його змінні --fc-* прив'язані до
   семантичних токенів DESIGN.md §2.2, кольори типів — до --absence-*
   (refine.css). Жодного літерала кольору, радіус 0 (Carbon). */

/* Тони типів відсутності: смуга, зразок у фільтрі, легенда — один клас. */
.abs-tone-vacation{--abs-color:var(--absence-vacation)}
.abs-tone-sick{--abs-color:var(--absence-sick)}
.abs-tone-trip{--abs-color:var(--absence-trip)}
.abs-tone-other{--abs-color:var(--absence-other)}
.abs-tone-c0{--abs-color:var(--absence-c0)}
.abs-tone-c1{--abs-color:var(--absence-c1)}
.abs-tone-c2{--abs-color:var(--absence-c2)}
.abs-tone-c3{--abs-color:var(--absence-c3)}

/* ── Розкладка: фільтри ліворуч (як «Мої календарі»), місяць праворуч ── */
.absence-calendar-panel{padding:0;margin-bottom:var(--space-4)}
.abs-cal-layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:560px}
.abs-cal-filters{border-right:1px solid var(--line);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4);background:var(--panel)}
.abs-cal-main{padding:var(--space-4);min-width:0;display:flex;flex-direction:column;gap:var(--space-3)}
.abs-cal-foot{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);justify-content:space-between}
@media (max-width:960px){
  .abs-cal-layout{grid-template-columns:1fr}
  .abs-cal-filters{border-right:0;border-bottom:1px solid var(--line)}
}

/* ── Фільтри ── */
.abs-filter-search .search{width:100%;min-width:0}
.abs-cal-filters .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.abs-filter-group{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;min-width:0}
.abs-filter-group legend{float:left;padding:0;font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--muted);letter-spacing:.32px}
.abs-filter-bulk{display:flex;gap:var(--space-3);margin:0 0 var(--space-1);font-size:var(--fs-caption);clear:both}
.abs-filter-bulk .text-button{color:var(--accent);font-weight:var(--fw-regular);font-size:var(--fs-caption)}
.abs-filter-item{display:flex;align-items:center;gap:var(--space-2);min-height:24px;font-size:var(--fs-body);color:var(--ink);cursor:pointer}
.abs-filter-item input{accent-color:var(--accent);margin:0}
.abs-filter-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.abs-filter-count{color:var(--muted);font-size:var(--fs-caption);font-variant-numeric:tabular-nums}
.abs-swatch{flex:0 0 auto;width:10px;height:10px;background:var(--abs-color)}

/* ── FullCalendar на токенах ── */
.absence-calendar{
  --fc-border-color:var(--line);
  --fc-page-bg-color:var(--panel);
  --fc-neutral-bg-color:var(--panel-raised);
  --fc-neutral-text-color:var(--muted);
  --fc-today-bg-color:var(--accent-quiet);
  --fc-small-font-size:var(--fs-caption);
  --fc-button-text-color:var(--ink);
  --fc-button-bg-color:var(--panel);
  --fc-button-border-color:var(--line-strong);
  --fc-button-hover-bg-color:var(--panel-raised);
  --fc-button-hover-border-color:var(--line-strong);
  --fc-button-active-bg-color:var(--accent-solid);
  --fc-button-active-border-color:var(--accent-solid);
  --fc-event-bg-color:var(--panel-raised);
  --fc-event-border-color:var(--line-strong);
  --fc-event-text-color:var(--ink);
  --fc-more-link-bg-color:transparent;
  --fc-more-link-text-color:var(--ink);
  --fc-highlight-color:var(--accent-quiet);
  color:var(--ink);
  font-size:var(--fs-body);
}
.absence-calendar *{border-radius:0}
.absence-calendar .fc-toolbar.fc-header-toolbar{margin-bottom:var(--space-3)}
/* Велика лише перша літера: capitalize робив «Вересень 2026 Р.» */
.absence-calendar .fc-toolbar-title{font-size:var(--fs-display);font-weight:var(--fw-regular);color:var(--ink)}
.absence-calendar .fc-toolbar-title::first-letter{text-transform:uppercase}
.absence-calendar .fc .fc-button{font-size:var(--fs-body);font-weight:var(--fw-regular);padding:0 var(--space-3);min-height:var(--control-h);box-shadow:none}
.absence-calendar .fc .fc-button:focus,.absence-calendar .fc .fc-button-primary:focus,
.absence-calendar .fc .fc-button-primary:not(:disabled).fc-button-active:focus{box-shadow:none;outline:2px solid var(--border-focus);outline-offset:-2px}
.absence-calendar .fc .fc-button-primary:not(:disabled).fc-button-active,
.absence-calendar .fc .fc-button-primary:not(:disabled):active{color:var(--on-copper)}
.absence-calendar .fc .fc-button-primary:disabled{color:var(--muted);opacity:1}
.absence-calendar .fc-col-header-cell{background:var(--panel-raised)}
.absence-calendar .fc-col-header-cell-cushion{color:var(--muted);font-size:var(--fs-caption);font-weight:var(--fw-semibold);text-transform:capitalize;padding:var(--space-1) var(--space-2);text-decoration:none}
.absence-calendar .fc-daygrid-day-number{color:var(--ink);font-size:var(--fs-caption);text-decoration:none;font-variant-numeric:tabular-nums;padding:var(--space-1) var(--space-2)}
.absence-calendar .fc-day-other .fc-daygrid-day-number{color:var(--muted)}
.absence-calendar .fc-day-today .fc-daygrid-day-number{background:var(--accent-solid);color:var(--on-copper);font-weight:var(--fw-semibold);margin:2px}
.absence-calendar .fc-daygrid-day-frame{min-height:96px;cursor:pointer}
.absence-calendar .fc-day-sat,.absence-calendar .fc-day-sun{background:var(--bg-soft)}
.absence-calendar .fc-day-today{background:var(--fc-today-bg-color)}

/* Смуга відсутності: тон типу — заливка з тла панелі + сильний лівий край
   на початку відсутності; текст — --ink, тому читається в обох темах. */
.absence-calendar .abs-ev{
  background:color-mix(in srgb,var(--abs-color) 24%,var(--panel));
  border:0;border-left:3px solid var(--abs-color);
  color:var(--ink);cursor:pointer;margin-top:1px;
}
.absence-calendar .abs-ev:not(.fc-event-start){border-left-color:transparent}
.absence-calendar .abs-ev:hover{background:color-mix(in srgb,var(--abs-color) 38%,var(--panel))}
.absence-calendar .abs-ev .fc-event-main{color:var(--ink);padding:1px var(--space-1)}
.absence-calendar .abs-ev .fc-event-title{font-size:var(--fs-caption);font-weight:var(--fw-medium)}
.absence-calendar .abs-ev.abs-pending{
  background:color-mix(in srgb,var(--abs-color) 8%,var(--panel));
  outline:1px dashed var(--abs-color);outline-offset:-1px;
}
.absence-calendar .abs-ev.abs-pending .fc-event-title{font-style:italic}
.absence-calendar .fc-daygrid-more-link{font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--ink)}
.absence-calendar .fc-daygrid-more-link:hover{background:var(--panel-raised)}
.absence-calendar .fc-popover{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-float)}
.absence-calendar .fc-popover-header{background:var(--panel-raised);color:var(--ink);font-size:var(--fs-caption)}
.absence-calendar .fc-popover-close{color:var(--muted);opacity:1}
/* Шрифт іконок fcicons вилучено (CSP) — «×» закриття поповера текстом. */
.absence-calendar .fc-icon{font-family:inherit!important;width:auto;height:auto}
.absence-calendar .fc-popover-close{cursor:pointer;padding:0 var(--space-1)}
.absence-calendar .fc-popover-close:empty::before{content:'×';font-size:var(--fs-title);line-height:1}
.absence-calendar .fc-prev-button,.absence-calendar .fc-next-button{font-size:var(--fs-title);min-width:var(--control-h)}

/* Стара тижнева таблиця «працівник × дні» — другорядний, згорнутий вигляд. */
.avail-details{margin-bottom:var(--space-4);border:1px solid var(--line);background:var(--panel)}
.avail-details>summary{cursor:pointer;padding:var(--space-3) var(--space-4);color:var(--muted);font-size:var(--fs-body)}
.avail-details>summary:hover{color:var(--ink);background:var(--panel-raised)}
.avail-details[open]>summary{border-bottom:1px solid var(--line)}
.avail-details>.availability-panel{border:0;margin:0}
