Youngger9765
feat: Add grading progress modal with assistant info
7e0455f
.grading-modal-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.7);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
animation: fadeIn 0.2s ease-in;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.grading-modal {
background: white;
border-radius: 16px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
max-width: 600px;
width: 90%;
max-height: 90vh;
overflow-y: auto;
animation: slideUp 0.3s ease-out;
}
@keyframes slideUp {
from {
transform: translateY(20px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.grading-modal-header {
padding: 24px 32px;
border-bottom: 2px solid #f0f0f0;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.grading-modal-header h2 {
margin: 0;
color: white;
font-size: 24px;
font-weight: 600;
}
.grading-modal-body {
padding: 32px;
}
/* 機器人資訊 */
.assistant-info {
display: flex;
align-items: center;
gap: 16px;
padding: 20px;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
border-radius: 12px;
margin-bottom: 24px;
}
.assistant-icon {
font-size: 48px;
line-height: 1;
}
.assistant-details h3 {
margin: 0 0 4px 0;
font-size: 20px;
color: #2c3e50;
}
.assistant-subtitle {
margin: 0;
font-size: 14px;
color: #7f8c8d;
}
/* 進度條 */
.progress-section {
margin-bottom: 24px;
}
.progress-bar-container {
width: 100%;
height: 12px;
background-color: #e0e0e0;
border-radius: 6px;
overflow: hidden;
margin-bottom: 8px;
}
.progress-bar-fill {
height: 100%;
background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
border-radius: 6px;
transition: width 0.5s ease;
animation: pulse 1.5s ease-in-out infinite;
}
@keyframes pulse {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0.8;
}
}
.progress-text {
text-align: center;
font-size: 18px;
font-weight: 600;
color: #667eea;
}
/* 步驟列表 */
.steps-section {
background: #f8f9fa;
border-radius: 12px;
padding: 20px;
margin-bottom: 24px;
}
.step-item {
padding: 12px 16px;
margin-bottom: 8px;
border-radius: 8px;
font-size: 15px;
color: #95a5a6;
transition: all 0.3s ease;
}
.step-item.active {
background: #fff;
color: #667eea;
font-weight: 600;
box-shadow: 0 2px 8px rgba(102, 126, 234, 0.2);
animation: highlight 0.5s ease-in;
}
@keyframes highlight {
0% {
transform: translateX(-10px);
opacity: 0;
}
100% {
transform: translateX(0);
opacity: 1;
}
}
.step-item.completed {
color: #27ae60;
text-decoration: line-through;
opacity: 0.6;
}
/* 提示資訊 */
.grading-info {
background: #fff3cd;
border-left: 4px solid #ffc107;
border-radius: 8px;
padding: 16px;
}
.info-text {
margin: 0 0 8px 0;
font-size: 15px;
color: #856404;
font-weight: 500;
}
.info-subtitle {
margin: 0;
font-size: 13px;
color: #856404;
opacity: 0.8;
}
/* 響應式設計 */
@media (max-width: 768px) {
.grading-modal {
width: 95%;
max-height: 95vh;
}
.grading-modal-header {
padding: 20px 24px;
}
.grading-modal-header h2 {
font-size: 20px;
}
.grading-modal-body {
padding: 24px;
}
.assistant-icon {
font-size: 36px;
}
.assistant-details h3 {
font-size: 18px;
}
.step-item {
font-size: 14px;
padding: 10px 12px;
}
}