.page { display: flex; flex-direction: column; gap: 24px; } .statsRow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; } .statCard { padding: 20px; display: flex; flex-direction: column; align-items: center; gap: 4px; } .statValue { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 32px; font-weight: 800; line-height: 1; } .statLabel { font-size: 12px; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; } .filters { display: flex; flex-wrap: wrap; gap: 8px; } .filter, .filterActive { padding: 7px 16px; border-radius: 20px; font-size: 13px; font-weight: 500; cursor: pointer; border: 1px solid var(--border-subtle); background: transparent; color: var(--text-secondary); transition: all 0.15s; } .filter:hover { border-color: var(--primary); color: var(--primary); } .filterActive { background: var(--primary-dim); border-color: rgba(75,183,248,0.3); color: var(--primary); } /* Gruppen-Filter (zweite Ebene) */ .groupFilters { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 0; border-top: 1px solid var(--border-subtle); margin-top: -8px; } .groupFilter, .groupFilterActive { padding: 5px 13px; border-radius: 16px; font-size: 12px; font-weight: 600; cursor: pointer; border: 1px solid var(--border-subtle); background: transparent; color: var(--text-muted); transition: all 0.15s; } .groupFilter:hover { border-color: rgba(75,183,248,0.3); color: var(--text-secondary); } .groupFilterActive { background: rgba(75,183,248,0.12); border-color: rgba(75,183,248,0.25); color: var(--primary); } .dayGroup { display: flex; flex-direction: column; gap: 12px; } .dayHeader { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; font-weight: 600; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.08em; padding: 0 4px; display: flex; align-items: center; gap: 8px; } .todayDot { width: 8px; height: 8px; border-radius: 50%; background: var(--primary); box-shadow: 0 0 6px rgba(75,183,248,0.6); flex-shrink: 0; } .matchList { display: flex; flex-direction: column; gap: 10px; } /* States */ .loadingState, .errorState, .emptyState { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 60px 20px; color: var(--text-secondary); } .spinner { width: 32px; height: 32px; border: 3px solid var(--surface-high); border-top-color: var(--primary); border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .emptyIcon { font-size: 48px; } .emptyHint { font-size: 13px; color: var(--text-muted); } .errorState { color: var(--error); }