This commit is contained in:
xuncha
2026-02-01 01:26:43 +08:00
parent 5413d7e2c8
commit f40f885af3
4 changed files with 302 additions and 371 deletions

View File

@@ -1,220 +1,130 @@
.dual-report-window {
color: var(--text-primary);
padding: 32px 24px 60px;
background: var(--bg-primary);
}
.dual-report-window.loading,
.dual-report-window.error {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 60vh;
gap: 12px;
color: var(--text-tertiary);
}
.dual-section {
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 20px;
padding: 24px;
margin: 16px auto;
max-width: 900px;
}
.dual-section.cover {
text-align: center;
background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 10%, transparent) 0%, var(--card-bg) 100%);
.label {
font-size: 12px;
letter-spacing: 2px;
color: var(--text-tertiary);
margin-bottom: 12px;
}
h1 {
margin: 0 0 12px;
font-size: 36px;
}
p {
margin: 0;
color: var(--text-secondary);
}
}
.section-title {
font-size: 18px;
font-weight: 700;
margin-bottom: 16px;
}
.info-card {
display: flex;
flex-direction: column;
gap: 12px;
}
.info-row {
display: flex;
justify-content: space-between;
gap: 16px;
font-size: 14px;
}
.info-label {
color: var(--text-tertiary);
}
.info-value {
color: var(--text-primary);
font-weight: 600;
}
.info-empty {
color: var(--text-tertiary);
}
.message-list {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 8px;
}
.message-item {
padding: 10px 12px;
border-radius: 12px;
background: color-mix(in srgb, var(--primary) 6%, transparent);
&.received {
background: color-mix(in srgb, var(--border-color) 35%, transparent);
}
}
.message-meta {
font-size: 12px;
color: var(--text-tertiary);
margin-bottom: 6px;
}
.message-content {
font-size: 14px;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 12px;
margin-bottom: 16px;
}
.stat-card {
background: color-mix(in srgb, var(--primary) 6%, transparent);
border-radius: 12px;
padding: 14px;
text-align: center;
.stat-value {
font-size: 20px;
.annual-report-window.dual-report-window {
.dual-names {
font-size: clamp(24px, 4vw, 40px);
font-weight: 700;
display: flex;
align-items: center;
gap: 12px;
margin: 8px 0 16px;
color: var(--ar-text-main);
.amp {
color: var(--ar-primary);
}
}
.stat-label {
.dual-info-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
margin-top: 16px;
}
.dual-info-card {
background: var(--ar-card-bg);
border: 1px solid var(--bg-tertiary, rgba(0, 0, 0, 0.05));
border-radius: 14px;
padding: 16px;
&.full {
grid-column: 1 / -1;
}
.info-label {
font-size: 12px;
color: var(--ar-text-sub);
margin-bottom: 8px;
}
.info-value {
font-size: 16px;
font-weight: 600;
color: var(--ar-text-main);
}
}
.dual-message-list {
margin-top: 16px;
display: flex;
flex-direction: column;
gap: 12px;
}
.dual-message {
background: var(--ar-card-bg);
border-radius: 14px;
padding: 14px;
&.received {
background: var(--ar-card-bg-hover);
}
.message-meta {
font-size: 12px;
color: var(--ar-text-sub);
margin-bottom: 6px;
}
.message-content {
font-size: 14px;
color: var(--ar-text-main);
}
}
.dual-stat-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 16px;
margin: 20px 0 24px;
}
.dual-stat-card {
background: var(--ar-card-bg);
border-radius: 16px;
padding: 18px;
text-align: center;
}
.emoji-row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 16px;
}
.emoji-card {
border: 1px solid var(--bg-tertiary, rgba(0, 0, 0, 0.08));
border-radius: 16px;
padding: 16px;
display: flex;
flex-direction: column;
gap: 10px;
align-items: center;
justify-content: center;
background: var(--ar-card-bg);
img {
width: 64px;
height: 64px;
object-fit: contain;
}
}
.emoji-title {
font-size: 12px;
color: var(--text-tertiary);
margin-top: 4px;
color: var(--ar-text-sub);
}
.emoji-placeholder {
font-size: 12px;
color: var(--ar-text-sub);
word-break: break-all;
text-align: center;
}
.word-cloud-empty {
color: var(--ar-text-sub);
font-size: 14px;
text-align: center;
padding: 24px 0;
}
}
.emoji-row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 12px;
}
.emoji-card {
border: 1px solid var(--border-color);
border-radius: 14px;
padding: 14px;
display: flex;
flex-direction: column;
gap: 10px;
align-items: center;
justify-content: center;
img {
width: 64px;
height: 64px;
object-fit: contain;
}
}
.emoji-title {
font-size: 12px;
color: var(--text-tertiary);
}
.emoji-placeholder {
font-size: 12px;
color: var(--text-secondary);
word-break: break-all;
text-align: center;
}
.word-cloud-wrapper {
position: relative;
width: 100%;
padding-top: 80%;
background: color-mix(in srgb, var(--primary) 4%, transparent);
border-radius: 18px;
overflow: hidden;
}
.word-cloud-inner {
position: absolute;
inset: 0;
}
.word-tag {
position: absolute;
font-weight: 600;
color: var(--text-primary);
transform: translate(-50%, -50%);
opacity: 0;
animation: fadeUp 0.8s ease forwards;
}
.word-cloud-empty {
color: var(--text-tertiary);
font-size: 14px;
text-align: center;
padding: 40px 0;
}
.progress {
font-size: 20px;
font-weight: 700;
}
.stage {
font-size: 12px;
color: var(--text-tertiary);
}
.spin {
animation: spin 1s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
@keyframes fadeUp {
from { opacity: 0; transform: translate(-50%, -50%) translateY(10px); }
to { opacity: var(--final-opacity, 1); transform: translate(-50%, -50%) translateY(0); }
}