@use '../atoms/variables' as *; // ─── Page ───────────────────────────────────────────────────────────────────── .report-page { min-height: 100vh; background: $color-bg; display: flex; flex-direction: column; } // ─── Header ────────────────────────────────────────────────────────────────── .report-header { background: linear-gradient(135deg, $color-header-from 0%, $color-header-to 100%); padding: $space-4 $space-6; display: flex; align-items: center; justify-content: space-between; gap: $space-6; box-shadow: $shadow-header; } .report-header__title { font-size: $font-size-xl; font-weight: $font-weight-bold; color: $color-white; } .report-header__right { display: flex; align-items: center; gap: $space-4; } // ─── Account-Name Anzeige ──────────────────────────────────────────────────── .report-account-name { display: inline-flex; align-items: center; gap: $space-2; padding: $space-2 $space-4; font-size: $font-size-sm; font-weight: $font-weight-medium; color: rgba($color-white, 0.9); background: rgba($color-white, 0.15); border: 1px solid rgba($color-white, 0.25); border-radius: $radius-pill; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); white-space: nowrap; &__icon { width: 16px; height: 16px; flex-shrink: 0; } } // ─── Disabled Tab ──────────────────────────────────────────────────────────── .account-tab--disabled { opacity: 0.45; pointer-events: none; cursor: default; } // ─── Content ───────────────────────────────────────────────────────────────── .report-content { flex: 1; max-width: 1200px; width: 100%; margin: $space-6 auto; padding: 0 $space-6; } // ─── Karte ─────────────────────────────────────────────────────────────────── .report-card { background: $color-card-white; border-radius: $radius-lg; box-shadow: $shadow-card; overflow: hidden; } // ─── Toolbar ───────────────────────────────────────────────────────────────── .report-toolbar { display: flex; align-items: center; justify-content: space-between; padding: $space-3 $space-5; border-bottom: 1px solid $color-border; } .report-toolbar__left { display: flex; align-items: center; gap: $space-6; } .report-toolbar__action { display: inline-flex; align-items: center; gap: $space-2; font-size: $font-size-sm; font-weight: $font-weight-medium; color: $color-primary; cursor: pointer; text-decoration: none; svg { width: 14px; height: 14px; flex-shrink: 0; } &--disabled { color: $color-text-muted; pointer-events: none; cursor: default; } } // ─── Tabelle ───────────────────────────────────────────────────────────────── .report-table { width: 100%; } .report-table__head, .report-table__row { display: grid; grid-template-columns: 110px // Datum 140px // Kunde 130px // Projekt 120px // Leistung 140px // Benutzer 1fr // Bemerkung 80px // Stunden 100px // Umsatz 36px; // Schloss align-items: center; border-bottom: 1px solid $color-border; padding: 0 $space-5; } .report-table__head { padding-top: $space-2; padding-bottom: $space-2; background: transparent; .report-table__cell { font-size: $font-size-xs; font-weight: $font-weight-bold; color: $color-text-base; text-transform: uppercase; letter-spacing: 0.03em; line-height: 1.3; } } .report-table__row { padding-top: $space-3; padding-bottom: $space-3; transition: background $transition-fast; &:hover { background: rgba($color-primary, 0.035); } &--invoiced { // Kein opacity – das würde auch das Schloss-Icon abdunkeln/aufhellen. // Selektiv nur die Text-Zellen dämpfen: .report-table__cell--date { color: $color-text-light; } .report-table__cell--client { color: $color-text-light; } .report-table__cell--project { color: $color-text-light; } .report-table__cell--service { color: $color-text-light; } .report-table__cell--user { color: $color-text-light; } .report-table__cell--note { color: $color-text-light; } .report-table__cell--duration { color: $color-text-light; } .report-table__cell--revenue { color: $color-text-light; } .report-table__date-link { color: $color-text-light; text-decoration: none; } } &:last-child { border-bottom: none; } } .report-table__cell { font-size: $font-size-base; color: $color-text-base; padding-right: $space-3; line-height: 1.4; min-width: 0; &--duration, &--revenue { text-align: right; padding-right: $space-4; white-space: nowrap; font-variant-numeric: tabular-nums; } &--lock { display: flex; justify-content: flex-start; align-items: center; padding-right: 0; } &--note { color: $color-text-muted; font-size: $font-size-sm; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } } .report-table__sort-icon { margin-left: 2px; font-size: $font-size-xs; } .report-table__summary { display: block; font-size: $font-size-xs; font-weight: $font-weight-regular; color: $color-text-muted; margin-top: 1px; } .report-table__date-link { color: $color-primary; text-decoration: none; white-space: nowrap; &:hover { text-decoration: underline; } } .report-table__empty { padding: $space-10 $space-5; text-align: center; color: $color-text-muted; font-size: $font-size-sm; } // ─── Schloss-Button ────────────────────────────────────────────────────────── .report-lock { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border: none; background: none; cursor: pointer; color: $color-text-light; border-radius: $radius-sm; transition: color $transition-fast, background $transition-fast; svg { width: 14px; height: 14px; } &:hover { color: $color-text-muted; background: rgba($color-text-dark, 0.06); } &--invoiced { color: $color-text-dark; &:hover { color: $color-text-dark; background: rgba($color-text-dark, 0.06); } } } // ─── Pagination-Footer ──────────────────────────────────────────────────────── // Gleiche Grid-Spalten wie .report-table__head/.report-table__row: // 1fr entspricht allen Spalten links der Zahlen (Anzeigen-Text) // 80px = Stunden, 100px = Umsatz, 36px = Schloss-Platzhalter .report-pagination { display: grid; grid-template-columns: 1fr 80px 100px 36px; align-items: center; padding: $space-3 $space-5; border-top: 1px solid $color-border; font-size: $font-size-sm; color: $color-text-muted; } .report-pagination__limits { display: flex; align-items: center; gap: $space-2; a { color: $color-primary; text-decoration: underline; cursor: pointer; &:hover { color: $color-primary-dark; } } strong { color: $color-text-dark; font-weight: $font-weight-bold; } } .report-pagination__duration, .report-pagination__revenue { text-align: right; padding-right: $space-4; font-weight: $font-weight-medium; color: $color-text-muted; font-variant-numeric: tabular-nums; white-space: nowrap; } .report-pagination__lock-spacer { // Platzhalter für die Schloss-Spalte – hält die Ausrichtung }