@use '../atoms/variables' as *; @use '../atoms/mixins' as *; // ─── Statistiken-Bubble (Report-Header) ───────────────────────────────────── .report-stats-bubble { 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: var(--header-text-muted); background: var(--header-overlay); border: 1px solid var(--header-overlay); border-radius: $radius-pill; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); white-space: nowrap; text-decoration: none; transition: background $transition-fast, color $transition-fast; cursor: pointer; &:hover { color: var(--header-text); background: rgba(255, 255, 255, 0.28); } &--active { color: var(--header-text); background: rgba(255, 255, 255, 0.28); border-color: rgba(255, 255, 255, 0.35); } &__icon { width: 16px; height: 16px; flex-shrink: 0; } } // ─── Toolbar ──────────────────────────────────────────────────────────────── .statistics-toolbar { display: flex; align-items: center; justify-content: space-between; padding: $space-4 $space-5; border-bottom: 1px solid $color-border; @include tablet { flex-wrap: wrap; gap: $space-3; } } .statistics-toolbar__title { font-size: $font-size-md; font-weight: $font-weight-bold; color: $color-text-dark; } .statistics-toolbar__controls { display: flex; align-items: center; gap: $space-3; } .statistics-range-select { appearance: none; background: $color-input-bg url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%237a8a9a'/%3E%3C/svg%3E") no-repeat right 12px center; border: 1px solid $color-input-border; border-radius: $radius-md; padding: $space-2 $space-8 $space-2 $space-3; font-size: $font-size-sm; font-family: $font-family-base; color: $color-text-base; cursor: pointer; transition: border-color $transition-fast; &:hover { border-color: var(--color-primary); } &:focus { outline: none; border-color: var(--color-primary); box-shadow: $shadow-focus; } } // ─── Chart ────────────────────────────────────────────────────────────────── .statistics-chart-wrap { position: relative; height: 400px; padding: $space-6 $space-5; @include tablet { height: 300px; padding: $space-4 $space-3; } } .statistics-error { display: flex; align-items: center; justify-content: center; height: 100%; color: $color-text-muted; font-size: $font-size-sm; } // ─── Legende ──────────────────────────────────────────────────────────────── .statistics-legend { display: flex; align-items: center; justify-content: center; gap: $space-6; padding: $space-3 $space-5 $space-5; } .statistics-legend__item { display: inline-flex; align-items: center; gap: $space-2; font-size: $font-size-sm; color: $color-text-muted; &::before { content: ''; display: inline-block; width: 12px; height: 12px; border-radius: $radius-sm; } &--billable::before { background: var(--color-primary); } &--non-billable::before { background: $color-text-light; } } // ─── Donuts ──────────────────────────────────────────────────────────────── .statistics-donuts { display: grid; grid-template-columns: repeat(3, 1fr); gap: $space-5; padding: $space-5; @include tablet { grid-template-columns: 1fr; gap: $space-4; } } .statistics-donut { @include card(#ffffff, $radius-md); padding: $space-4; display: flex; flex-direction: column; align-items: center; } .statistics-donut__title { font-size: $font-size-sm; font-weight: $font-weight-bold; color: $color-text-dark; margin-bottom: $space-3; text-transform: uppercase; letter-spacing: 0.03em; } .statistics-donut__wrap { position: relative; width: 100%; max-width: 200px; aspect-ratio: 1; } .statistics-donut__legend { width: 100%; margin-top: $space-4; display: flex; flex-direction: column; gap: $space-1; } .statistics-donut__legend-item { display: flex; align-items: center; gap: $space-2; font-size: $font-size-xs; color: $color-text-base; line-height: 1.4; } .statistics-donut__legend-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; } .statistics-donut__legend-label { @include text-truncate; flex: 1; min-width: 0; } .statistics-donut__legend-value { flex-shrink: 0; color: $color-text-muted; white-space: nowrap; }