/* ===== Absence Items ===== */
.absence-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md) var(--space-lg);
    border-bottom: 1px solid var(--color-border-light);
    gap: var(--space-md);
}

.absence-item:last-child {
    border-bottom: none;
}

.absence-item__dates {
    font-size: var(--font-size-sm);
    font-weight: 500;
}

.absence-item__meta {
    display: flex;
    gap: var(--space-xs);
    margin-top: var(--space-xs);
    flex-wrap: wrap;
}

.absence-item__notiz {
    font-size: var(--font-size-xs);
    color: var(--color-text-light);
    margin-top: var(--space-xs);
}

/* ===== Absence Badges ===== */
.absence-badge--nicht-verfügbar,
.absence-badge--nicht-verfugbar {
    background: var(--color-cat-c-bg);
    color: var(--color-cat-c);
}

.absence-badge--urlaub {
    background: var(--color-cat-a-bg);
    color: var(--color-cat-a);
}

.absence-badge--krank {
    background: var(--color-error-bg);
    color: var(--color-error);
}

/* ===== Vacation Bar ===== */
.vacation-bar__track {
    height: 8px;
    background: var(--color-border-light);
    border-radius: var(--radius-full);
    overflow: hidden;
}

.vacation-bar__fill {
    height: 100%;
    background: var(--color-text);
    border-radius: var(--radius-full);
    transition: width 0.3s ease;
}

.vacation-bar__labels {
    display: flex;
    justify-content: space-between;
    font-size: var(--font-size-xs);
    color: var(--color-text-light);
    margin-top: var(--space-xs);
}

/* ===== Admin Absences ===== */
.absence-request {
    padding: var(--space-md) var(--space-lg);
    border-bottom: 1px solid var(--color-border-light);
}

.absence-request:last-child {
    border-bottom: none;
}

.absence-request__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-sm);
}

.absence-request__name {
    font-weight: 500;
    font-size: var(--font-size-sm);
}

.absence-request__dates {
    font-size: var(--font-size-sm);
    color: var(--color-text-light);
    margin-top: 2px;
}

.absence-request__days {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

.absence-request__notiz {
    font-size: var(--font-size-xs);
    color: var(--color-text-light);
    margin-top: var(--space-xs);
    font-style: italic;
}

.absence-request__actions {
    display: flex;
    gap: var(--space-xs);
    margin-top: var(--space-sm);
}

/* ===== Month Overview ===== */
.absence-month-item {
    display: flex;
    align-items: center;
    padding: var(--space-sm) var(--space-lg);
    border-bottom: 1px solid var(--color-border-light);
    gap: var(--space-md);
    font-size: var(--font-size-sm);
}

.absence-month-item:last-child {
    border-bottom: none;
}

.absence-month-item__name {
    flex: 1;
    font-weight: 500;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.absence-month-item__dates {
    color: var(--color-text-light);
    white-space: nowrap;
}
