.resume-modal { width: 900px; max-width: 95vw; max-height: 90vh; overflow: hidden; background: #fff; border-radius: 12px; display: flex; flex-direction: column; position: relative; } .resume-modal .close-icon { position: absolute; top: 20px; right: 20px; width: 24px; height: 24px; cursor: pointer; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") no-repeat center; background-size: contain; transition: opacity 0.3s; z-index: 10; } .resume-modal .close-icon:hover { opacity: 0.7; } .resume-header { padding: 30px; border-bottom: 1px solid #e5e5e5; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; } .resume-title { font-size: 24px; font-weight: 600; margin-bottom: 8px; } .resume-subtitle { font-size: 14px; opacity: 0.9; margin: 0; } .tabs-container { border-bottom: 1px solid #e5e5e5; background: #f8f9fa; } .tabs { display: flex; padding: 0 30px; } .tab { padding: 16px 24px; cursor: pointer; border-bottom: 3px solid transparent; font-weight: 500; color: #666; transition: all 0.3s; position: relative; } .tab:hover { color: #1890ff; background: rgba(24, 144, 255, 0.05); } .tab.active { color: #1890ff; border-bottom-color: #1890ff; background: #fff; } .tab-content { flex: 1; overflow-y: auto; padding: 30px; } .tab-header { margin-bottom: 25px; padding-bottom: 15px; border-bottom: 1px solid #e5e5e5; } .tab-header h3 { font-size: 18px; font-weight: 600; color: #333; margin-bottom: 8px; } .tab-header p { color: #666; font-size: 14px; margin: 0; } .header-actions { display: flex; justify-content: space-between; align-items: center; } .edit-toggle { padding: 8px 16px; background: #1890ff; color: white; border: none; border-radius: 6px; font-size: 14px; cursor: pointer; transition: all 0.3s; } .edit-toggle:hover { background: #40a9ff; } .edit-toggle.editing { background: #52c41a; } .resume-content { max-height: 500px; overflow-y: auto; } .personal-info { margin-bottom: 25px; } .personal-info h3 { font-size: 16px; font-weight: 600; color: #333; margin-bottom: 15px; padding-left: 12px; position: relative; } .personal-info h3::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 16px; background: #1890ff; border-radius: 2px; } .info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; } .info-item { display: flex; font-size: 14px; } .info-item label { font-weight: 500; color: #333; width: 60px; flex-shrink: 0; } .info-item span { color: #666; } .section { margin-bottom: 25px; } .section h3 { font-size: 16px; font-weight: 600; color: #333; margin-bottom: 15px; padding-left: 12px; position: relative; } .section h3::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 16px; background: #1890ff; border-radius: 2px; } .section p { font-size: 14px; line-height: 1.6; color: #666; margin-bottom: 10px; } .education-item, .experience-item, .project-item { margin-bottom: 20px; padding: 15px; background: #f8f9fa; border-radius: 8px; } .education-header, .experience-header, .project-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; } .education-header strong, .experience-header strong, .project-header strong { font-weight: 600; color: #333; } .date, .role { font-size: 12px; color: #999; background: #fff; padding: 2px 8px; border-radius: 4px; } .education-details { font-size: 14px; color: #666; } .skills-list { display: flex; flex-wrap: wrap; gap: 8px; } .skill-tag { display: inline-block; padding: 4px 12px; background: #e6f7ff; color: #1890ff; border-radius: 16px; font-size: 12px; font-weight: 500; } .project-link { display: inline-block; margin-top: 8px; padding: 4px 12px; background: #1890ff; color: white; text-decoration: none; border-radius: 4px; font-size: 12px; transition: all 0.3s; } .project-link:hover { background: #40a9ff; } .awards-list { margin: 0; padding-left: 20px; } .awards-list li { font-size: 14px; line-height: 1.6; color: #666; margin-bottom: 5px; } .no-content { text-align: center; padding: 40px; color: #999; font-size: 16px; } .no-personal-resume { text-align: center; padding: 60px 40px; color: #666; } .no-personal-resume p { font-size: 16px; margin-bottom: 20px; } .create-btn { padding: 12px 24px; background: #1890ff; color: white; border: none; border-radius: 6px; font-size: 16px; cursor: pointer; transition: all 0.3s; } .create-btn:hover { background: #40a9ff; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3); } .resume-edit { display: flex; flex-direction: column; height: 500px; } .edit-notice { background: #fff7e6; border: 1px solid #ffd591; border-radius: 6px; padding: 12px; margin-bottom: 15px; } .edit-notice p { color: #d48806; margin: 0; font-size: 14px; } .content-editor { flex: 1; width: 100%; padding: 15px; border: 1px solid #d9d9d9; border-radius: 6px; font-family: 'Consolas', 'Monaco', monospace; font-size: 12px; line-height: 1.5; resize: none; background: #fafafa; } .content-editor:focus { outline: none; border-color: #1890ff; box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); } .edit-buttons { display: flex; gap: 10px; margin-top: 15px; justify-content: flex-end; } .save-btn, .cancel-btn { padding: 8px 16px; border: none; border-radius: 6px; font-size: 14px; cursor: pointer; transition: all 0.3s; } .save-btn { background: #52c41a; color: white; } .save-btn:hover { background: #73d13d; } .cancel-btn { background: #f5f5f5; color: #666; } .cancel-btn:hover { background: #e6e6e6; } .development-notice { display: flex; align-items: center; justify-content: center; height: 300px; } .notice-content { text-align: center; color: #86909c; } .notice-content h4 { font-size: 18px; margin: 0; }