@use '../atoms/variables' as *; @use '../atoms/mixins' as *; // ─── Entry List Container ────────────────────────────────────────────────── .entry-list { @include card; overflow: hidden; transition: opacity 0.18s ease; &--fading { opacity: 0; } } // ─── Empty State ────────────────────────────────────────────────────────── .empty-state { @include card; padding: $space-6 $space-8; } .empty-state__title { font-size: $font-size-base; font-weight: $font-weight-bold; color: $color-text-dark; margin: 0 0 $space-2; } // ─── Footer mit Gesamtdauer ─────────────────────────────────────────────── .entry-list__footer { display: flex; justify-content: flex-end; padding: $space-3 calc(#{$space-8} + #{$icon-btn-size} + #{$icon-btn-size} + #{$space-2} + #{$space-2}); border-top: 1px solid $color-border; } .entry-list__total { font-size: $font-size-base; font-weight: $font-weight-bold; color: $color-text-dark; background: $color-card; border-radius: $radius-pill; padding: $space-1 $space-4; } // ─── Entry Row ──────────────────────────────────────────────────────────── .entry-row { border-bottom: 1px solid rgba($color-border, 0.5); transition: opacity 0.28s ease, transform 0.28s ease, max-height 0.28s ease; &:last-child { border-bottom: none; } &--new { opacity: 0; transform: translateY(-6px); } &--removing { opacity: 0; transform: translateX(12px); max-height: 0; overflow: hidden; padding: 0; margin: 0; } } // ─── Anzeige-Modus ──────────────────────────────────────────────────────── .entry-row__display { display: flex; align-items: center; justify-content: space-between; gap: $space-4; padding: $space-4 $space-8; &:hover { background: rgba(var(--color-primary-rgb), 0.05); .entry-row__btn { opacity: 1; } } } .entry-row__info { flex: 1; min-width: 0; } .entry-row__title { font-size: $font-size-base; font-weight: $font-weight-bold; color: $color-text-dark; @include text-truncate; } .entry-row__note { font-size: $font-size-sm; color: $color-text-muted; margin-top: 2px; @include text-truncate; } .entry-row__actions { display: flex; align-items: center; gap: $space-2; flex-shrink: 0; } .entry-row__badge { font-size: $font-size-sm; font-weight: $font-weight-bold; color: $color-text-dark; background: $color-card; border-radius: $radius-pill; padding: $space-1 $space-3; min-width: 48px; text-align: center; font-variant-numeric: tabular-nums; } .entry-row__btn { @include icon-btn; opacity: 0; color: $color-text-muted; svg { width: $icon-svg-size; height: $icon-svg-size; } &--edit:hover { background: rgba(var(--color-primary-rgb), 0.1); color: var(--color-primary); } &--delete:hover{ background: rgba($color-error, 0.1); color: $color-error; } @media (hover: none) { opacity: 1; } } // ─── Lock-Indikator (invoiced) ──────────────────────────────────────────── .entry-row__lock-indicator { display: flex; align-items: center; justify-content: center; width: calc(#{$icon-btn-size} + #{$space-2} + #{$icon-btn-size}); flex-shrink: 0; color: $color-text-dark; svg { width: $icon-svg-size; height: $icon-svg-size; pointer-events: none; } } // ─── Abgerechneter Eintrag ──────────────────────────────────────────────── .entry-row--invoiced { .entry-row__title { color: $color-text-muted; font-weight: $font-weight-regular; } .entry-row__note { color: $color-text-light; } .entry-row__badge { color: $color-text-muted; background: rgba($color-card, 0.6); } } // ─── Bearbeiten-Modus ───────────────────────────────────────────────────── .entry-row__edit { padding: $space-4 $space-8; background: rgba(var(--color-primary-rgb), 0.04); border-top: 1px solid rgba($color-border, 0.5); } .entry-form__grid--inline { display: grid; grid-template-columns: 130px 1fr; gap: $space-3 $space-6; align-items: center; }