.tzq-stat-card {
background: var(--tzq-bg-primary);
border-radius: var(--tzq-radius-md);
transition: var(--tzq-transition-all);
position: relative;
display: flex;
overflow: hidden;
}
.tzq-stat-card:hover {
box-shadow: var(--tzq-shadow-lg);
}
.tzq-stat-card--gradient {
background: var(--tzq-gradient-primary);
color: white;
border: 1px solid var(--tzq-primary-light);
}
.tzq-stat-card--center {
text-align: center;
}
.tzq-stat-card--level .tzq-stat-card__value,
.tzq-stat-card--timer .tzq-stat-card__value {
background: var(--tzq-gradient-primary);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.tzq-stat-card--score .tzq-stat-card__value {
background: var(--tzq-gradient-success);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.tzq-stat-card--time .tzq-stat-card__value {
color: var(--tzq-primary);
}
.tzq-stat-card--time.tzq-state--warning .tzq-stat-card__value {
color: var(--tzq-warning);
animation: pulse-warning 1s ease-in-out infinite;
}
.tzq-stat-card--time.tzq-state--critical .tzq-stat-card__value {
color: var(--tzq-error);
animation: pulse-critical 0.5s ease-in-out infinite;
}
@keyframes pulse-warning {
0%,
100% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.8;
transform: scale(1.05);
}
}
@keyframes pulse-critical {
0%,
100% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.7;
transform: scale(1.1);
}
}
.tzq-stat-card--moves .tzq-stat-card__value {
color: var(--tzq-warning);
}
.tzq-stat-card--matches .tzq-stat-card__value {
color: var(--tzq-success);
}
.tzq-stat-card--correct .tzq-stat-card__value {
color: var(--tzq-success);
}
.tzq-stat-card--wrong .tzq-stat-card__value {
color: var(--tzq-error);
}
.tzq-stat-card--compact {
padding: var(--tzq-spacing-sm);
}
.tzq-stat-card--compact .tzq-stat-card__icon {
width: 32px;
height: 32px;
font-size: var(--tzq-text-sm);
}
.tzq-stat-card--compact .tzq-stat-card__value {
font-size: var(--tzq-text-lg);
}
.tzq-stat-card--compact .tzq-stat-card__label {
font-size: var(--tzq-text-sm);
}
.tzq-stat-card__icon {
width: 48px;
height: 48px;
border-radius: var(--tzq-radius-md);
display: flex;
align-items: center;
justify-content: center;
font-size: var(--tzq-text-2xl);
margin-bottom: var(--tzq-spacing-sm);
background: var(--tzq-gradient-primary);
color: white;
box-shadow: var(--tzq-shadow-blue);
}
.tzq-stat-card__value {
font-size: var(--tzq-text-3xl);
font-weight: var(--tzq-font-bold);
color: var(--tzq-text-primary);
margin: 0 0 var(--tzq-spacing-xs) 0;
line-height: var(--tzq-leading-tight);
font-family: var(--tzq-font-heading);
}
.tzq-stat-card__label {
font-size: var(--tzq-text-sm);
color: var(--tzq-text-secondary);
margin: 0;
text-transform: uppercase;
letter-spacing: var(--tzq-tracking-wide);
}
.tzq-stat-card__content {
display: flex;
flex-direction: column;
gap: var(--tzq-spacing-xs);
}
.tzq-stat-card__value--small {
font-size: var(--tzq-text-lg);
}
.tzq-stat-card__value--medium {
font-size: var(--tzq-text-2xl);
}
.tzq-stat-card__value--large {
font-size: var(--tzq-text-3xl);
}
.tzq-stat-card__value--xlarge {
font-size: var(--tzq-text-2xl);
}
.tzq-stat-card--green {
background: var(--tzq-gradient-success);
color: var(--tzq-text-inverse);
}
.tzq-stat-card--green .tzq-stat-card__value,
.tzq-stat-card--green .tzq-stat-card__label {
color: var(--tzq-text-inverse);
}
.tzq-stat-card--blue {
background: var(--tzq-gradient-primary);
color: var(--tzq-text-inverse);
}
.tzq-stat-card--blue .tzq-stat-card__value,
.tzq-stat-card--blue .tzq-stat-card__label {
color: var(--tzq-text-inverse);
}
.tzq-stat-card--purple {
background: var(--tzq-gradient-purple);
color: var(--tzq-text-inverse);
}
.tzq-stat-card--purple .tzq-stat-card__value,
.tzq-stat-card--purple .tzq-stat-card__label {
color: var(--tzq-text-inverse);
}
.tzq-stat-card--orange {
background: var(--tzq-gradient-orange);
color: var(--tzq-text-inverse);
}
.tzq-stat-card--orange .tzq-stat-card__value,
.tzq-stat-card--orange .tzq-stat-card__label {
color: var(--tzq-text-inverse);
}
.tzq-stat-card__value--responsive {
font-size: clamp(1.25rem, 3vw, 1.75rem);
}
.tzq-stat-card__value--admin {
font-size: var(--tzq-text-5xl);
}
.tzq-stat-card__value--gradient {
background: var(--tzq-gradient-primary);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.tzq-stat-card__value--white {
color: var(--tzq-text-inverse);
}
.tzq-stat-card--profile {
display: flex;
align-items: center;
gap: var(--tzq-spacing-md);
padding: var(--tzq-spacing-lg);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
background: linear-gradient(
145deg,
rgba(var(--tzq-primary-rgb), 0.08),
rgba(var(--tzq-primary-rgb), 0.08)
);
box-shadow: var(--tzq-shadow-sm);
transition:
border-color var(--tzq-transition-fast),
box-shadow var(--tzq-transition-fast),
transform var(--tzq-transition-fast);
}
.tzq-stat-card--profile:hover {
border-color: rgba(var(--tzq-primary-rgb), 0.4);
box-shadow: 0 18px 36px rgba(var(--tzq-primary-rgb), 0.18);
transform: translateY(-3px);
}
.tzq-stat-card--dashboard {
position: relative;
display: flex;
align-items: center;
gap: var(--tzq-spacing-md);
padding: var(--tzq-spacing-xl);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
background: var(--tzq-bg-primary);
box-shadow: var(--tzq-shadow-md);
overflow: hidden;
transition: all var(--tzq-transition-normal);
}
.tzq-stat-card--dashboard::before {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(
circle at 20% 20%,
rgba(var(--tzq-primary-rgb), 0.08),
transparent 50%
);
opacity: 0;
transition: opacity var(--tzq-transition-normal);
pointer-events: none;
}
.tzq-stat-card--dashboard:hover::before {
opacity: 1;
}
.tzq-stat-card--dashboard .tzq-stat-card__background {
position: absolute;
inset: 0;
opacity: 0.05;
transition: opacity var(--tzq-transition-normal);
pointer-events: none;
}
.tzq-stat-card--dashboard:hover .tzq-stat-card__background {
opacity: 0.1;
}
.tzq-stat-card--dashboard:hover {
transform: translateY(-4px);
box-shadow: 0 20px 40px rgba(var(--tzq-primary-rgb), 0.2);
border-color: rgba(var(--tzq-primary-rgb), 0.3);
}
.tzq-stat-card--tests .tzq-stat-card__background {
background: linear-gradient(
135deg,
rgba(var(--tzq-primary-rgb), 0.15),
rgba(var(--tzq-primary-rgb), 0.1)
);
}
.tzq-stat-card--xp .tzq-stat-card__background {
background: linear-gradient(
135deg,
rgba(245, 158, 11, 0.15),
rgba(251, 191, 36, 0.1)
);
}
.tzq-stat-card--badges .tzq-stat-card__background {
background: linear-gradient(
135deg,
rgba(147, 51, 234, 0.15),
rgba(168, 85, 247, 0.1)
);
}
.tzq-stat-card--level .tzq-stat-card__background {
background: linear-gradient(
135deg,
rgba(var(--tzq-primary-rgb), 0.15),
rgba(16, 185, 129, 0.1)
);
}
.tzq-stat-card__icon-wrapper {
flex-shrink: 0;
position: relative;
z-index: 1;
}
.tzq-stat-card--profile .tzq-stat-card__icon,
.tzq-stat-card--dashboard .tzq-stat-card__icon {
width: 56px;
height: 56px;
border-radius: var(--tzq-radius-md);
background: var(--tzq-gradient-primary);
display: grid;
place-items: center;
font-size: var(--tzq-text-2xl);
color: var(--tzq-text-inverse);
box-shadow: 0 12px 28px rgba(var(--tzq-primary-rgb), 0.25);
transition:
transform var(--tzq-transition-normal),
box-shadow var(--tzq-transition-normal);
}
.tzq-stat-card--dashboard:hover .tzq-stat-card__icon {
transform: scale(1.1) rotate(5deg);
box-shadow: 0 16px 32px rgba(var(--tzq-primary-rgb), 0.3);
}
.tzq-stat-card--dashboard .tzq-stat-card__value {
font-size: var(--tzq-text-2xl);
font-weight: 900;
background: linear-gradient(
135deg,
var(--tzq-primary),
var(--tzq-primary-dark)
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.tzq-stat-card__trend {
display: flex;
align-items: center;
gap: var(--tzq-spacing-2xs);
margin-top: var(--tzq-spacing-xs);
padding: 4px 8px;
background: rgba(var(--tzq-primary-rgb), 0.08);
border-radius: var(--tzq-radius-md);
width: fit-content;
}
.tzq-stat-card__trend-icon {
font-size: 0.9rem;
}
.tzq-stat-card__trend-text {
font-size: var(--tzq-text-xs);
color: var(--tzq-text-secondary);
font-weight: var(--tzq-font-semibold);
text-transform: uppercase;
letter-spacing: 0.5px;
}
.tzq-stat-card::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 4px;
background: var(--tzq-primary);
transform: scaleX(0);
transition: transform 0.3s ease;
transform-origin: left;
}
.tzq-stat-card::after {
content: "";
position: absolute;
top: -50%;
right: -50%;
width: 100%;
height: 100%;
background: radial-gradient(
circle,
color-mix(in srgb, var(--tzq-primary) 5%, transparent) 0%,
transparent 70%
);
opacity: 0;
transition: opacity 0.3s;
pointer-events: none;
}
.tzq-stat-card:hover::before {
transform: scaleX(1);
}
.tzq-stat-card:hover::after {
opacity: 1;
}
.tzq-stats-section {
position: relative;
overflow: hidden;
background:
radial-gradient(
circle at 10% 20%,
rgba(var(--tzq-primary-rgb), 0.28),
transparent 40%
),
radial-gradient(
circle at 80% 0%,
rgba(var(--tzq-primary-rgb), 0.24),
transparent 35%
),
linear-gradient(
135deg,
var(--tzq-primary-dark) 0%,
var(--tzq-primary) 48%,
var(--tzq-primary-darker) 100%
);
color: var(--tzq-text-inverse);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
padding: var(--tzq-spacing-md);
margin: var(--tzq-spacing-md) 0;
box-shadow: 2 22px 60px rgba(var(--tzq-primary-rgb), 0.3);
}
.tzq-stats-section::before,
.tzq-stats-section::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
}
.tzq-stats-section::before {
background:
radial-gradient(
circle at 10% 20%,
rgba(var(--tzq-primary-rgb), 0.1),
transparent 35%
),
radial-gradient(
circle at 80% 0%,
rgba(var(--tzq-primary-rgb), 0.08),
transparent 30%
);
}
.tzq-stats-section::after {
background: linear-gradient(
135deg,
rgba(255, 255, 255, 0.14) 0%,
rgba(255, 255, 255, 0) 45%
);
opacity: 1;
}
.tzq-stats-header {
text-align: center;
margin-bottom: var(--tzq-spacing-md);
position: relative;
z-index: 1;
}
.tzq-stats-title {
font-family: var(--tzq-font-heading);
font-size: clamp(1.75rem, 2vw, 2.5rem);
font-weight: var(--tzq-font-bold);
color: var(--tzq-text-inverse);
line-height: 1.2;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.tzq-stats-subtitle {
font-size: var(--tzq-text-lg);
color: rgba(255, 255, 255, 0.85);
margin: 0;
line-height: 1.5;
}
.tzq-stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: var(--tzq-spacing-md);
margin-top: var(--tzq-spacing-md);
padding: var(--tzq-spacing-md);
background: rgba(255, 255, 255, 0.08);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
backdrop-filter: blur(12px);
position: relative;
z-index: 1;
}
.tzq-stats-section .tzq-stat-card,
.tzq-stats-grid .tzq-stat-card {
display: flex;
flex-direction: column;
gap: var(--tzq-spacing-xs);
padding: var(--tzq-spacing-md);
background: rgba(255, 255, 255, 0.12);
border: 1px solid var(--tzq-primary-light);
border-radius: var(--tzq-radius-md);
transition:
transform var(--tzq-transition-fast),
border-color var(--tzq-transition-fast),
box-shadow var(--tzq-transition-fast),
background var(--tzq-transition-fast);
text-align: center;
}
.tzq-stats-section .tzq-stat-card:hover,
.tzq-stats-grid .tzq-stat-card:hover {
transform: translateY(-2px);
border-color: rgba(255, 255, 255, 0.35);
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
background: rgba(255, 255, 255, 0.2);
}
.tzq-stats-section .tzq-stat-card__icon,
.tzq-stats-grid .tzq-stat-card__icon {
font-size: var(--tzq-text-4xl);
line-height: 1;
margin-bottom: var(--tzq-spacing-sm);
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
transition: transform var(--tzq-transition);
}
.tzq-stats-section .tzq-stat-card:hover .tzq-stat-card__icon,
.tzq-stats-grid .tzq-stat-card:hover .tzq-stat-card__icon {
transform: scale(1.1);
}
.tzq-stats-section .tzq-stat-card__value,
.tzq-stats-grid .tzq-stat-card__value {
font-size: var(--tzq-text-3xl);
font-weight: 800;
color: #fff;
line-height: 1.1;
font-family: var(--tzq-font-heading);
margin: 0;
}
.tzq-stats-section .tzq-stat-card__label,
.tzq-stats-grid .tzq-stat-card__label {
font-size: var(--tzq-text-sm);
color: rgba(255, 255, 255, 0.85);
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
margin: 0;
}
body.tzq-dark-mode .tzq-stats-section,
[data-theme="dark"] .tzq-stats-section {
background: linear-gradient(
135deg,
rgba(var(--tzq-primary-rgb), 0.1) 0%,
rgba(15, 23, 42, 0.85) 100%
);
border-color: var(--tzq-border-dark);
}