|
- @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;
- }
|