/* v5.25.45 - Abwesenheitsregister mit DB-Cache und robustem Textumbruch */
.absence-register-section {
  margin-top: 16px;
}
.absence-register-panel {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--outline-variant, var(--border));
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-container-low, var(--surface)) 92%, var(--primary) 8%);
  box-shadow: var(--shadow-1);
}
.absence-register-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.absence-register-head h2 {
  margin: 0;
  font-size: 18px;
}
.absence-register-head p,
.absence-sync-info {
  margin: 4px 0 0;
}
.absence-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 11px;
  color: var(--on-surface-variant);
}
.absence-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 7px;
  border: 1px solid var(--outline-variant, var(--border));
  border-radius: 999px;
  background: var(--surface);
}
.absence-legend i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary);
}
.absence-legend i.onsite,
.absence-member-row.onsite { --absence-color: #0f766e; }
.absence-legend i.busy,
.absence-member-row.busy { --absence-color: #2563eb; }
.absence-legend i.oof,
.absence-member-row.oof { --absence-color: #dc2626; }
.absence-legend i.free,
.absence-member-row.free { --absence-color: #16a34a; }
.absence-legend i.onsite,
.absence-legend i.busy,
.absence-legend i.oof,
.absence-legend i.free { background: var(--absence-color); }
.absence-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px;
}
.absence-member-row {
  display: grid;
  gap: 9px;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  padding: 11px;
  border: 1px solid color-mix(in srgb, var(--absence-color, var(--outline-variant)) 38%, var(--outline-variant, var(--border)));
  border-left: 5px solid var(--absence-color, var(--outline-variant));
  border-radius: 15px;
  background: color-mix(in srgb, var(--absence-color, var(--surface)) 7%, var(--surface));
}
.absence-member-main,
.absence-status-line {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 9px;
}
.absence-member-main > div,
.absence-status-line > div {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.absence-member-main strong,
.absence-status-line b {
  display: block;
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.absence-member-main small,
.absence-status-line small {
  display: block;
  max-width: 100%;
  color: var(--on-surface-variant);
  line-height: 1.3;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.absence-status-line .material-symbols-outlined {
  color: var(--absence-color, var(--primary));
  font-size: 22px;
}
.absence-upcoming {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 7px 0 0 0;
  border-top: 1px dashed var(--outline-variant, var(--border));
  list-style: none;
}
.absence-upcoming li {
  display: grid;
  grid-template-columns: minmax(52px, auto) minmax(0, 1fr);
  gap: 4px 7px;
  min-width: 0;
  font-size: 11px;
}
.absence-upcoming li span,
.absence-upcoming li small,
.absence-upcoming li strong {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.absence-upcoming li small {
  grid-column: 2;
  color: var(--on-surface-variant);
}
.absence-upcoming li strong {
  white-space: normal;
}
@media (max-width: 760px) {
  .absence-register-head {
    display: grid;
  }
  .absence-list {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* v5.25.67 - Abwesenheitsregister: auswählbarer Anzeige-Tag und ganztägige Auswertung */
.absence-head-actions {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.absence-date-control {
  display: grid;
  gap: 4px;
  min-width: 155px;
  font-size: 11px;
  font-weight: 800;
  color: var(--on-surface-variant);
}
.absence-date-control .input {
  min-height: 34px;
  padding: 6px 9px;
  font-size: 12px;
}
@media (max-width: 760px) {
  .absence-head-actions {
    justify-content: stretch;
  }
  .absence-date-control,
  .absence-head-actions .btn {
    width: 100%;
  }
}
